#ifdef IPX_CHANGE
-#define RCSID "$Id: ipxcp.c,v 1.22 2003/07/28 12:25:41 carlsonj Exp $"
+#define RCSID "$Id: ipxcp.c,v 1.24 2005/08/25 23:59:34 paulus Exp $"
/*
* TODO:
static int ipxcp_cilen __P((fsm *)); /* Return length of our CI */
static void ipxcp_addci __P((fsm *, u_char *, int *)); /* Add our CI */
static int ipxcp_ackci __P((fsm *, u_char *, int)); /* Peer ack'd our CI */
-static int ipxcp_nakci __P((fsm *, u_char *, int)); /* Peer nak'd our CI */
+static int ipxcp_nakci __P((fsm *, u_char *, int, int));/* Peer nak'd our CI */
static int ipxcp_rejci __P((fsm *, u_char *, int)); /* Peer rej'd our CI */
static int ipxcp_reqci __P((fsm *, u_char *, int *, int)); /* Rcv CI */
static void ipxcp_up __P((fsm *)); /* We're UP */
setipxnode(argv)
char **argv;
{
- char *end;
+ u_char *end;
int have_his = 0;
u_char our_node[6];
u_char his_node[6];
setipxname (argv)
char **argv;
{
- char *dest = ipxcp_wantoptions[0].name;
+ u_char *dest = ipxcp_wantoptions[0].name;
char *src = *argv;
int count;
char ch;
len = go->neg_nn ? CILEN_NETN : 0;
len += go->neg_node ? CILEN_NODEN : 0;
- len += go->neg_name ? CILEN_NAME + strlen (go->name) - 1 : 0;
+ len += go->neg_name ? CILEN_NAME + strlen ((char *)go->name) - 1 : 0;
/* RFC says that defaults should not be included. */
if (go->neg_router && to_external(go->router) != RIP_SAP)
}
if (go->neg_name) {
- int cilen = strlen (go->name);
+ int cilen = strlen ((char *)go->name);
int indx;
PUTCHAR (IPX_ROUTER_NAME, ucp);
PUTCHAR (CILEN_NAME + cilen - 1, ucp);
}
#define ACKCINODE(opt,neg,val) ACKCICHARS(opt,neg,val,sizeof(val))
-#define ACKCINAME(opt,neg,val) ACKCICHARS(opt,neg,val,strlen(val))
+#define ACKCINAME(opt,neg,val) ACKCICHARS(opt,neg,val,strlen((char *)val))
#define ACKCINETWORK(opt, neg, val) \
if (neg) { \
*/
static int
-ipxcp_nakci(f, p, len)
+ipxcp_nakci(f, p, len, treat_as_reject)
fsm *f;
u_char *p;
int len;
+ int treat_as_reject;
{
u_char citype, cilen, *next;
u_short s;
no.neg_nn = 1;
GETLONG(l, p);
- if (l && ao->accept_network)
+ if (treat_as_reject)
+ try.neg_nn = 0;
+ else if (l && ao->accept_network)
try.our_network = l;
break;
goto bad;
no.neg_node = 1;
- if (!zero_node (p) && ao->accept_local &&
- ! compare_node (p, ho->his_node))
+ if (treat_as_reject)
+ try.neg_node = 0;
+ else if (!zero_node (p) && ao->accept_local &&
+ ! compare_node (p, ho->his_node))
copy_node (p, try.our_node);
break;
}
#define REJCINODE(opt,neg,val) REJCICHARS(opt,neg,val,sizeof(val))
-#define REJCINAME(opt,neg,val) REJCICHARS(opt,neg,val,strlen(val))
+#define REJCINAME(opt,neg,val) REJCICHARS(opt,neg,val,strlen((char *)val))
#define REJCIVOID(opt, neg) \
if (neg && p[0] == opt) { \
case IPX_ROUTER_NAME:
if (cilen >= CILEN_NAME) {
int name_size = cilen - CILEN_NAME;
- if (name_size > sizeof (ho->name))
+ if (name_size >= sizeof (ho->name))
name_size = sizeof (ho->name) - 1;
memset (ho->name, 0, sizeof (ho->name));
memcpy (ho->name, p, name_size);
argv[6] = strremote;
argv[7] = strproto_lcl;
argv[8] = strproto_rmt;
- argv[9] = go->name;
- argv[10] = ho->name;
+ argv[9] = (char *)go->name;
+ argv[10] = (char *)ho->name;
argv[11] = ipparam;
argv[12] = strpid;
argv[13] = NULL;
- run_program(script, argv, 0, NULL, NULL);
+ run_program(script, argv, 0, NULL, NULL, 0);
}
/*
case TERMREQ:
if (len > 0 && *p >= ' ' && *p < 0x7f) {
printer(arg, " ");
- print_string(p, len, printer, arg);
+ print_string((char *)p, len, printer, arg);
p += len;
len = 0;
}