X-Git-Url: http://git.ozlabs.org/?p=ppp.git;a=blobdiff_plain;f=pppd%2Fpppd.h;h=d75a6fd8161d2876bfc24057d733c07e151ec627;hp=9e03a12c1f743f9115c70d9350521494799d6b42;hb=d0f67b16e65edb6281d409af01de4597cc045ee6;hpb=cc593def97b4f6f271fad15805b61c4773c4e30a diff --git a/pppd/pppd.h b/pppd/pppd.h index 9e03a12..d75a6fd 100644 --- a/pppd/pppd.h +++ b/pppd/pppd.h @@ -16,7 +16,7 @@ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. * - * $Id: pppd.h,v 1.62 2001/05/23 03:39:13 paulus Exp $ + * $Id: pppd.h,v 1.66 2002/03/01 14:39:18 dfs Exp $ */ /* @@ -71,7 +71,7 @@ enum opt_type { o_int, o_uint32, o_string, - o_wild, + o_wild }; typedef struct { @@ -86,6 +86,7 @@ typedef struct { const char *source; short int priority; short int winner; + void *addr3; } option_t; /* Values for flags */ @@ -102,6 +103,7 @@ typedef struct { #define OPT_ZEROOK 0x10000 /* 0 value is OK even if not within limits */ #define OPT_HIDE 0x10000 /* for o_string, print value as ?????? */ #define OPT_A2LIST 0x10000 /* for o_special, keep list of values */ +#define OPT_A2CLRB 0x10000 /* o_bool, clr val bits in *(u_char *)addr2 */ #define OPT_NOINCR 0x20000 /* value mustn't be increased */ #define OPT_ZEROINF 0x40000 /* with OPT_NOINCR, 0 == infinity */ #define OPT_PRIO 0x80000 /* process option priorities for this option */ @@ -117,6 +119,7 @@ typedef struct { #define OPT_A2PRINTER 0x10000000 /* *addr2 is a fn for printing option */ #define OPT_A2STRVAL 0x20000000 /* *addr2 points to current string value */ #define OPT_NOPRINT 0x40000000 /* don't print this option at all */ +#define OPT_A3OR 0x80000000 /* addr3 -> third location to rcv | value */ #define OPT_VAL(x) ((x) & OPT_VALUE) @@ -214,6 +217,9 @@ extern int unsuccess; /* # unsuccessful connection attempts */ extern int do_callback; /* set if we want to do callback next */ extern int doing_callback; /* set if this is a callback */ extern char ppp_devnam[MAXPATHLEN]; +extern char remote_number[MAXNAMELEN]; /* Remote telephone number, if avail. */ +extern int ppp_session_number; /* Session number (eg PPPoE session) */ + extern int listen_time; /* time to listen first (ms) */ extern struct notifier *pidchange; /* for notifications of pid changing */ extern struct notifier *phasechange; /* for notifications of phase changes */ @@ -580,6 +586,7 @@ int get_if_hwaddr __P((u_char *addr, char *name)); char *get_first_ethernet __P((void)); /* Procedures exported from options.c */ +int setipaddr __P((char *, char **, int)); /* Set local/remote ip addresses */ int parse_args __P((int argc, char **argv)); /* Parse options from arguments given */ int options_from_file __P((char *filename, int must_exist, int check_prot, @@ -616,10 +623,18 @@ extern int (*pap_auth_hook) __P((char *user, char *passwd, char **msgp, struct wordlist **popts)); extern void (*pap_logout_hook) __P((void)); extern int (*pap_passwd_hook) __P((char *user, char *passwd)); +extern int (*allowed_address_hook) __P((u_int32_t addr)); extern void (*ip_up_hook) __P((void)); extern void (*ip_down_hook) __P((void)); extern void (*ip_choose_hook) __P((u_int32_t *)); +extern int (*chap_check_hook) __P((void)); +extern int (*chap_passwd_hook) __P((char *user, char *passwd)); + +/* Let a plugin snoop sent and received packets. Useful for L2TP */ +extern void (*snoop_recv_hook) __P((unsigned char *p, int len)); +extern void (*snoop_send_hook) __P((unsigned char *p, int len)); + /* * Inline versions of get/put char/short/long. * Pointer is advanced; we assume that both arguments @@ -796,4 +811,8 @@ extern void (*ip_choose_hook) __P((u_int32_t *)); #define MAX(a, b) ((a) > (b)? (a): (b)) #endif +#ifndef offsetof +#define offsetof(type, member) ((size_t) &((type *)0)->member) +#endif + #endif /* __PPP_H__ */