* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
-#define RCSID "$Id: main.c,v 1.110 2002/01/14 14:25:10 dfs Exp $"
+#define RCSID "$Id: main.c,v 1.113 2002/05/21 17:26:49 dfs Exp $"
#include <stdio.h>
#include <ctype.h>
#include "upap.h"
#include "chap.h"
#include "ccp.h"
+#include "ecp.h"
#include "pathnames.h"
#ifdef USE_TDB
static char pidfilename[MAXPATHLEN]; /* name of pid file */
static char linkpidfile[MAXPATHLEN]; /* name of linkname pid file */
char ppp_devnam[MAXPATHLEN]; /* name of PPP tty (maybe ttypx) */
+char remote_number[MAXNAMELEN]; /* Remote telephone number, if available */
uid_t uid; /* Our real user-id */
struct notifier *pidchange = NULL;
struct notifier *phasechange = NULL;
int unsuccess; /* # unsuccessful connection attempts */
int do_callback; /* != 0 if we should do callback next */
int doing_callback; /* != 0 if we are doing callback */
-
+int ppp_session_number; /* Session number, for channels with such a
+ concept (eg PPPoE) */
#ifdef USE_TDB
TDB_CONTEXT *pppdb; /* database for storing status etc. */
#endif
int (*holdoff_hook) __P((void)) = NULL;
int (*new_phase_hook) __P((int)) = NULL;
+void (*snoop_recv_hook) __P((unsigned char *p, int len)) = NULL;
+void (*snoop_send_hook) __P((unsigned char *p, int len)) = NULL;
static int conn_running; /* we have a [dis]connector running */
static int devfd; /* fd of underlying device */
&ipv6cp_protent,
#endif
&ccp_protent,
+ &ecp_protent,
#ifdef IPX_CHANGE
&ipxcp_protent,
#endif
}
dump_packet("rcvd", p, len);
+ if (snoop_recv_hook) snoop_recv_hook(p, len);
p += 2; /* Skip address and control */
GETSHORT(protocol, p);
}
/*
- * notify - call a set of functions registered with add_notify.
+ * notify - call a set of functions registered with add_notifier.
*/
void
notify(notif, val)