<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<TITLE>Message</TITLE>

<META content="MSHTML 6.00.2800.1400" name=GENERATOR></HEAD>
<BODY>
<DIV><SPAN class=015590910-13052004><FONT face=Arial size=2>Hi 
All,</FONT></SPAN></DIV>
<DIV><SPAN class=015590910-13052004><FONT face=Arial 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=015590910-13052004><FONT face=Arial size=2>I have found (and I 
think others have in the past) that in certain circumstances PPP fails to 
negotiate.</FONT></SPAN></DIV>
<DIV><SPAN class=015590910-13052004><FONT face=Arial 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=015590910-13052004><FONT face=Arial size=2>I have tracked one 
bug down to the fact that in lcpin.c and icmpin.c if the currrent option being 
rejected </FONT></SPAN></DIV>
<DIV><SPAN class=015590910-13052004><FONT face=Arial 
size=2>or NAK'd  is longer than the total of earlier rejected / 
NAK'd options the copy operation stomps on important data (the option length) 
and then uses that data later.</FONT></SPAN></DIV>
<DIV><SPAN class=015590910-13052004><FONT face=Arial 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=015590910-13052004><FONT face=Arial size=2>I think Michel 
Hendriks submitted a fix for this a while back but I thought it was a little 
complicated (no offense Michael :) ).</FONT></SPAN></DIV>
<DIV><SPAN class=015590910-13052004><FONT face=Arial size=2>(Actually I don't 
care which fix makes it in so long as one of them does).</FONT></SPAN></DIV>
<DIV><SPAN class=015590910-13052004><FONT face=Arial 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=015590910-13052004><FONT face=Arial size=2>I've found the 
following works well :-</FONT></SPAN></DIV>
<DIV><SPAN class=015590910-13052004><FONT face=Arial 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=015590910-13052004><FONT face=Arial 
size=2>Relpace:-</FONT></SPAN></DIV>
<DIV><SPAN class=015590910-13052004><FONT face=Arial 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=015590910-13052004><FONT face=Arial size=2>if (len) 
{<BR>    if (xcpr != xcpo) 
{<BR>        xcpr->xcpo_type = 
xcpo->xcpo_type;<BR>        xcpr->xcpo_len 
= len;<BR>    }<BR>    xcpr = (XCPOPT *) 
((char *) xcpr + len);<BR>    xcps += 
len;<BR>    len = 0;</FONT></SPAN></DIV>
<DIV><SPAN class=015590910-13052004><FONT face=Arial size=2>}<BR>xcpl -= 
xcpo->xcpo_len;<BR>xcpo = (XCPOPT *) ((char *) xcpo + 
xcpo->xcpo_len);</FONT></SPAN></DIV>
<DIV><SPAN class=015590910-13052004><FONT face=Arial 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=015590910-13052004><FONT face=Arial 
size=2>With:-</FONT></SPAN></DIV>
<DIV><SPAN class=015590910-13052004><FONT face=Arial 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=015590910-13052004><FONT face=Arial size=2>sval = 
xcpo->xcpo_len;<BR>if (len) {<BR>    if (xcpr != xcpo) 
{<BR>        xcpr->xcpo_type = 
xcpo->xcpo_type;<BR>        xcpr->xcpo_len 
= len;</FONT></SPAN></DIV>
<DIV><SPAN class=015590910-13052004><FONT face=Arial size=2>    
}<BR>    xcpr = (XCPOPT *) ((char *) xcpr + 
len);<BR>    xcps += len;<BR>    len = 
0;</FONT></SPAN></DIV>
<DIV><SPAN class=015590910-13052004><FONT face=Arial size=2>}<BR>xcpl -= 
sval;<BR>xcpo = (XCPOPT *) ((char *) xcpo + sval);</FONT></SPAN></DIV>
<DIV><SPAN class=015590910-13052004><FONT face=Arial 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=015590910-13052004><FONT face=Arial size=2>In lcpin.c and 
ipcpin.c, in total there are 4 places this needs to be changed (twice in each 
file).</FONT></SPAN></DIV>
<DIV><SPAN class=015590910-13052004><FONT face=Arial 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=015590910-13052004><FONT face=Arial size=2>This is a particular 
problem when connecting to MS servers.</FONT></SPAN></DIV>
<DIV><SPAN class=015590910-13052004><FONT face=Arial 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=015590910-13052004></SPAN><SPAN 
class=015590910-13052004></SPAN><SPAN class=015590910-13052004></SPAN><SPAN 
class=015590910-13052004></SPAN><FONT face=Arial size=2><SPAN 
class=015590910-13052004>Regards,</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=015590910-13052004></SPAN></FONT> </DIV>
<DIV align=left><FONT face=Arial 
size=2>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<BR>Mike 
Cornelius                      
Internet: <A 
href="mailto:mikec@call-direct.com.au">mikec@call-direct.com.au</A><BR>Call 
Direct Cellular Solutions      Phone:    
+61 2 9209-4259<BR>Suite 
145                           
FAX:      +61 2 9209-4196<BR>National Innovation 
Centre     URL:      <A 
href="http://www.call-direct.com.au/">http://www.call-direct.com.au</A><BR>Australian 
Technology Park<BR>Eveleigh NSW 
1430<BR>Australia                  
<BR>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</FONT></DIV>
<DIV> </DIV></BODY></HTML>