X-Git-Url: https://git.ozlabs.org/?p=ppp.git;a=blobdiff_plain;f=pppd%2Fpppd.h;h=04c3ff9a8c794e4bf75366b473eebecf8723ee12;hp=38b17c60e844f8de75cdf9d6774a5e3861a31036;hb=f409b9f7b070fc7e0d1839f09d813503d7224df6;hpb=769fe7aa52b680b28e8a6dccfd247818ea9268ba diff --git a/pppd/pppd.h b/pppd/pppd.h index 38b17c6..04c3ff9 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.30 1999/03/16 02:51:06 paulus Exp $ + * $Id: pppd.h,v 1.35 1999/03/24 05:05:25 paulus Exp $ */ /* @@ -27,6 +27,7 @@ #define __PPPD_H__ #include /* for FILE */ +#include /* for NGROUPS_MAX */ #include /* for MAXPATHLEN and BSD4_4, if defined */ #include /* for u_int32_t, if defined */ #include /* for struct timeval */ @@ -102,6 +103,24 @@ typedef struct { #define GIDSET_TYPE gid_t #endif +/* Structure representing a list of permitted IP addresses. */ +struct permitted_ip { + int permit; /* 1 = permit, 0 = forbid */ + u_int32_t base; /* match if (addr & mask) == base */ + u_int32_t mask; /* base and mask are in network byte order */ +}; + +/* + * Unfortunately, the linux kernel driver uses a different structure + * for statistics from the rest of the ports. + * This structure serves as a common representation for the bits + * pppd needs. + */ +struct pppd_stats { + unsigned int bytes_in; + unsigned int bytes_out; +}; + /* * Global variables. */ @@ -123,6 +142,9 @@ extern char **script_env; /* Environment variables for scripts */ extern int detached; /* Have detached from controlling tty */ 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 using_pty; /* using pty as device (notty or pty opt.) */ /* * Variables set by command-line options. @@ -142,6 +164,7 @@ extern bool updetach; /* Detach from controlling tty when link up */ extern char *connector; /* Script to establish physical link */ extern char *disconnector; /* Script to disestablish physical link */ 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 */ @@ -150,12 +173,14 @@ extern bool persist; /* Reopen link after it goes down */ extern bool uselogin; /* Use /etc/passwd for checking PAP */ extern char our_name[MAXNAMELEN];/* Our name for authentication purposes */ extern char remote_name[MAXNAMELEN]; /* Peer's name for authentication */ -extern int explicit_remote;/* remote_name specified with remotename opt */ +extern bool explicit_remote;/* remote_name specified with remotename opt */ extern bool demand; /* Do dial-on-demand */ 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 notty; /* Stdin/out is not a tty */ +extern char *record_file; /* File to record chars sent/received */ #ifdef PPP_FILTER extern struct bpf_program pass_filter; /* Filter for pkts to pass */ @@ -212,6 +237,7 @@ struct protent { void (*datainput) __P((int unit, u_char *pkt, int len)); bool enabled_flag; /* 0 iff protocol is disabled */ char *name; /* Text name of protocol */ + char *data_name; /* Text name of corresponding data protocol */ option_t *options; /* List of command-line options */ /* Check requested options, assign defaults */ void (*check_options) __P((void)); @@ -242,8 +268,6 @@ pid_t run_program __P((char *prog, char **args, int must_exist, /* Run program prog with args in child */ void demuxprotrej __P((int, int)); /* Demultiplex a Protocol-Reject */ -void format_packet __P((u_char *, int, void (*) (void *, char *, ...), - void *)); /* Format a packet in human-readable form */ void log_packet __P((u_char *, int, char *, int)); /* Format a packet and log it with syslog */ void print_string __P((char *, int, void (*) (void *, char *, ...), @@ -252,9 +276,8 @@ int slprintf __P((char *, int, char *, ...)); /* sprintf++ */ int vslprintf __P((char *, int, char *, va_list)); /* vsprintf++ */ void script_setenv __P((char *, char *)); /* set script env var */ void script_unsetenv __P((char *)); /* unset script env var */ -void hangup_modem __P((int)); /* Make modem hang up */ -void strlcpy __P((char *, size_t, const char *)); /* safe strcpy */ -void strlcat __P((char *, size_t, const char *)); /* safe strncpy */ +size_t strlcpy __P((char *, const char *, size_t)); /* safe strcpy */ +size_t strlcat __P((char *, const char *, size_t)); /* safe strncpy */ void dbglog __P((char *, ...)); /* log a debug message */ void info __P((char *, ...)); /* log an informational message */ void notice __P((char *, ...)); /* log a notice-level message */ @@ -289,8 +312,6 @@ int auth_ip_addr __P((int, u_int32_t)); /* check if IP address is authorized */ int bad_ip_adrs __P((u_int32_t)); /* check if IP address is unreasonable */ -void check_access __P((FILE *, char *)); - /* check permissions on secrets file */ /* Procedures exported from demand.c */ void demand_conf __P((void)); /* config interface(s) for demand-dial */ @@ -299,7 +320,7 @@ void demand_unblock __P((void)); /* set all NPs to pass packets */ void demand_discard __P((void)); /* set all NPs to discard packets */ void demand_rexmit __P((int)); /* retransmit saved frames for an NP */ int loop_chars __P((unsigned char *, int)); /* process chars from loopback */ -int loop_frame __P((unsigned char *, int)); /* process frame from loopback */ +int loop_frame __P((unsigned char *, int)); /* should we bring link up? */ /* Procedures exported from sys-*.c */ void sys_init __P((void)); /* Do system-dependent initialization */ @@ -307,6 +328,7 @@ void sys_cleanup __P((void)); /* Restore system state before exiting */ int sys_check_options __P((void)); /* Check options specified */ void sys_close __P((void)); /* Clean up in a child before execing */ int ppp_available __P((void)); /* Test whether ppp kernel support exists */ +int get_pty __P((int *, int *, char *, int)); /* Get pty master/slave */ int open_ppp_loopback __P((void)); /* Open loopback for demand-dialling */ int establish_ppp __P((int)); /* Turn serial port into a ppp interface */ void restore_loop __P((void)); /* Transfer ppp unit back to loopback */ @@ -335,6 +357,8 @@ void ccp_flags_set __P((int, int, int)); int ccp_fatal_error __P((int)); /* Test for fatal decomp error in kernel */ int get_idle_time __P((int, struct ppp_idle *)); /* Find out how long link has been idle */ +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) */ @@ -373,7 +397,6 @@ int cipxfaddr __P((int)); /* Procedures exported from options.c */ int parse_args __P((int argc, char **argv)); /* Parse options from arguments given */ -void usage __P((void)); /* Print a usage message */ int options_from_file __P((char *filename, int must_exist, int check_prot, int privileged)); /* Parse options from an options file */ @@ -385,9 +408,6 @@ int getword __P((FILE *f, char *word, int *newlinep, char *filename)); /* Read a word from a file */ void option_error __P((char *fmt, ...)); /* Print an error message about an option */ -int readable __P((int fd)); /* Is fd readable by real user? */ -int number_option __P((char *, u_int32_t *, int)); - /* Parse a numerical option */ int int_option __P((char *, int *)); /* Simplified number_option for decimal ints */ @@ -406,6 +426,7 @@ extern struct option_info devnam_info; extern struct option_info connector_info; extern struct option_info disconnector_info; extern struct option_info welcomer_info; +extern struct option_info ptycommand_info; /* * Inline versions of get/put char/short/long. @@ -446,23 +467,15 @@ extern struct option_info welcomer_info; #define INCPTR(n, cp) ((cp) += (n)) #define DECPTR(n, cp) ((cp) -= (n)) -#undef FALSE -#define FALSE 0 -#undef TRUE -#define TRUE 1 - /* * System dependent definitions for user-level 4.3BSD UNIX implementation. */ -#define DEMUXPROTREJ(u, p) demuxprotrej(u, p) - #define TIMEOUT(r, f, t) timeout((r), (f), (t)) #define UNTIMEOUT(r, f) untimeout((r), (f)) #define BCOPY(s, d, l) memcpy(d, s, l) #define BZERO(s, n) memset(s, 0, n) -#define EXIT(u) quit() #define PRINTMSG(m, l) { info("Remote message: %0.*v", l, m); }