diff -U4 -r ppp-2.4.4/pppd/ccp.c ppp-2.4.4+id/pppd/ccp.c --- ppp-2.4.4/pppd/ccp.c 2005-07-09 01:23:05.000000000 +0100 +++ ppp-2.4.4+id/pppd/ccp.c 2009-06-26 23:14:50.000000000 +0100 @@ -1649,9 +1649,9 @@ * We don't do that if we are still waiting for an * acknowledgement to a previous reset-request. */ if (!(ccp_localstate[f->unit] & RACK_PENDING)) { - fsm_sdata(f, CCP_RESETREQ, f->reqid = ++f->id, NULL, 0); + fsm_sdata(f, CCP_RESETREQ, f->reqid = --f->id, NULL, 0); TIMEOUT(ccp_rack_timeout, f, RACKTIMEOUT); ccp_localstate[f->unit] |= RACK_PENDING; } else ccp_localstate[f->unit] |= RREQ_REPEAT; diff -U4 -r ppp-2.4.4/pppd/fsm.c ppp-2.4.4+id/pppd/fsm.c --- ppp-2.4.4/pppd/fsm.c 2004-11-13 02:28:15.000000000 +0000 +++ ppp-2.4.4+id/pppd/fsm.c 2009-06-26 19:20:38.000000000 +0100 @@ -81,9 +81,9 @@ fsm *f; { f->state = INITIAL; f->flags = 0; - f->id = 0; /* XXX Start with random id? */ + f->id = 0; f->timeouttime = DEFTIMEOUT; f->maxconfreqtransmits = DEFMAXCONFREQS; f->maxtermtransmits = DEFMAXTERMREQS; f->maxnakloops = DEFMAXNAKLOOPS; @@ -218,9 +218,9 @@ (*f->callbacks->down)(f); /* Inform upper layers we're down */ /* Init restart counter and send Terminate-Request */ f->retransmits = f->maxtermtransmits; - fsm_sdata(f, TERMREQ, f->reqid = ++f->id, + fsm_sdata(f, TERMREQ, f->reqid = --f->id, (u_char *) f->term_reason, f->term_reason_len); if (f->retransmits == 0) { /* @@ -294,9 +294,9 @@ if( f->callbacks->finished ) (*f->callbacks->finished)(f); } else { /* Send Terminate-Request */ - fsm_sdata(f, TERMREQ, f->reqid = ++f->id, + fsm_sdata(f, TERMREQ, f->reqid = --f->id, (u_char *) f->term_reason, f->term_reason_len); TIMEOUT(fsm_timeout, f, f->timeouttime); --f->retransmits; } @@ -399,9 +399,9 @@ default: if( !f->callbacks->extcode || !(*f->callbacks->extcode)(f, code, id, inp, len) ) - fsm_sdata(f, CODEREJ, ++f->id, inpacket, len + HEADERLEN); + fsm_sdata(f, CODEREJ, --f->id, inpacket, len + HEADERLEN); break; } } @@ -759,9 +759,9 @@ if( !retransmit ){ /* New request - reset retransmission counter, use new ID */ f->retransmits = f->maxconfreqtransmits; - f->reqid = ++f->id; + f->reqid = --f->id; } f->seen_ack = 0;