[En-Nut-Discussion] PPP: compression reject, DNS

Michel unreal at home.nl
Tue Dec 16 00:15:44 CET 2003


Hi,

I'm having some difficulties with the LCP layer of the PPP stack. 
It looks like unknown compression protocols are not rejected properly.
I use a FreeSCO router configured as a dial-in server for my ethernut
project. The pppd daemon on the FreeSCO router (by default) tries to
negotiate VJ compression. Ethernut replies with a Configure-Nak but
pppd says it received a Configure-Reject and shows garbage.

I know a Configure-Reject should always attach the original packet it
received to the Configure-Reject. Now, I've been trying to understand
what happens in the IpcpRxConfReq function but I'm confused. In the
'Check if there is anything to reject' section the 'xpco' and 'xcpr'
vars are set to point to the same buffer. Then, if 'len' is not set
to 0 the original packet is copied in the reply. At least, that is
what I asumme ;-) But, the code below doesn't seem to copy anything
as 'xpco' and 'xcpr' point to the same address????:

        if (len) {
            if(xcpr != xcpo) {
                xcpr->xcpo_type = xcpo->xcpo_type;
                xcpr->xcpo_len = len;
                for(i = 0; i < len - 2; i++)
                    xcpr->xcpo_.uc[i] = xcpr->xcpo_.uc[i];
            }
            xcpr = (XCPOPT *)((char *)xcpr + len);
            xcps += len;
        }
        xcpl -= xcpo->xcpo_len;
        xcpo = (XCPOPT *)((char *)xcpo + xcpo->xcpo_len);

Am I missing something?

B.t.w. I can get PPP to work if I turn off Vjcomp on the server. But
this is only a test setup before I go out and connect to the big bad ISP's.

Another thing I noticed is that although MS-DNS is supported, there
doesn't seem to a call to NutDnsConfig2 to setup DNS servers? I manually
added it, but for some reason it doesn't work anyway?

Greetings,

Michel Hendriks




More information about the En-Nut-Discussion mailing list