X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=pppd%2Fpppd.h;h=f08487730676dac9eaa38a71f051b11662ef5bd2;hb=33c08b5f78f41aab4d1172e66db7c1afe21b5f1c;hp=c7ddd3b0b3683012e543a7ce49d023da77854cb9;hpb=a4efaa63e68e25e712af030a138a272dfe0d2180;p=ppp.git diff --git a/pppd/pppd.h b/pppd/pppd.h index c7ddd3b..f084877 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.42 1999/07/21 00:24:32 paulus Exp $ + * $Id: pppd.h,v 1.48 1999/09/11 12:08:59 paulus Exp $ */ /* @@ -33,7 +33,7 @@ #include /* for struct timeval */ #include -#if __STDC__ +#if defined(__STDC__) #include #define __V(x) x #else @@ -43,6 +43,10 @@ #define volatile #endif +#ifdef INET6 +#include "eui64.h" +#endif + /* * Limits. */ @@ -155,11 +159,13 @@ extern GIDSET_TYPE groups[NGROUPS_MAX]; /* groups the user is in */ extern int ngroups; /* How many groups valid in groups */ extern struct pppd_stats link_stats; /* byte/packet counts etc. for link */ extern int link_stats_valid; /* set if link_stats is valid */ +extern int link_connect_time; /* time the link was up for */ extern int using_pty; /* using pty as device (notty or pty opt.) */ extern int log_to_fd; /* logging to this fd as well as syslog */ extern char *no_ppp_msg; /* message to print if ppp not in kernel */ extern volatile int status; /* exit status for pppd */ extern int devnam_fixed; /* can no longer change devnam */ +extern int unsuccess; /* # unsuccessful connection attempts */ /* * Variables set by command-line options. @@ -183,7 +189,7 @@ extern char *welcomer; /* Script to welcome client after connection */ extern char *ptycommand; /* Command to run on other side of pty */ extern int maxconnect; /* Maximum connect time (seconds) */ extern char user[MAXNAMELEN];/* Our name for authenticating ourselves */ -extern char passwd[MAXSECRETLEN]; /* Password for PAP */ +extern char passwd[MAXSECRETLEN]; /* Password for PAP or CHAP */ extern bool auth_required; /* Peer is required to authenticate */ extern bool persist; /* Reopen link after it goes down */ extern bool uselogin; /* Use /etc/passwd for checking PAP */ @@ -195,9 +201,13 @@ extern char *ipparam; /* Extra parameter for ip up/down scripts */ extern bool cryptpap; /* Others' PAP passwords are encrypted */ extern int idle_time_limit;/* Shut down link if idle for this long */ extern int holdoff; /* Dead time before restarting */ +extern bool holdoff_specified; /* true if user gave a holdoff value */ extern bool notty; /* Stdin/out is not a tty */ extern char *record_file; /* File to record chars sent/received */ extern bool sync_serial; /* Device is synchronous serial device */ +extern int maxfail; /* Max # of unsuccessful connection attempts */ +extern char linkname[MAXPATHLEN]; /* logical name for link */ +extern bool tune_kernel; /* May alter kernel settings as necessary */ #ifdef PPP_FILTER extern struct bpf_program pass_filter; /* Filter for pkts to pass */ @@ -224,8 +234,10 @@ extern char *option_source; /* string saying where the option came from */ #define PHASE_AUTHENTICATE 5 #define PHASE_CALLBACK 6 #define PHASE_NETWORK 7 -#define PHASE_TERMINATE 8 -#define PHASE_HOLDOFF 9 +#define PHASE_RUNNING 8 +#define PHASE_TERMINATE 9 +#define PHASE_DISCONNECT 10 +#define PHASE_HOLDOFF 11 /* * The following struct gives the addresses of procedures to call @@ -288,6 +300,7 @@ void reopen_log __P((void)); /* (re)open the connection to syslog */ void update_link_stats __P((int)); /* Get stats at link termination */ void script_setenv __P((char *, char *)); /* set script env var */ void script_unsetenv __P((char *)); /* unset script env var */ +void new_phase __P((int)); /* signal start of new phase */ /* Procedures exported from utils.c. */ void log_packet __P((u_char *, int, char *, int)); @@ -325,7 +338,7 @@ void auth_withpeer_success __P((int, int)); void auth_check_options __P((void)); /* check authentication options supplied */ void auth_reset __P((int)); /* check what secrets we have */ -int check_passwd __P((int, char *, int, char *, int, char **, int *)); +int check_passwd __P((int, char *, int, char *, int, char **)); /* Check peer-supplied username/password */ int get_secret __P((int, char *, char *, char *, int *, int)); /* get "secret" for chap */ @@ -382,14 +395,20 @@ int get_ppp_stats __P((int, struct pppd_stats *)); /* Return link statistics */ int sifvjcomp __P((int, int, int, int)); /* Configure VJ TCP header compression */ -int sifup __P((int)); /* Configure i/f up (for IP) */ +int sifup __P((int)); /* Configure i/f up for one protocol */ int sifnpmode __P((int u, int proto, enum NPmode mode)); /* Set mode for handling packets for proto */ -int sifdown __P((int)); /* Configure i/f down (for IP) */ +int sifdown __P((int)); /* Configure i/f down for one protocol */ int sifaddr __P((int, u_int32_t, u_int32_t, u_int32_t)); - /* Configure IP addresses for i/f */ + /* Configure IPv4 addresses for i/f */ int cifaddr __P((int, u_int32_t, u_int32_t)); /* Reset i/f IP addresses */ +#ifdef INET6 +int sif6addr __P((int, eui64_t, eui64_t)); + /* Configure IPv6 addresses for i/f */ +int cif6addr __P((int, eui64_t, eui64_t)); + /* Remove an IPv6 address from i/f */ +#endif int sifdefaultroute __P((int, u_int32_t, u_int32_t)); /* Create default route through i/f */ int cifdefaultroute __P((int, u_int32_t, u_int32_t)); @@ -431,6 +450,7 @@ void option_error __P((char *fmt, ...)); /* Print an error message about an option */ int int_option __P((char *, int *)); /* Simplified number_option for decimal ints */ +void add_options __P((option_t *)); /* Add extra options */ /* * This structure is used to store information about certain @@ -450,6 +470,18 @@ extern struct option_info disconnector_info; extern struct option_info welcomer_info; extern struct option_info ptycommand_info; +/* + * Hooks to enable plugins to change various things. + */ +extern int (*new_phase_hook) __P((int)); +extern int (*idle_time_hook) __P((struct ppp_idle *)); +extern int (*holdoff_hook) __P((void)); +extern int (*pap_check_hook) __P((void)); +extern int (*pap_auth_hook) __P((char *user, char *passwd, char **msgp, + struct wordlist **paddrs, + struct wordlist **popts)); +extern int (*pap_passwd_hook) __P((char *user, char *passwd)); + /* * Inline versions of get/put char/short/long. * Pointer is advanced; we assume that both arguments @@ -531,6 +563,7 @@ extern struct option_info ptycommand_info; #define EXIT_HANGUP 16 #define EXIT_LOOPBACK 17 #define EXIT_INIT_FAILED 18 +#define EXIT_AUTH_TOPEER_FAILED 19 /* * Debug macros. Slightly useful for finding bugs in pppd, not particularly @@ -541,6 +574,7 @@ extern struct option_info ptycommand_info; #define DEBUGFSM 1 #define DEBUGLCP 1 #define DEBUGIPCP 1 +#define DEBUGIPV6CP 1 #define DEBUGUPAP 1 #define DEBUGCHAP 1 #endif @@ -548,7 +582,7 @@ extern struct option_info ptycommand_info; #ifndef LOG_PPP /* we use LOG_LOCAL2 for syslog by default */ #if defined(DEBUGMAIN) || defined(DEBUGFSM) || defined(DEBUGSYS) \ || defined(DEBUGLCP) || defined(DEBUGIPCP) || defined(DEBUGUPAP) \ - || defined(DEBUGCHAP) || defined(DEBUG) + || defined(DEBUGCHAP) || defined(DEBUG) || defined(DEBUGIPV6CP) #define LOG_PPP LOG_LOCAL2 #else #define LOG_PPP LOG_DAEMON @@ -585,6 +619,12 @@ extern struct option_info ptycommand_info; #define IPCPDEBUG(x) #endif +#ifdef DEBUGIPV6CP +#define IPV6CPDEBUG(x) if (debug) dbglog x +#else +#define IPV6CPDEBUG(x) +#endif + #ifdef DEBUGUPAP #define UPAPDEBUG(x) if (debug) dbglog x #else