]> git.ozlabs.org Git - ppp.git/blobdiff - pppd/ipxcp.c
Ignore the generated binaries and sparcv9 directory such that CVS
[ppp.git] / pppd / ipxcp.c
index 840daf5ae3ae95d79c1894a9da1f2ecfd2069c57..8b45f89116efc5348538196a34067df84da99b3f 100644 (file)
@@ -18,9 +18,8 @@
  */
 
 #ifdef IPX_CHANGE
-#ifndef lint
-static char rcsid[] = "$Id: ipxcp.c,v 1.13 1999/03/19 01:22:09 paulus Exp $";
-#endif
+
+#define RCSID  "$Id: ipxcp.c,v 1.18 1999/08/24 05:31:09 paulus Exp $"
 
 /*
  * TODO:
@@ -40,6 +39,8 @@ static char rcsid[] = "$Id: ipxcp.c,v 1.13 1999/03/19 01:22:09 paulus Exp $";
 #include "pathnames.h"
 #include "magic.h"
 
+static const char rcsid[] = RCSID;
+
 /* global vars */
 ipxcp_options ipxcp_wantoptions[NUM_PPP];      /* Options that we want to request */
 ipxcp_options ipxcp_gotoptions[NUM_PPP];       /* Options that peer ack'd */
@@ -101,7 +102,7 @@ static option_t ipxcp_option_list[] = {
       "Disable IPXCP (and IPX)" },
     { "-ipx", o_bool, &ipxcp_protent.enabled_flag,
       "Disable IPXCP (and IPX)" } ,
-    { "ipx-network", o_int, &ipxcp_wantoptions[0].our_network,
+    { "ipx-network", o_uint32, &ipxcp_wantoptions[0].our_network,
       "Set our IPX network number", 0, &ipxcp_wantoptions[0].neg_nn },
     { "ipxcp-accept-network", o_bool, &ipxcp_wantoptions[0].accept_network,
       "Accept peer IPX network number", 1,
@@ -199,7 +200,7 @@ short int internal;
 {
     short int  external;
 
-    if (internal & IPX_NONE)
+    if (internal & BIT(IPX_NONE) )
         external = IPX_NONE;
     else
         external = RIP_SAP;
@@ -666,9 +667,8 @@ ipxcp_ackci(f, p, len)
        ACKCINETWORK  (IPX_NETWORK_NUMBER,  go->neg_nn,     go->our_network);
        ACKCINODE     (IPX_NODE_NUMBER,     go->neg_node,   go->our_node);
        ACKCINAME     (IPX_ROUTER_NAME,     go->neg_name,   go->name);
-       ACKCIPROTO    (IPX_ROUTER_PROTOCOL, go->neg_router, go->router);
-       ACKCIPROTO    (IPX_ROUTER_PROTOCOL, go->neg_router, go->router);
-       ACKCIPROTO    (IPX_ROUTER_PROTOCOL, go->neg_router, go->router);
+       if (len > 0)
+               ACKCIPROTO    (IPX_ROUTER_PROTOCOL, go->neg_router, go->router);
 /*
  * This is the end of the record.
  */
@@ -1266,6 +1266,7 @@ ipxcp_up(f)
        ipxcp_close(unit, "Interface configuration failed");
        return;
     }
+    ipxcp_is_up = 1;
 
     /* set the network number for IPX */
     if (!sipxfaddr(unit, go->network, go->our_node)) {
@@ -1275,7 +1276,6 @@ ipxcp_up(f)
        return;
     }
 
-    ipxcp_is_up = 1;
     np_up(f->unit, PPP_IPX);
 
     /*
@@ -1299,11 +1299,12 @@ ipxcp_down(f)
 {
     IPXCPDEBUG(("ipxcp: down"));
 
-    if (ipxcp_is_up) {
-       ipxcp_is_up = 0;
-       np_down(f->unit, PPP_IPX);
-    }
-    cipxfaddr (f->unit);
+    if (!ipxcp_is_up)
+       return;
+    ipxcp_is_up = 0;
+    np_down(f->unit, PPP_IPX);
+    cipxfaddr(f->unit);
+    sifnpmode(f->unit, PPP_IPX, NPMODE_DROP);
     sifdown(f->unit);
     ipxcp_script (f, _PATH_IPXDOWN);
 }