X-Git-Url: http://git.ozlabs.org/?p=ppp.git;a=blobdiff_plain;f=pppd%2Fpppd.h;h=90f74466bea38c3674d9428b14bf9adab34857e4;hp=d75a6fd8161d2876bfc24057d733c07e151ec627;hb=690865e93221a67d2ee33f4d184a8be79c3fc7ec;hpb=c062322f9e8757b85a3c2281a3190d8af14bcd9b diff --git a/pppd/pppd.h b/pppd/pppd.h index d75a6fd..90f7446 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.66 2002/03/01 14:39:18 dfs Exp $ + * $Id: pppd.h,v 1.75 2002/10/10 05:47:34 fcusack Exp $ */ /* @@ -79,7 +79,7 @@ typedef struct { enum opt_type type; void *addr; char *description; - int flags; + unsigned int flags; void *addr2; int upper_limit; int lower_limit; @@ -95,6 +95,7 @@ typedef struct { #define OPT_NOARG 0x200 /* option doesn't take argument */ #define OPT_OR 0x400 /* OR in argument to value */ #define OPT_INC 0x800 /* increment value */ +#define OPT_A2OR 0x800 /* for o_bool, OR arg to *(u_char *)addr2 */ #define OPT_PRIV 0x1000 /* privileged option */ #define OPT_STATIC 0x2000 /* string option goes into static array */ #define OPT_LLIMIT 0x4000 /* check value against lower limit */ @@ -119,7 +120,6 @@ 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) @@ -198,6 +198,7 @@ extern int baud_rate; /* Current link speed in bits/sec */ extern char *progname; /* Name of this program */ extern int redirect_stderr;/* Connector's stderr should go to file */ extern char peer_authname[];/* Authenticated name of peer */ +extern int auth_done[NUM_PPP]; /* Methods actually used for auth */ extern int privileged; /* We were run by real-uid root */ extern int need_holdoff; /* Need holdoff period after link terminates */ extern char **script_env; /* Environment variables for scripts */ @@ -285,6 +286,22 @@ extern char *bundle_name; /* bundle name for multilink */ extern bool dump_options; /* print out option values */ extern bool dryrun; /* check everything, print options, exit */ +#ifdef MAXOCTETS +extern unsigned int maxoctets; /* Maximum octetes per session (in bytes) */ +extern int maxoctets_dir; /* Direction : + 0 - in+out (default) + 1 - in + 2 - out + 3 - max(in,out) */ +extern int maxoctets_timeout; /* Timeout for check of octets limit */ +#define PPP_OCTETS_DIRECTION_SUM 0 +#define PPP_OCTETS_DIRECTION_IN 1 +#define PPP_OCTETS_DIRECTION_OUT 2 +#define PPP_OCTETS_DIRECTION_MAXOVERAL 3 +/* same as previos, but little different on RADIUS side */ +#define PPP_OCTETS_DIRECTION_MAXSESSION 4 +#endif + #ifdef PPP_FILTER extern struct bpf_program pass_filter; /* Filter for pkts to pass */ extern struct bpf_program active_filter; /* Filter for link-active pkts */ @@ -295,6 +312,22 @@ extern bool ms_lanman; /* Use LanMan password instead of NT */ /* Has meaning only with MS-CHAP challenges */ #endif +/* Values for auth_pending, auth_done */ +#define PAP_WITHPEER 0x1 +#define PAP_PEER 0x2 +#define CHAP_WITHPEER 0x4 +#define CHAP_PEER 0x8 +/* Values for auth_done only */ +#define CHAP_MD5_WITHPEER 0x10 +#define CHAP_MD5_PEER 0x20 +#ifdef CHAPMS +#define CHAP_MS_SHIFT 6 /* LSB position for MS auths */ +#define CHAP_MS_WITHPEER 0x40 +#define CHAP_MS_PEER 0x80 +#define CHAP_MS2_WITHPEER 0x100 +#define CHAP_MS2_PEER 0x200 +#endif + extern char *current_option; /* the name of the option being parsed */ extern int privileged_option; /* set iff the current option came from root */ extern char *option_source; /* string saying where the option came from */ @@ -461,17 +494,18 @@ void link_required __P((int)); /* we are starting to use the link */ void link_terminated __P((int)); /* we are finished with the link */ void link_down __P((int)); /* the LCP layer has left the Opened state */ void link_established __P((int)); /* the link is up; authenticate now */ -void start_networks __P((void)); /* start all the network control protos */ +void start_networks __P((int)); /* start all the network control protos */ +void continue_networks __P((int)); /* start network [ip, etc] control protos */ void np_up __P((int, int)); /* a network protocol has come up */ void np_down __P((int, int)); /* a network protocol has gone down */ void np_finished __P((int, int)); /* a network protocol no longer needs link */ void auth_peer_fail __P((int, int)); /* peer failed to authenticate itself */ -void auth_peer_success __P((int, int, char *, int)); +void auth_peer_success __P((int, int, int, char *, int)); /* peer successfully authenticated itself */ void auth_withpeer_fail __P((int, int)); /* we failed to authenticate ourselves */ -void auth_withpeer_success __P((int, int)); +void auth_withpeer_success __P((int, int, int)); /* we successfully authenticated ourselves */ void auth_check_options __P((void)); /* check authentication options supplied */ @@ -482,6 +516,7 @@ int get_secret __P((int, char *, char *, char *, int *, int)); /* get "secret" for chap */ int auth_ip_addr __P((int, u_int32_t)); /* check if IP address is authorized */ +int auth_number __P((void)); /* check if remote number is authorized */ int bad_ip_adrs __P((u_int32_t)); /* check if IP address is unreasonable */ @@ -542,6 +577,7 @@ int get_idle_time __P((int, struct ppp_idle *)); int get_ppp_stats __P((int, struct pppd_stats *)); /* Return link statistics */ void netif_set_mtu __P((int, int)); /* Set PPP interface MTU */ +int netif_get_mtu __P((int)); /* Get PPP interface MTU */ int sifvjcomp __P((int, int, int, int)); /* Configure VJ TCP header compression */ int sifup __P((int)); /* Configure i/f up for one protocol */ @@ -717,6 +753,10 @@ extern void (*snoop_send_hook) __P((unsigned char *p, int len)); #define EXIT_LOOPBACK 17 #define EXIT_INIT_FAILED 18 #define EXIT_AUTH_TOPEER_FAILED 19 +#ifdef MAXOCTETS +#define EXIT_TRAFFIC_LIMIT 20 +#endif +#define EXIT_CNID_AUTH_FAILED 21 /* * Debug macros. Slightly useful for finding bugs in pppd, not particularly