-extern struct userenv *userenv_list;
-
-/*
- * Prototypes.
- */
-
-/* Procedures exported from main.c. */
-void set_ifunit(int); /* set stuff that depends on ifunit */
-void detach(void); /* Detach from controlling tty */
-void die(int); /* Cleanup and exit */
-void quit(void); /* like die(1) */
-void novm(char *); /* Say we ran out of memory, and die */
-void timeout(void (*func)(void *), void *arg, int s, int us);
- /* Call func(arg) after s.us seconds */
-void untimeout(void (*func)(void *), void *arg);
- /* Cancel call to func(arg) */
-void record_child(int, char *, void (*) (void *), void *, int);
-pid_t safe_fork(int, int, int); /* Fork & close stuff in child */
-int device_script(char *cmd, int in, int out, int dont_wait);
- /* Run `cmd' with given stdin and stdout */
-pid_t run_program(char *prog, char **args, int must_exist,
- void (*done)(void *), void *arg, int wait);
- /* Run program prog with args in child */
-void reopen_log(void); /* (re)open the connection to syslog */
-void print_link_stats(void); /* Print stats, if available */
-void reset_link_stats(int); /* Reset (init) stats when link goes up */
-void update_link_stats(int); /* Get stats at link termination */
-void script_setenv(char *, char *, int); /* set script env var */
-void script_unsetenv(char *); /* unset script env var */
-void new_phase(int); /* signal start of new phase */
-void add_notifier(struct notifier **, notify_func, void *);
-void remove_notifier(struct notifier **, notify_func, void *);
-void notify(struct notifier *, int);
-int ppp_send_config(int, int, u_int32_t, int, int);
-int ppp_recv_config(int, int, u_int32_t, int, int);
-const char *protocol_name(int);
-void remove_pidfiles(void);
-void lock_db(void);
-void unlock_db(void);
-
-/* Procedures exported from tty.c. */
-void tty_init(void);
-
-/* Procedures exported from utils.c. */
-void log_packet(u_char *, int, char *, int);
- /* Format a packet and log it with syslog */
-void print_string(char *, int, printer_func, void *);
- /* Format a string for output */
-int slprintf(char *, int, char *, ...); /* sprintf++ */
-int vslprintf(char *, int, char *, va_list); /* vsprintf++ */
-size_t strlcpy(char *, const char *, size_t); /* safe strcpy */
-size_t strlcat(char *, const char *, size_t); /* safe strncpy */
-void dbglog(char *, ...); /* log a debug message */
-void info(char *, ...); /* log an informational message */
-void notice(char *, ...); /* log a notice-level message */
-void warn(char *, ...); /* log a warning message */
-void error(char *, ...); /* log an error message */
-void fatal(char *, ...); /* log an error message and die(1) */
-void init_pr_log(const char *, int); /* initialize for using pr_log */
-void pr_log(void *, char *, ...); /* printer fn, output to syslog */
-void end_pr_log(void); /* finish up after using pr_log */
-void dump_packet(const char *, u_char *, int);
- /* dump packet to debug log if interesting */
-ssize_t complete_read(int, void *, size_t);
- /* read a complete buffer */
-
-/* Procedures exported from auth.c */
-void link_required(int); /* we are starting to use the link */
-void start_link(int); /* bring the link up now */
-void link_terminated(int); /* we are finished with the link */
-void link_down(int); /* the LCP layer has left the Opened state */
-void upper_layers_down(int);/* take all NCPs down */
-void link_established(int); /* the link is up; authenticate now */
-void start_networks(int); /* start all the network control protos */
-void continue_networks(int); /* start network [ip, etc] control protos */
-void np_up(int, int); /* a network protocol has come up */
-void np_down(int, int); /* a network protocol has gone down */
-void np_finished(int, int); /* a network protocol no longer needs link */
-void auth_peer_fail(int, int);
- /* peer failed to authenticate itself */
-void auth_peer_success(int, int, int, char *, int);
- /* peer successfully authenticated itself */
-void auth_withpeer_fail(int, int);
- /* we failed to authenticate ourselves */
-void auth_withpeer_success(int, int, int);
- /* we successfully authenticated ourselves */
-void auth_check_options(void);
- /* check authentication options supplied */
-void auth_reset(int); /* check what secrets we have */
-int check_passwd(int, char *, int, char *, int, char **);
- /* Check peer-supplied username/password */
-int get_secret(int, char *, char *, char *, int *, int);
- /* get "secret" for chap */
-int get_srp_secret(int unit, char *client, char *server, char *secret,
- int am_server);
-int auth_ip_addr(int, u_int32_t);
- /* check if IP address is authorized */
-int auth_number(void); /* check if remote number is authorized */
-int bad_ip_adrs(u_int32_t);
- /* check if IP address is unreasonable */
-
-/* Procedures exported from demand.c */
-void demand_conf(void); /* config interface(s) for demand-dial */
-void demand_block(void); /* set all NPs to queue up packets */
-void demand_unblock(void); /* set all NPs to pass packets */
-void demand_discard(void); /* set all NPs to discard packets */
-void demand_rexmit(int); /* retransmit saved frames for an NP */
-int loop_chars(unsigned char *, int); /* process chars from loopback */
-int loop_frame(unsigned char *, int); /* should we bring link up? */
-
-/* Procedures exported from multilink.c */
-#ifdef HAVE_MULTILINK
-void mp_check_options(void); /* Check multilink-related options */
-int mp_join_bundle(void); /* join our link to an appropriate bundle */
-void mp_exit_bundle(void); /* have disconnected our link from bundle */
-void mp_bundle_terminated(void);
-char *epdisc_to_str(struct epdisc *); /* string from endpoint discrim. */
-int str_to_epdisc(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