[comp.bugs.4bsd] UUCP doesn't properly negotiate MaxGrade with some HDB UUCPs

guy@auspex.auspex.com (Guy Harris) (08/24/90)

Subject: UUCP doesn't properly negotiate MaxGrade with some HDB UUCPs
Index: usr.bin 4.3BSD-tahoe

Description:
	While the HDB shipped by AT&T as part of S5R3.x doesn't support
	the "MaxGrade" mechanism - that is, the mechanism that lets you
	specify, in the "Systems"/"L.sys" file, the maximum grade of
	work to be transferred at particular times of the day - Peter
	Honeyman has modified HDB to do so, and some vendors (including
	Sun) have picked up these patches.

	Two UUCPs negotiate the MaxGrade by sending their idea of the
	MaxGrade in the initial connection message.  The 4.3 UUCP sends
	it with both a "-p" and a "-vgrade=" flag; Peter's patches to
	HDB send only the "-vgrade=" flag.

	The 4.3 UUCP doesn't properly handle the "-vgrade=" flag, so
	while it can properly negotiate MaxGrade with other 4.3 UUCPs
	(since it does handle the "-p" flag which the 4.3 UUCP sends),
	it can't properly negotiate it with HDB with Peter's patches.
Repeat-By:
	Inspect the code.  (There is a scenario that will reproduce it,
	but I forget precisely what it is and I'm too lazy to
	reconstruct it.)
Fix:
*** cico.c.orig	Thu Aug 23 11:17:34 1990
--- cico.c	Thu Aug 23 11:18:51 1990
***************
*** 446,452 ****
  				DEBUG(4, "MaxGrade set to %c\n", MaxGrade);
  				break;
  			case 'v':
! 				if (strncmp(p, "grade", 5) == 0) {
  					p += 6;
  					MaxGrade = DefMaxGrade = *p++;
  					DEBUG(4, "MaxGrade set to %c\n", MaxGrade);
--- 446,452 ----
  				DEBUG(4, "MaxGrade set to %c\n", MaxGrade);
  				break;
  			case 'v':
! 				if (strncmp(++p, "grade=", 6) == 0) {
  					p += 6;
  					MaxGrade = DefMaxGrade = *p++;
  					DEBUG(4, "MaxGrade set to %c\n", MaxGrade);