|
@@ -39,8 +39,7 @@
|
|
|
* AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
|
|
|
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
|
*
|
|
|
- * upstream pppd.h,v 1.82 2003/04/07 00:01:46 paulus Exp
|
|
|
- * $Id: pppd.h,v 1.1 2004/04/28 11:36:07 quozl Exp $
|
|
|
+ * $Id: pppd.h,v 1.91 2005/08/25 23:59:34 paulus Exp $
|
|
|
*/
|
|
|
|
|
|
/*
|
|
@@ -216,6 +215,8 @@ extern int ifunit; /* Interface unit number */
|
|
|
extern char ifname[]; /* Interface name */
|
|
|
extern char hostname[]; /* Our hostname */
|
|
|
extern u_char outpacket_buf[]; /* Buffer for outgoing packets */
|
|
|
+extern int devfd; /* fd of underlying device */
|
|
|
+extern int fd_ppp; /* fd for talking PPP */
|
|
|
extern int phase; /* Current state of link - see values below */
|
|
|
extern int baud_rate; /* Current link speed in bits/sec */
|
|
|
extern char *progname; /* Name of this program */
|
|
@@ -244,8 +245,14 @@ extern int error_count; /* # of times error() has been called */
|
|
|
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 fd_devnull; /* fd open to /dev/null */
|
|
|
|
|
|
extern int listen_time; /* time to listen first (ms) */
|
|
|
+extern bool doing_multilink;
|
|
|
+extern bool multilink_master;
|
|
|
+extern bool bundle_eof;
|
|
|
+extern bool bundle_terminating;
|
|
|
+
|
|
|
extern struct notifier *pidchange; /* for notifications of pid changing */
|
|
|
extern struct notifier *phasechange; /* for notifications of phase changes */
|
|
|
extern struct notifier *exitnotify; /* for notification that we're exiting */
|
|
@@ -305,11 +312,14 @@ extern bool tune_kernel; /* May alter kernel settings as necessary */
|
|
|
extern int connect_delay; /* Time to delay after connect script */
|
|
|
extern int max_data_rate; /* max bytes/sec through charshunt */
|
|
|
extern int req_unit; /* interface unit number to use */
|
|
|
+extern char path_ipup[MAXPATHLEN]; /* pathname of ip-up script */
|
|
|
+extern char path_ipdown[MAXPATHLEN]; /* pathname of ip-down script */
|
|
|
extern bool multilink; /* enable multilink operation */
|
|
|
extern bool noendpoint; /* don't send or accept endpt. discrim. */
|
|
|
extern char *bundle_name; /* bundle name for multilink */
|
|
|
extern bool dump_options; /* print out option values */
|
|
|
extern bool dryrun; /* check everything, print options, exit */
|
|
|
+extern int child_wait; /* # seconds to wait for children at end */
|
|
|
|
|
|
#ifdef MAXOCTETS
|
|
|
extern unsigned int maxoctets; /* Maximum octetes per session (in bytes) */
|
|
@@ -348,13 +358,11 @@ extern bool ms_lanman; /* Use LanMan password instead of NT */
|
|
|
/* Values for auth_done only */
|
|
|
#define CHAP_MD5_WITHPEER 0x40
|
|
|
#define CHAP_MD5_PEER 0x80
|
|
|
-#ifdef CHAPMS
|
|
|
#define CHAP_MS_SHIFT 8 /* LSB position for MS auths */
|
|
|
#define CHAP_MS_WITHPEER 0x100
|
|
|
#define CHAP_MS_PEER 0x200
|
|
|
#define CHAP_MS2_WITHPEER 0x400
|
|
|
#define CHAP_MS2_PEER 0x800
|
|
|
-#endif
|
|
|
|
|
|
extern char *current_option; /* the name of the option being parsed */
|
|
|
extern int privileged_option; /* set iff the current option came from root */
|
|
@@ -376,6 +384,7 @@ extern int option_priority; /* priority of current options */
|
|
|
#define PHASE_TERMINATE 9
|
|
|
#define PHASE_DISCONNECT 10
|
|
|
#define PHASE_HOLDOFF 11
|
|
|
+#define PHASE_MASTER 12
|
|
|
|
|
|
/*
|
|
|
* The following struct gives the addresses of procedures to call
|
|
@@ -467,13 +476,15 @@ void timeout __P((void (*func)(void *), void *arg, int s, int us));
|
|
|
void untimeout __P((void (*func)(void *), void *arg));
|
|
|
/* Cancel call to func(arg) */
|
|
|
void record_child __P((int, char *, void (*) (void *), void *));
|
|
|
-pid_t safe_fork __P((void)); /* Fork & close stuff in child */
|
|
|
+pid_t safe_fork __P((int, int, int)); /* Fork & close stuff in child */
|
|
|
int device_script __P((char *cmd, int in, int out, int dont_wait));
|
|
|
/* Run `cmd' with given stdin and stdout */
|
|
|
pid_t run_program __P((char *prog, char **args, int must_exist,
|
|
|
- void (*done)(void *), void *arg));
|
|
|
+ void (*done)(void *), void *arg, int wait));
|
|
|
/* Run program prog with args in child */
|
|
|
void reopen_log __P((void)); /* (re)open the connection to syslog */
|
|
|
+void print_link_stats __P((void)); /* Print stats, if available */
|
|
|
+void reset_link_stats __P((int)); /* Reset (init) stats when link goes up */
|
|
|
void update_link_stats __P((int)); /* Get stats at link termination */
|
|
|
void script_setenv __P((char *, char *, int)); /* set script env var */
|
|
|
void script_unsetenv __P((char *)); /* unset script env var */
|
|
@@ -483,6 +494,10 @@ void remove_notifier __P((struct notifier **, notify_func, void *));
|
|
|
void notify __P((struct notifier *, int));
|
|
|
int ppp_send_config __P((int, int, u_int32_t, int, int));
|
|
|
int ppp_recv_config __P((int, int, u_int32_t, int, int));
|
|
|
+const char *protocol_name __P((int));
|
|
|
+void remove_pidfiles __P((void));
|
|
|
+void lock_db __P((void));
|
|
|
+void unlock_db __P((void));
|
|
|
|
|
|
/* Procedures exported from tty.c. */
|
|
|
void tty_init __P((void));
|
|
@@ -512,8 +527,10 @@ ssize_t complete_read __P((int, void *, size_t));
|
|
|
|
|
|
/* Procedures exported from auth.c */
|
|
|
void link_required __P((int)); /* we are starting to use the link */
|
|
|
+void start_link __P((int)); /* bring the link up now */
|
|
|
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 upper_layers_down __P((int));/* take all NCPs down */
|
|
|
void link_established __P((int)); /* the link is up; authenticate now */
|
|
|
void start_networks __P((int)); /* start all the network control protos */
|
|
|
void continue_networks __P((int)); /* start network [ip, etc] control protos */
|
|
@@ -548,15 +565,24 @@ void demand_conf __P((void)); /* config interface(s) for demand-dial */
|
|
|
void demand_block __P((void)); /* set all NPs to queue up packets */
|
|
|
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 */
|
|
|
+void demand_rexmit __P((int, u_int32_t)); /* retransmit saved frames for an NP*/
|
|
|
int loop_chars __P((unsigned char *, int)); /* process chars from loopback */
|
|
|
int loop_frame __P((unsigned char *, int)); /* should we bring link up? */
|
|
|
|
|
|
/* Procedures exported from multilink.c */
|
|
|
+#ifdef HAVE_MULTILINK
|
|
|
void mp_check_options __P((void)); /* Check multilink-related options */
|
|
|
int mp_join_bundle __P((void)); /* join our link to an appropriate bundle */
|
|
|
+void mp_exit_bundle __P((void)); /* have disconnected our link from bundle */
|
|
|
+void mp_bundle_terminated __P((void));
|
|
|
char *epdisc_to_str __P((struct epdisc *)); /* string from endpoint discrim. */
|
|
|
int str_to_epdisc __P((struct epdisc *, char *)); /* endpt disc. from str */
|
|
|
+#else
|
|
|
+#define mp_bundle_terminated() /* nothing */
|
|
|
+#define mp_exit_bundle() /* nothing */
|
|
|
+#define doing_multilink 0
|
|
|
+#define multilink_master 0
|
|
|
+#endif
|
|
|
|
|
|
/* Procedures exported from sys-*.c */
|
|
|
void sys_init __P((void)); /* Do system-dependent initialization */
|
|
@@ -573,6 +599,7 @@ int generic_establish_ppp __P((int dev_fd)); /* Make a ppp interface */
|
|
|
void make_new_bundle __P((int, int, int, int)); /* Create new bundle */
|
|
|
int bundle_attach __P((int)); /* Attach link to existing bundle */
|
|
|
void cfg_bundle __P((int, int, int, int)); /* Configure existing bundle */
|
|
|
+void destroy_bundle __P((void)); /* Tell driver to destroy bundle */
|
|
|
void clean_check __P((void)); /* Check if line was 8-bit clean */
|
|
|
void set_up_tty __P((int, int)); /* Set up port's speed, parameters, etc. */
|
|
|
void restore_tty __P((int)); /* Restore port's original parameters */
|
|
@@ -617,7 +644,7 @@ int sif6addr __P((int, eui64_t, eui64_t));
|
|
|
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));
|
|
|
+int sifdefaultroute __P((int, u_int32_t, u_int32_t, bool replace_default_rt));
|
|
|
/* Create default route through i/f */
|
|
|
int cifdefaultroute __P((int, u_int32_t, u_int32_t));
|
|
|
/* Delete default route through i/f */
|
|
@@ -802,7 +829,7 @@ extern void (*snoop_send_hook) __P((unsigned char *p, int len));
|
|
|
|| defined(DEBUGCHAP) || defined(DEBUG) || defined(DEBUGIPV6CP)
|
|
|
#define LOG_PPP LOG_LOCAL2
|
|
|
#else
|
|
|
-#define LOG_PPP LOG_DAEMON
|
|
|
+#define LOG_PPP LOG_LOCAL2
|
|
|
#endif
|
|
|
#endif /* LOG_PPP */
|
|
|
|