]> git.ozlabs.org Git - ppp.git/blobdiff - pppd/pppd.h
Corrected Linux MPPE kernel modules (Frank Cusack)
[ppp.git] / pppd / pppd.h
index f645eb4fa41bdd68883d190d2614bb47767dca53..a9b780a9e796d70575b76f8e1ed9960f079b7acf 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.63 2002/01/11 18:31:42 etbe Exp $
+ * $Id: pppd.h,v 1.67 2002/04/02 13:54:59 dfs Exp $
  */
 
 /*
@@ -86,6 +86,7 @@ typedef struct {
        const char *source;
        short int priority;
        short int winner;
+       void    *addr3;
 } option_t;
 
 /* Values for flags */
@@ -94,6 +95,7 @@ typedef struct {
 #define OPT_NOARG      0x200   /* option doesn't take argument */
 #define OPT_OR         0x400   /* OR in argument to value */
 #define OPT_INC                0x800   /* increment value */
+#define OPT_A2OR       0x800   /* for o_bool, OR arg to *(u_char *)addr2 */
 #define OPT_PRIV       0x1000  /* privileged option */
 #define OPT_STATIC     0x2000  /* string option goes into static array */
 #define OPT_LLIMIT     0x4000  /* check value against lower limit */
@@ -102,6 +104,7 @@ typedef struct {
 #define OPT_ZEROOK     0x10000 /* 0 value is OK even if not within limits */
 #define OPT_HIDE       0x10000 /* for o_string, print value as ?????? */
 #define OPT_A2LIST     0x10000 /* for o_special, keep list of values */
+#define OPT_A2CLRB     0x10000 /* o_bool, clr val bits in *(u_char *)addr2 */
 #define OPT_NOINCR     0x20000 /* value mustn't be increased */
 #define OPT_ZEROINF    0x40000 /* with OPT_NOINCR, 0 == infinity */
 #define OPT_PRIO       0x80000 /* process option priorities for this option */
@@ -117,6 +120,7 @@ typedef struct {
 #define OPT_A2PRINTER  0x10000000 /* *addr2 is a fn for printing option */
 #define OPT_A2STRVAL   0x20000000 /* *addr2 points to current string value */
 #define OPT_NOPRINT    0x40000000 /* don't print this option at all */
+#define OPT_A3OR       0x80000000 /* addr3 -> third location to rcv | value */
 
 #define OPT_VAL(x)     ((x) & OPT_VALUE)
 
@@ -195,6 +199,7 @@ extern int  baud_rate;      /* Current link speed in bits/sec */
 extern char    *progname;      /* Name of this program */
 extern int     redirect_stderr;/* Connector's stderr should go to file */
 extern char    peer_authname[];/* Authenticated name of peer */
+extern int     auth_done[NUM_PPP]; /* Methods actually used for auth */
 extern int     privileged;     /* We were run by real-uid root */
 extern int     need_holdoff;   /* Need holdoff period after link terminates */
 extern char    **script_env;   /* Environment variables for scripts */
@@ -214,6 +219,9 @@ extern int  unsuccess;      /* # unsuccessful connection attempts */
 extern int     do_callback;    /* set if we want to do callback next */
 extern int     doing_callback; /* set if this is a callback */
 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     listen_time;    /* time to listen first (ms) */
 extern struct notifier *pidchange;   /* for notifications of pid changing */
 extern struct notifier *phasechange; /* for notifications of phase changes */
@@ -289,6 +297,21 @@ extern bool        ms_lanman;      /* Use LanMan password instead of NT */
                                /* Has meaning only with MS-CHAP challenges */
 #endif
 
+/* Values for auth_pending, auth_done */
+#define PAP_WITHPEER   0x1
+#define PAP_PEER       0x2
+#define CHAP_WITHPEER  0x4
+#define CHAP_PEER      0x8
+/* Values for auth_done only */
+#define CHAP_MD5_WITHPEER      0x10
+#define CHAP_MD5_PEER          0x20
+#ifdef CHAPMS
+#define CHAP_MS_WITHPEER       0x40
+#define CHAP_MS_PEER           0x80
+#define CHAP_MS2_WITHPEER      0x100
+#define CHAP_MS2_PEER          0x200
+#endif
+
 extern char *current_option;   /* the name of the option being parsed */
 extern int  privileged_option; /* set iff the current option came from root */
 extern char *option_source;    /* string saying where the option came from */
@@ -461,11 +484,11 @@ void np_down __P((int, int));       /* a network protocol has gone down */
 void np_finished __P((int, int)); /* a network protocol no longer needs link */
 void auth_peer_fail __P((int, int));
                                /* peer failed to authenticate itself */
-void auth_peer_success __P((int, int, char *, int));
+void auth_peer_success __P((int, int, int, char *, int));
                                /* peer successfully authenticated itself */
 void auth_withpeer_fail __P((int, int));
                                /* we failed to authenticate ourselves */
-void auth_withpeer_success __P((int, int));
+void auth_withpeer_success __P((int, int, int));
                                /* we successfully authenticated ourselves */
 void auth_check_options __P((void));
                                /* check authentication options supplied */
@@ -536,6 +559,7 @@ int  get_idle_time __P((int, struct ppp_idle *));
 int  get_ppp_stats __P((int, struct pppd_stats *));
                                /* Return link statistics */
 void netif_set_mtu __P((int, int)); /* Set PPP interface MTU */
+int  netif_get_mtu __P((int));      /* Get PPP interface MTU */
 int  sifvjcomp __P((int, int, int, int));
                                /* Configure VJ TCP header compression */
 int  sifup __P((int));         /* Configure i/f up for one protocol */
@@ -617,10 +641,18 @@ extern int (*pap_auth_hook) __P((char *user, char *passwd, char **msgp,
                                 struct wordlist **popts));
 extern void (*pap_logout_hook) __P((void));
 extern int (*pap_passwd_hook) __P((char *user, char *passwd));
+extern int (*allowed_address_hook) __P((u_int32_t addr));
 extern void (*ip_up_hook) __P((void));
 extern void (*ip_down_hook) __P((void));
 extern void (*ip_choose_hook) __P((u_int32_t *));
 
+extern int (*chap_check_hook) __P((void));
+extern int (*chap_passwd_hook) __P((char *user, char *passwd));
+
+/* Let a plugin snoop sent and received packets.  Useful for L2TP */
+extern void (*snoop_recv_hook) __P((unsigned char *p, int len));
+extern void (*snoop_send_hook) __P((unsigned char *p, int len));
+
 /*
  * Inline versions of get/put char/short/long.
  * Pointer is advanced; we assume that both arguments
@@ -797,4 +829,8 @@ extern void (*ip_choose_hook) __P((u_int32_t *));
 #define MAX(a, b)      ((a) > (b)? (a): (b))
 #endif
 
+#ifndef offsetof
+#define offsetof(type, member) ((size_t) &((type *)0)->member)
+#endif
+
 #endif /* __PPP_H__ */