X-Git-Url: http://git.ozlabs.org/?p=ppp.git;a=blobdiff_plain;f=pppd%2Fipxcp.c;h=937dea1095cc55dac734b8173b0cf0e3546b78dd;hp=9851e65713df6c1ff595409ccccd817c497200d1;hb=a3630de20e34796f434a728bfd9cf1a961380c82;hpb=1e7bc3ea35208555bf233daacee9d85ded13f999 diff --git a/pppd/ipxcp.c b/pppd/ipxcp.c index 9851e65..937dea1 100644 --- a/pppd/ipxcp.c +++ b/pppd/ipxcp.c @@ -18,9 +18,8 @@ */ #ifdef IPX_CHANGE -#ifndef lint -static char rcsid[] = "$Id: ipxcp.c,v 1.12 1999/03/16 22:54:39 paulus Exp $"; -#endif + +#define RCSID "$Id: ipxcp.c,v 1.17 1999/08/13 06:46:14 paulus Exp $" /* * TODO: @@ -40,6 +39,8 @@ static char rcsid[] = "$Id: ipxcp.c,v 1.12 1999/03/16 22:54:39 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, @@ -181,6 +182,8 @@ struct protent ipxcp_protent = { static int ipxcp_is_up; +static char *ipx_ntoa __P((u_int32_t)); + /* Used in printing the node number */ #define NODE(base) base[0], base[1], base[2], base[3], base[4], base[5] @@ -197,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; @@ -209,7 +212,7 @@ short int internal; * Make a string representation of a network IP address. */ -char * +static char * ipx_ntoa(ipxaddr) u_int32_t ipxaddr; { @@ -664,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. */ @@ -770,10 +772,6 @@ ipxcp_nakci(f, p, len) p = next; } - /* If there is still anything left, this packet is bad. */ - if (len != 0) - goto bad; - /* * Do not permit the peer to force a router protocol which we do not * support. However, default to the condition that will accept "NONE". @@ -787,6 +785,7 @@ ipxcp_nakci(f, p, len) /* * OK, the Nak is good. Now we can update state. + * If there are any options left, we ignore them. */ if (f->state != OPENED) *go = try; @@ -1340,38 +1339,34 @@ ipxcp_script(f, script) strproto_lcl[0] = '\0'; if (go->neg_router && ((go->router & BIT(IPX_NONE)) == 0)) { if (go->router & BIT(RIP_SAP)) - strlcpy (strproto_lcl, sizeof(strproto_lcl), "RIP "); + strlcpy (strproto_lcl, "RIP ", sizeof(strproto_lcl)); if (go->router & BIT(NLSP)) - strlcat (strproto_lcl, sizeof(strproto_lcl), "NLSP "); + strlcat (strproto_lcl, "NLSP ", sizeof(strproto_lcl)); } if (strproto_lcl[0] == '\0') - strlcpy (strproto_lcl, sizeof(strproto_lcl), "NONE "); + strlcpy (strproto_lcl, "NONE ", sizeof(strproto_lcl)); strproto_lcl[strlen (strproto_lcl)-1] = '\0'; strproto_rmt[0] = '\0'; if (ho->neg_router && ((ho->router & BIT(IPX_NONE)) == 0)) { if (ho->router & BIT(RIP_SAP)) - strlcpy (strproto_rmt, sizeof(strproto_rmt), "RIP "); + strlcpy (strproto_rmt, "RIP ", sizeof(strproto_rmt)); if (ho->router & BIT(NLSP)) - strlcat (strproto_rmt, sizeof(strproto_rmt), "NLSP "); + strlcat (strproto_rmt, "NLSP ", sizeof(strproto_rmt)); } if (strproto_rmt[0] == '\0') - strlcpy (strproto_rmt, sizeof(strproto_rmt), "NONE "); + strlcpy (strproto_rmt, "NONE ", sizeof(strproto_rmt)); strproto_rmt[strlen (strproto_rmt)-1] = '\0'; - strlcpy (strnetwork, sizeof(strnetwork), ipx_ntoa (go->network)); + strlcpy (strnetwork, ipx_ntoa (go->network), sizeof(strnetwork)); - slprintf (strlocal, sizeof(strlocal), - "%02X%02X%02X%02X%02X%02X", - NODE(go->our_node)); + slprintf (strlocal, sizeof(strlocal), "%0.6B", go->our_node); - slprintf (strremote, sizeof(strremote), - "%02X%02X%02X%02X%02X%02X", - NODE(ho->his_node)); + slprintf (strremote, sizeof(strremote), "%0.6B", ho->his_node); argv[0] = script; argv[1] = ifname;