]> git.ozlabs.org Git - ppp.git/blobdiff - pppd/pppd.h
Move some stuff (printing, logging, [un]locking) into utils.c.
[ppp.git] / pppd / pppd.h
index a01a52b935909a514f6d0bc64fb7c0ab461dd660..5dece103e2a16c362bf6f14903bd8058f12219ff 100644 (file)
@@ -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.32 1999/03/19 01:28:27 paulus Exp $
+ * $Id: pppd.h,v 1.38 1999/04/12 06:24:47 paulus Exp $
  */
 
 /*
@@ -27,6 +27,7 @@
 #define __PPPD_H__
 
 #include <stdio.h>             /* for FILE */
+#include <limits.h>            /* for NGROUPS_MAX */
 #include <sys/param.h>         /* for MAXPATHLEN and BSD4_4, if defined */
 #include <sys/types.h>         /* for u_int32_t, if defined */
 #include <sys/time.h>          /* for struct timeval */
@@ -109,6 +110,17 @@ struct permitted_ip {
     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.
  */
@@ -130,6 +142,11 @@ 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.) */
+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 */
 
 /*
  * Variables set by command-line options.
@@ -149,6 +166,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 */
@@ -163,6 +181,9 @@ 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 */
+extern bool    sync_serial;    /* Device is synchronous serial device */
 
 #ifdef PPP_FILTER
 extern struct  bpf_program pass_filter;   /* Filter for pkts to pass */
@@ -266,6 +287,7 @@ void notice __P((char *, ...));     /* log a notice-level message */
 void warn __P((char *, ...));  /* log a warning message */
 void error __P((char *, ...)); /* log an error message */
 void fatal __P((char *, ...)); /* log an error message and die(1) */
+void reopen_log __P((void));   /* (re)open the connection to syslog */
 
 /* Procedures exported from auth.c */
 void link_required __P((int));   /* we are starting to use the link */
@@ -302,6 +324,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)); /* should we bring link up? */
 
 /* Procedures exported from sys-*.c */
 void sys_init __P((void));     /* Do system-dependent initialization */
@@ -309,6 +332,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 */
@@ -337,6 +361,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) */
@@ -357,8 +383,8 @@ int  cifproxyarp __P((int, u_int32_t));
                                /* Delete proxy ARP entry for peer */
 u_int32_t GetMask __P((u_int32_t)); /* Get appropriate netmask for address */
 int  lock __P((char *));       /* Create lock file for device */
+int  relock __P((int));                /* Rewrite lock file with new pid */
 void unlock __P((void));       /* Delete previously-created lock file */
-int  daemon __P((int, int));   /* Detach us from terminal session */
 void logwtmp __P((const char *, const char *, const char *));
                                /* Write entry to wtmp file */
 int  get_host_seed __P((void));        /* Get host-dependent random number seed */
@@ -404,6 +430,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.