* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
-#ifndef lint
-static char rcsid[] = "$Id: demand.c,v 1.9 1999/03/19 01:21:28 paulus Exp $";
-#endif
+#define RCSID "$Id: demand.c,v 1.15 2001/03/08 05:14:26 paulus Exp $"
#include <stdio.h>
#include <stdlib.h>
#include "ipcp.h"
#include "lcp.h"
+static const char rcsid[] = RCSID;
+
char *frame;
int framelen;
int framemax;
struct packet *pend_qtail;
static int active_packet __P((unsigned char *, int));
-static int loop_frame __P((unsigned char *, int));
/*
* demand_conf - configure the interface for doing dial-on-demand.
flush_flag = 0;
fcs = PPP_INITFCS;
+ netif_set_mtu(0, MIN(lcp_allowoptions[0].mru, PPP_MRU));
ppp_send_config(0, PPP_MRU, (u_int32_t) 0, 0, 0);
ppp_recv_config(0, PPP_MRU, (u_int32_t) 0, 0, 0);
if (!escape_flag && !flush_flag
&& framelen > 2 && fcs == PPP_GOODFCS) {
framelen -= 2;
- if (loop_frame(frame, framelen))
+ if (loop_frame((unsigned char *)frame, framelen))
rv = 1;
}
framelen = 0;
* We apply the active_filter to see if we want this packet to
* bring up the link.
*/
-static int
+int
loop_frame(frame, len)
unsigned char *frame;
int len;
return 0;
proto = PPP_PROTOCOL(p);
#ifdef PPP_FILTER
+ if (pass_filter.bf_len != 0
+ && bpf_filter(pass_filter.bf_insns, p, len, len) == 0)
+ return 0;
if (active_filter.bf_len != 0
- && bpf_filter(active_filter.bf_insns, frame, len, len) == 0)
+ && bpf_filter(active_filter.bf_insns, p, len, len) == 0)
return 0;
#endif
for (i = 0; (protp = protocols[i]) != NULL; ++i) {