31#include <net/ppp_defs.h>
32#include <rtems/rtemsdialer.h>
40#define __V(x) (va_alist) va_dcl
54#define MAXWORDLEN 1024
57#define MAXSECRETLEN 256
84#define OPT_VALUE 0xffL
86#define OPT_NOARG 0x200L
89#define OPT_PRIV 0x1000L
90#define OPT_STATIC 0x2000L
91#define OPT_LLIMIT 0x4000L
92#define OPT_ULIMIT 0x8000L
93#define OPT_LIMITS (OPT_LLIMIT|OPT_ULIMIT)
94#define OPT_ZEROOK 0x10000L
95#define OPT_NOINCR 0x20000L
96#define OPT_ZEROINF 0x40000L
97#define OPT_A2INFO 0x100000L
98#define OPT_A2COPY 0x200000L
99#define OPT_ENABLE 0x400000L
100#define OPT_PRIVFIX 0x800000L
101#define OPT_PREPASS 0x1000000L
102#define OPT_INITONLY 0x2000000L
103#define OPT_DEVEQUIV 0x4000000L
104#define OPT_DEVNAM (OPT_PREPASS | OPT_INITONLY | OPT_DEVEQUIV)
106#define OPT_VAL(x) ((x) & OPT_VALUE)
109#define GIDSET_TYPE gid_t
126 unsigned int bytes_in;
127 unsigned int bytes_out;
140extern int pppd_kill_link;
144extern int pppd_ttyfd;
145extern char hostname[];
146extern u_char outpacket_buf[];
147extern int pppd_phase;
149extern int redirect_stderr;
150extern char peer_authname[];
151extern int privileged;
152extern int need_holdoff;
153extern char **script_env;
155extern GIDSET_TYPE
groups[NGROUPS_MAX];
160extern char *no_ppp_msg;
161extern volatile int pppd_status;
162extern int devnam_fixed;
164extern int do_callback;
165extern int doing_callback;
166extern dialerfp pppd_dialer;
169#define CALLBACK_DIALIN 1
170#define CALLBACK_DIALOUT 2
177extern int kdebugflag;
178extern int default_device;
179extern char devnam[MAXPATHLEN];
183extern uint32_t netmask;
187extern char *initializer;
188extern char *connect_script;
189extern char *disconnect_script;
190extern char *welcomer;
191extern char *ptycommand;
192extern int maxconnect;
193extern char user[MAXNAMELEN];
194extern char passwd[MAXSECRETLEN];
195extern bool auth_required;
198extern char our_name[MAXNAMELEN];
199extern char remote_name[MAXNAMELEN];
200extern bool explicit_remote;
204extern int idle_time_limit;
206extern bool holdoff_specified;
208extern char *record_file;
209extern bool sync_serial;
211extern char linkname[MAXPATHLEN];
212extern bool tune_kernel;
213extern int connect_delay;
216extern struct bpf_program pass_filter;
217extern struct bpf_program active_filter;
221extern bool ms_lanman;
225extern char *current_option;
226extern int privileged_option;
227extern char *option_source;
233#define PHASE_INITIALIZE 1
234#define PHASE_SERIALCONN 2
235#define PHASE_DORMANT 3
236#define PHASE_ESTABLISH 4
237#define PHASE_AUTHENTICATE 5
238#define PHASE_CALLBACK 6
239#define PHASE_NETWORK 7
240#define PHASE_RUNNING 8
241#define PHASE_TERMINATE 9
242#define PHASE_DISCONNECT 10
243#define PHASE_HOLDOFF 11
252 void (*init)(
int unit);
254 void (*input)(
int unit, u_char *pkt,
int len);
256 void (*protrej)(
int unit);
258 void (*lowerup)(
int unit);
260 void (*lowerdown)(
int unit);
262 void (*open)(
int unit);
264 void (*close)(
int unit,
char *reason);
266 int (*printpkt)(u_char *pkt,
int len,
267 void (*printer)(
void *,
char *, ...),
270 void (*datainput)(
int unit, u_char *pkt,
int len);
276 void (*check_options)(void);
278 int (*demand_conf)(
int unit);
280 int (*active_pkt)(u_char *pkt,
int len);
284extern struct protent *protocols[];
294void ppptimeout(
void (*func)(
void *),
void *arg,
int t);
296void pppuntimeout(
void (*func)(
void *),
void *arg);
298void update_link_stats(
int);
302void log_packet(u_char *,
int,
char *,
int);
304void print_string(
void *,
int,
void (*) (
void *,
char *, ...),
306int slprintf(
char *,
int,
char *, ...);
307int vslprintf(
char *,
int,
char *, va_list);
308size_t strlcpy(
char *,
const char *,
size_t);
309size_t strlcat(
char *,
const char *,
size_t);
310void pppd_dbglog(
char *, ...);
311void pppd_info(
char *, ...);
312void pppd_notice(
char *, ...);
313void pppd_warn(
char *, ...);
314void pppd_error(
char *, ...);
315void pppd_fatal(
char *, ...);
317#define dbglog pppd_dbglog
318#define info pppd_info
319#define notice pppd_notice
320#define warn pppd_warn
321#define error pppd_error
322#define fatal pppd_fatal
325void link_required(
int);
326void link_terminated(
int);
328void link_established(
int);
329void start_networks(
void);
331void np_down(
int,
int);
332void np_finished(
int,
int);
333void auth_peer_fail(
int,
int);
335void auth_peer_success(
int,
int,
char *,
int);
337void auth_withpeer_fail(
int,
int);
339void auth_withpeer_success(
int,
int);
341int auth_check_options(
void);
344int check_passwd(
int,
char *,
int,
char *,
int,
char **);
346int get_secret(
int,
char *,
char *,
unsigned char *,
int *,
int);
348int auth_ip_addr(
int, uint32_t);
350int bad_ip_adrs(uint32_t);
354void demand_conf(
void);
355void demand_block(
void);
356void demand_unblock(
void);
357void demand_discard(
void);
358void demand_rexmit(
int);
359int loop_chars(
unsigned char *,
int);
360int loop_frame(
unsigned char *,
int);
364void sys_cleanup(
void);
365int sys_check_options(
void);
367int ppp_available(
void);
368int open_ppp_loopback(
void);
369int establish_ppp(
int);
370void restore_loop(
void);
371void disestablish_ppp(
int);
372void clean_check(
void);
373void set_up_tty(
int,
int);
374void restore_tty(
int);
375void setdtr(
int,
int);
376void output(
int, u_char *,
int);
377void wait_input(
struct timeval *);
380int read_packet(u_char *);
381int get_loop_output(
void);
382void ppp_send_config(
int,
int, uint32_t,
int,
int);
384void ppp_set_xaccm(
int, ext_accm);
386void ppp_recv_config(
int,
int, uint32_t,
int,
int);
388int ccp_test(
int, u_char *,
int,
int);
390void ccp_flags_set(
int,
int,
int);
392int ccp_fatal_error(
int);
393int get_idle_time(
int,
struct ppp_idle *);
397int sifvjcomp(
int,
int,
int,
int);
400int sifnpmode(
int u,
int proto,
enum NPmode mode);
403int sifaddr(
int, uint32_t, uint32_t, uint32_t);
405int cifaddr(
int, uint32_t, uint32_t);
408int sif6addr(
int, eui64_t, eui64_t);
410int cif6addr(
int, eui64_t, eui64_t);
413int sifdefaultroute(
int, uint32_t, uint32_t);
415int cifdefaultroute(
int, uint32_t, uint32_t);
417int sifproxyarp(
int, uint32_t);
419int cifproxyarp(
int, uint32_t);
421uint32_t GetMask(uint32_t);
425void logwtmp(
const char *,
const char *,
const char *);
427int get_host_seed(
void);
428int have_route_to(uint32_t);
430int set_filters(
struct bpf_program *pass,
struct bpf_program *active);
434int sipxfaddr(
int,
unsigned long,
unsigned char *);
439int parse_args(
int argc,
char **argv);
441int options_from_file(
char *filename,
int must_exist,
int check_prot,
444int options_from_user(
void);
445int options_for_tty(
void);
446int options_from_list(
struct wordlist *,
int privileged);
448int getword(FILE *f,
char *word,
int *newlinep,
char *filename);
450void option_error(
char *fmt, ...);
452int int_option(
char *,
int *);
477extern int (*new_phase_hook)(int);
478extern int (*idle_time_hook)(
struct ppp_idle *);
479extern int (*holdoff_hook)(void);
480extern int (*pap_check_hook)(void);
481extern int (*pap_auth_hook)(
char *user,
char *passwd
484extern void (*pap_logout_hook)(void);
485extern int (*pap_passwd_hook)(
char *user,
char *passwd);
486extern void (*ip_up_hook)(void);
487extern void (*ip_down_hook)(void);
488extern void (*auth_linkup_hook)(void);
489extern void (*auth_linkdown_hook)(void);
497#define GETCHAR(c, cp) { \
500#define PUTCHAR(c, cp) { \
501 *(cp)++ = (u_char) (c); \
505#define GETSHORT(s, cp) { \
506 (s) = *(cp)++ << 8; \
509#define PUTSHORT(s, cp) { \
510 *(cp)++ = (u_char) ((s) >> 8); \
511 *(cp)++ = (u_char) (s); \
514#define GETLONG(l, cp) { \
515 (l) = *(cp)++ << 8; \
516 (l) |= *(cp)++; (l) <<= 8; \
517 (l) |= *(cp)++; (l) <<= 8; \
520#define PUTLONG(l, cp) { \
521 *(cp)++ = (u_char) ((l) >> 24); \
522 *(cp)++ = (u_char) ((l) >> 16); \
523 *(cp)++ = (u_char) ((l) >> 8); \
524 *(cp)++ = (u_char) (l); \
527#define INCPTR(n, cp) ((cp) += (n))
528#define DECPTR(n, cp) ((cp) -= (n))
534#define TIMEOUT(r, f, t) ppptimeout((r), (f), (t))
535#define UNTIMEOUT(r, f) pppuntimeout((r), (f))
537#define BCOPY(s, d, l) memcpy(d, s, l)
538#define BZERO(s, n) memset(s, 0, n)
540#define PRINTMSG(m, l) { info("Remote message: %0.*v", l, m); }
545#define MAKEHEADER(p, t) { \
546 PUTCHAR(PPP_ALLSTATIONS, p); \
547 PUTCHAR(PPP_UI, p); \
554#define EXIT_FATAL_ERROR 1
555#define EXIT_OPTION_ERROR 2
556#define EXIT_NOT_ROOT 3
557#define EXIT_NO_KERNEL_SUPPORT 4
558#define EXIT_USER_REQUEST 5
559#define EXIT_LOCK_FAILED 6
560#define EXIT_OPEN_FAILED 7
561#define EXIT_CONNECT_FAILED 8
562#define EXIT_PTYCMD_FAILED 9
563#define EXIT_NEGOTIATION_FAILED 10
564#define EXIT_PEER_AUTH_FAILED 11
565#define EXIT_IDLE_TIMEOUT 12
566#define EXIT_CONNECT_TIME 13
567#define EXIT_CALLBACK 14
568#define EXIT_PEER_DEAD 15
569#define EXIT_HANGUP 16
570#define EXIT_LOOPBACK 17
571#define EXIT_INIT_FAILED 18
572#define EXIT_AUTH_TOPEER_FAILED 19
594#define MAINDEBUG(x) if (debug) dbglog x
600#define SYSDEBUG(x) if (debug) dbglog x
606#define FSMDEBUG(x) if (debug) dbglog x
612#define LCPDEBUG(x) if (debug) dbglog x
618#define IPCPDEBUG(x) if (debug) dbglog x
624#define IPV6CPDEBUG(x) if (debug) dbglog x
626#define IPV6CPDEBUG(x)
630#define UPAPDEBUG(x) if (debug) dbglog x
636#define CHAPDEBUG(x) if (debug) dbglog x
642#define IPXCPDEBUG(x) if (debug) dbglog x
648#if defined(sun) || defined(SYSV) || defined(POSIX_SOURCE)
Definition: mount_prot.h:53