]> git.ozlabs.org Git - ppp.git/blobdiff - pppd/ipcp.c
Handle PFC on rx side, efficiently, thanks to Jan Dubiec.
[ppp.git] / pppd / ipcp.c
index 1ed4c07796706e3a9e9ce63817e75f2b9600fdb2..128c204d64e0c96b2b8379dabb53b4a23718fdc9 100644 (file)
@@ -40,7 +40,7 @@
  * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#define RCSID  "$Id: ipcp.c,v 1.63 2003/06/29 10:06:14 paulus Exp $"
+#define RCSID  "$Id: ipcp.c,v 1.65 2004/01/13 03:59:06 paulus Exp $"
 
 /*
  * TODO:
@@ -1098,10 +1098,10 @@ ipcp_nakci(f, p, len)
      * If they want to negotiate about IP addresses, we comply.
      * If they want us to ask for compression, we refuse.
      */
-    while (len > CILEN_VOID) {
+    while (len >= CILEN_VOID) {
        GETCHAR(citype, p);
        GETCHAR(cilen, p);
-       if( (len -= cilen) < 0 )
+       if ( cilen < CILEN_VOID || (len -= cilen) < 0 )
            goto bad;
        next = p + cilen - 2;
 
@@ -1687,12 +1687,12 @@ ipcp_up(f)
     script_setenv("IPLOCAL", ip_ntoa(go->ouraddr), 0);
     script_setenv("IPREMOTE", ip_ntoa(ho->hisaddr), 1);
 
+    if (go->dnsaddr[0])
+       script_setenv("DNS1", ip_ntoa(go->dnsaddr[0]), 0);
+    if (go->dnsaddr[1])
+       script_setenv("DNS2", ip_ntoa(go->dnsaddr[1]), 0);
     if (usepeerdns && (go->dnsaddr[0] || go->dnsaddr[1])) {
        script_setenv("USEPEERDNS", "1", 0);
-       if (go->dnsaddr[0])
-           script_setenv("DNS1", ip_ntoa(go->dnsaddr[0]), 0);
-       if (go->dnsaddr[1])
-           script_setenv("DNS2", ip_ntoa(go->dnsaddr[1]), 0);
        create_resolv(go->dnsaddr[0], go->dnsaddr[1]);
     }