<!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>