UUCP [ultrix] guru needed!

Rick Adams rick at seismo.CSS.GOV
Tue Dec 30 07:18:03 AEST 1986


Yes, It's a bug. It was fixed in 4.3BSD. Here is a rough idea
of how it was fixed (Jim Bloom found and fixed this one).

I'm not sure that the test for Reacks need to wait for 4. I think 2
would probably be adequate. However, Jim may know of a case I don't.

As a general rule, the 4.3bsd 'g' protocol driver is in better shape
than ANY uucp available (including Honey DanBer, [gasp]). At a mimimum, it's
at least readable (cryptic, but readable)

---rick

4.2BSD pk0.c:
  	case RJ:
  		pk->p_state |= RXMIT;
  		pk->p_msg |= M_RR;
  	case RR:
  		pk->p_rpr = val;
! 		if (pksack(pk)==0) {
! 			WAKEUP(&pk->p_ps);
  		}
  		break;

4.3BSD pk0.c:
  	case RJ:
  		pk->p_state |= RXMIT;
  		pk->p_msg |= M_RR;
+ 		pk->p_rpr = val;
+ 		(void) pksack(pk);
+ 		break;
  	case RR:
  		pk->p_rpr = val;
! 		if (pk->p_rpr == pk->p_ps) {
! 			DEBUG(9, "Reack count is %d\n", ++Reacks);
! 			if (Reacks >= 4) {
! 				DEBUG(6, "Reack overflow on %d\n", val);
! 				pk->p_state |= RXMIT;
! 				pk->p_msg |= M_RR;
! 				Reacks = 0;
! 			}
! 		} else {
! 			Reacks = 0;
! 			(void) pksack(pk);
  		}
  		break;



More information about the Comp.unix.wizards mailing list