Commit | Line | Data |
---|---|---|
984263bc MD |
1 | /* |
2 | * pppd.h - PPP daemon global declarations. | |
3 | * | |
4 | * Copyright (c) 1989 Carnegie Mellon University. | |
5 | * All rights reserved. | |
6 | * | |
7 | * Redistribution and use in source and binary forms are permitted | |
8 | * provided that the above copyright notice and this paragraph are | |
9 | * duplicated in all such forms and that any documentation, | |
10 | * advertising materials, and other materials related to such | |
11 | * distribution and use acknowledge that the software was developed | |
12 | * by Carnegie Mellon University. The name of the | |
13 | * University may not be used to endorse or promote products derived | |
14 | * from this software without specific prior written permission. | |
15 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR | |
16 | * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED | |
17 | * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. | |
18 | * | |
19 | * $FreeBSD: src/usr.sbin/pppd/pppd.h,v 1.13 1999/08/28 01:19:08 peter Exp $ | |
2d8a3be7 | 20 | * $DragonFly: src/usr.sbin/pppd/pppd.h,v 1.4 2003/11/03 19:31:40 eirikn Exp $ |
984263bc MD |
21 | */ |
22 | ||
23 | /* | |
24 | * TODO: | |
25 | */ | |
26 | ||
27 | #ifndef __PPPD_H__ | |
28 | #define __PPPD_H__ | |
29 | ||
30 | #include <stdio.h> /* for FILE */ | |
31 | #include <sys/param.h> /* for MAXPATHLEN and BSD4_4, if defined */ | |
32 | #include <sys/types.h> /* for u_int32_t, if defined */ | |
33 | #include <sys/time.h> /* for struct timeval */ | |
38a690d7 | 34 | #include <net/ppp_layer/ppp_defs.h> |
984263bc MD |
35 | |
36 | #if __STDC__ | |
37 | #include <stdarg.h> | |
38 | #define __V(x) x | |
39 | #else | |
40 | #include <varargs.h> | |
41 | #define __V(x) (va_alist) va_dcl | |
42 | #define const | |
43 | #endif | |
44 | ||
45 | /* | |
46 | * Limits. | |
47 | */ | |
48 | ||
49 | #define NUM_PPP 1 /* One PPP interface supported (per process) */ | |
50 | #define MAXWORDLEN 1024 /* max length of word in file (incl null) */ | |
51 | #define MAXARGS 1 /* max # args to a command */ | |
52 | #define MAXNAMELEN 256 /* max length of hostname or name for auth */ | |
53 | #define MAXSECRETLEN 256 /* max length of password or secret */ | |
54 | ||
55 | /* | |
56 | * Global variables. | |
57 | */ | |
58 | ||
59 | extern int hungup; /* Physical layer has disconnected */ | |
60 | extern int ifunit; /* Interface unit number */ | |
61 | extern char ifname[]; /* Interface name */ | |
62 | extern int ttyfd; /* Serial device file descriptor */ | |
63 | extern char hostname[]; /* Our hostname */ | |
64 | extern u_char outpacket_buf[]; /* Buffer for outgoing packets */ | |
65 | extern int phase; /* Current state of link - see values below */ | |
66 | extern int baud_rate; /* Current link speed in bits/sec */ | |
67 | extern char *progname; /* Name of this program */ | |
68 | extern int redirect_stderr;/* Connector's stderr should go to file */ | |
69 | extern char peer_authname[];/* Authenticated name of peer */ | |
70 | extern int privileged; /* We were run by real-uid root */ | |
71 | extern int need_holdoff; /* Need holdoff period after link terminates */ | |
72 | extern char **script_env; /* Environment variables for scripts */ | |
73 | extern int detached; /* Have detached from controlling tty */ | |
74 | ||
75 | /* | |
76 | * Variables set by command-line options. | |
77 | */ | |
78 | ||
79 | extern int debug; /* Debug flag */ | |
80 | extern int kdebugflag; /* Tell kernel to print debug messages */ | |
81 | extern int default_device; /* Using /dev/tty or equivalent */ | |
82 | extern char devnam[]; /* Device name */ | |
83 | extern int crtscts; /* Use hardware flow control */ | |
84 | extern int modem; /* Use modem control lines */ | |
85 | extern int inspeed; /* Input/Output speed requested */ | |
86 | extern u_int32_t netmask; /* IP netmask to set on interface */ | |
87 | extern int lockflag; /* Create lock file to lock the serial dev */ | |
88 | extern int nodetach; /* Don't detach from controlling tty */ | |
89 | extern char *connector; /* Script to establish physical link */ | |
90 | extern char *disconnector; /* Script to disestablish physical link */ | |
91 | extern char *welcomer; /* Script to welcome client after connection */ | |
92 | extern int max_con_attempts;/* Maximum number of times to try dialing */ | |
93 | extern int maxconnect; /* Maximum connect time (seconds) */ | |
94 | extern char user[]; /* Our name for authenticating ourselves */ | |
95 | extern char passwd[]; /* Password for PAP */ | |
96 | extern int auth_required; /* Peer is required to authenticate */ | |
97 | extern int proxyarp; /* Set up proxy ARP entry for peer */ | |
98 | extern int persist; /* Reopen link after it goes down */ | |
99 | extern int uselogin; /* Use /etc/passwd for checking PAP */ | |
100 | extern int lcp_echo_interval; /* Interval between LCP echo-requests */ | |
101 | extern int lcp_echo_fails; /* Tolerance to unanswered echo-requests */ | |
102 | extern char our_name[]; /* Our name for authentication purposes */ | |
103 | extern char remote_name[]; /* Peer's name for authentication */ | |
104 | extern int explicit_remote;/* remote_name specified with remotename opt */ | |
105 | extern int usehostname; /* Use hostname for our_name */ | |
106 | extern int disable_defaultip; /* Don't use hostname for default IP adrs */ | |
107 | extern int demand; /* Do dial-on-demand */ | |
108 | extern char *ipparam; /* Extra parameter for ip up/down scripts */ | |
109 | extern int cryptpap; /* Others' PAP passwords are encrypted */ | |
110 | extern int idle_time_limit;/* Shut down link if idle for this long */ | |
111 | extern int holdoff; /* Dead time before restarting */ | |
112 | extern int refuse_pap; /* Don't wanna auth. ourselves with PAP */ | |
113 | extern int refuse_chap; /* Don't wanna auth. ourselves with CHAP */ | |
114 | #ifdef PPP_FILTER | |
115 | extern struct bpf_program pass_filter; /* Filter for pkts to pass */ | |
116 | extern struct bpf_program active_filter; /* Filter for link-active pkts */ | |
117 | #endif | |
118 | ||
119 | ||
120 | #ifdef MSLANMAN | |
121 | extern int ms_lanman; /* Nonzero if use LanMan password instead of NT */ | |
122 | /* Has meaning only with MS-CHAP challenges */ | |
123 | #endif | |
124 | ||
125 | /* | |
126 | * Values for phase. | |
127 | */ | |
128 | #define PHASE_DEAD 0 | |
129 | #define PHASE_INITIALIZE 1 | |
130 | #define PHASE_DORMANT 2 | |
131 | #define PHASE_ESTABLISH 3 | |
132 | #define PHASE_AUTHENTICATE 4 | |
133 | #define PHASE_CALLBACK 5 | |
134 | #define PHASE_NETWORK 6 | |
135 | #define PHASE_TERMINATE 7 | |
136 | #define PHASE_HOLDOFF 8 | |
137 | ||
138 | /* | |
139 | * The following struct gives the addresses of procedures to call | |
140 | * for a particular protocol. | |
141 | */ | |
142 | struct protent { | |
143 | u_short protocol; /* PPP protocol number */ | |
144 | /* Initialization procedure */ | |
2d8a3be7 | 145 | void (*init)(int unit); |
984263bc | 146 | /* Process a received packet */ |
2d8a3be7 | 147 | void (*input)(int unit, u_char *pkt, int len); |
984263bc | 148 | /* Process a received protocol-reject */ |
2d8a3be7 | 149 | void (*protrej)(int unit); |
984263bc | 150 | /* Lower layer has come up */ |
2d8a3be7 | 151 | void (*lowerup)(int unit); |
984263bc | 152 | /* Lower layer has gone down */ |
2d8a3be7 | 153 | void (*lowerdown)(int unit); |
984263bc | 154 | /* Open the protocol */ |
2d8a3be7 | 155 | void (*open)(int unit); |
984263bc | 156 | /* Close the protocol */ |
2d8a3be7 | 157 | void (*close)(int unit, char *reason); |
984263bc | 158 | /* Print a packet in readable form */ |
2d8a3be7 EN |
159 | int (*printpkt)(u_char *pkt, int len, |
160 | void (*printer)(void *, char *, ...), | |
161 | void *arg); | |
984263bc | 162 | /* Process a received data packet */ |
2d8a3be7 | 163 | void (*datainput)(int unit, u_char *pkt, int len); |
984263bc MD |
164 | int enabled_flag; /* 0 iff protocol is disabled */ |
165 | char *name; /* Text name of protocol */ | |
166 | /* Check requested options, assign defaults */ | |
2d8a3be7 | 167 | void (*check_options)(void); |
984263bc | 168 | /* Configure interface for demand-dial */ |
2d8a3be7 | 169 | int (*demand_conf)(int unit); |
984263bc | 170 | /* Say whether to bring up link for this pkt */ |
2d8a3be7 | 171 | int (*active_pkt)(u_char *pkt, int len); |
984263bc MD |
172 | }; |
173 | ||
174 | /* Table of pointers to supported protocols */ | |
175 | extern struct protent *protocols[]; | |
176 | ||
177 | /* | |
178 | * Prototypes. | |
179 | */ | |
180 | ||
181 | /* Procedures exported from main.c. */ | |
2d8a3be7 EN |
182 | void detach(void); /* Detach from controlling tty */ |
183 | void die(int); /* Cleanup and exit */ | |
184 | void quit(void); /* like die(1) */ | |
185 | void novm(char *); /* Say we ran out of memory, and die */ | |
186 | void timeout(void (*func)(void *), void *arg, int t); | |
984263bc | 187 | /* Call func(arg) after t seconds */ |
2d8a3be7 | 188 | void untimeout(void (*func)(void *), void *arg); |
984263bc | 189 | /* Cancel call to func(arg) */ |
2d8a3be7 | 190 | int run_program(char *prog, char **args, int must_exist); |
984263bc | 191 | /* Run program prog with args in child */ |
2d8a3be7 | 192 | void demuxprotrej(int, int); |
984263bc | 193 | /* Demultiplex a Protocol-Reject */ |
2d8a3be7 EN |
194 | void format_packet(u_char *, int, void (*) (void *, char *, ...), |
195 | void *); /* Format a packet in human-readable form */ | |
196 | void log_packet(u_char *, int, char *, int); | |
984263bc | 197 | /* Format a packet and log it with syslog */ |
2d8a3be7 EN |
198 | void print_string(char *, int, void (*) (void *, char *, ...), |
199 | void *); /* Format a string for output */ | |
200 | int fmtmsg(char *, int, char *, ...); /* sprintf++ */ | |
201 | int vfmtmsg(char *, int, char *, va_list); /* vsprintf++ */ | |
202 | void script_setenv(char *, char *); /* set script env var */ | |
203 | void script_unsetenv(char *); /* unset script env var */ | |
984263bc MD |
204 | |
205 | /* Procedures exported from auth.c */ | |
2d8a3be7 EN |
206 | void link_required(int); /* we are starting to use the link */ |
207 | void link_terminated(int); /* we are finished with the link */ | |
208 | void link_down(int); /* the LCP layer has left the Opened state */ | |
209 | void link_established(int); /* the link is up; authenticate now */ | |
210 | void np_up(int, int); /* a network protocol has come up */ | |
211 | void np_down(int, int); /* a network protocol has gone down */ | |
212 | void np_finished(int, int); /* a network protocol no longer needs link */ | |
213 | void auth_peer_fail(int, int); | |
984263bc | 214 | /* peer failed to authenticate itself */ |
2d8a3be7 | 215 | void auth_peer_success(int, int, char *, int); |
984263bc | 216 | /* peer successfully authenticated itself */ |
2d8a3be7 | 217 | void auth_withpeer_fail(int, int); |
984263bc | 218 | /* we failed to authenticate ourselves */ |
2d8a3be7 | 219 | void auth_withpeer_success(int, int); |
984263bc | 220 | /* we successfully authenticated ourselves */ |
2d8a3be7 | 221 | void auth_check_options(void); |
984263bc | 222 | /* check authentication options supplied */ |
2d8a3be7 EN |
223 | void auth_reset(int); /* check what secrets we have */ |
224 | int check_passwd(int, char *, int, char *, int, char **, int *); | |
984263bc | 225 | /* Check peer-supplied username/password */ |
2d8a3be7 | 226 | int get_secret(int, char *, char *, char *, int *, int); |
984263bc | 227 | /* get "secret" for chap */ |
2d8a3be7 | 228 | int auth_ip_addr(int, u_int32_t); |
984263bc | 229 | /* check if IP address is authorized */ |
2d8a3be7 | 230 | int bad_ip_adrs(u_int32_t); |
984263bc | 231 | /* check if IP address is unreasonable */ |
2d8a3be7 | 232 | void check_access(FILE *, char *); |
984263bc MD |
233 | /* check permissions on secrets file */ |
234 | ||
235 | /* Procedures exported from demand.c */ | |
2d8a3be7 EN |
236 | void demand_conf(void); /* config interface(s for demand-dial */ |
237 | void demand_block(void); /* set all NPs to queue up packets */ | |
238 | void demand_unblock(void); /* set all NPs to pass packets */ | |
239 | void demand_discard(void); /* set all NPs to discard packets */ | |
240 | void demand_rexmit(int); /* retransmit saved frames for an NP */ | |
241 | int loop_chars(unsigned char *, int); /* process chars from loopback */ | |
242 | int loop_frame(unsigned char *, int); /* process frame from loopback */ | |
984263bc MD |
243 | |
244 | /* Procedures exported from sys-*.c */ | |
2d8a3be7 EN |
245 | void sys_init(void); /* Do system-dependent initialization */ |
246 | void sys_cleanup(void); /* Restore system state before exiting */ | |
247 | void sys_check_options(void); /* Check options specified */ | |
248 | void sys_close(void); /* Clean up in a child before execing */ | |
249 | int ppp_available(void); /* Test whether ppp kernel support exists */ | |
250 | void open_ppp_loopback(void); /* Open loopback for demand-dialling */ | |
251 | void establish_ppp(int); /* Turn serial port into a ppp interface */ | |
252 | void restore_loop(void); /* Transfer ppp unit back to loopback */ | |
253 | void disestablish_ppp(int); /* Restore port to normal operation */ | |
254 | void clean_check(void); /* Check if line was 8-bit clean */ | |
255 | void set_up_tty(int, int); /* Set up port's speed, parameters, etc. */ | |
256 | void restore_tty(int); /* Restore port's original parameters */ | |
257 | void setdtr(int, int); /* Raise or lower port's DTR line */ | |
258 | void output(int, u_char *, int); /* Output a PPP packet */ | |
259 | void wait_input(struct timeval *); | |
984263bc | 260 | /* Wait for input, with timeout */ |
2d8a3be7 | 261 | void wait_loop_output(struct timeval *); |
984263bc | 262 | /* Wait for pkt from loopback, with timeout */ |
2d8a3be7 EN |
263 | void wait_time(struct timeval *); /* Wait for given length of time */ |
264 | int read_packet(u_char *); /* Read PPP packet */ | |
265 | int get_loop_output(void); /* Read pkts from loopback */ | |
266 | void ppp_send_config(int, int, u_int32_t, int, int); | |
984263bc | 267 | /* Configure i/f transmit parameters */ |
2d8a3be7 | 268 | void ppp_set_xaccm(int, ext_accm); |
984263bc | 269 | /* Set extended transmit ACCM */ |
2d8a3be7 | 270 | void ppp_recv_config(int, int, u_int32_t, int, int); |
984263bc | 271 | /* Configure i/f receive parameters */ |
2d8a3be7 | 272 | int ccp_test(int, u_char *, int, int); |
984263bc | 273 | /* Test support for compression scheme */ |
2d8a3be7 | 274 | void ccp_flags_set(int, int, int); |
984263bc | 275 | /* Set kernel CCP state */ |
2d8a3be7 EN |
276 | int ccp_fatal_error(int); /* Test for fatal decomp error in kernel */ |
277 | int get_idle_time(int, struct ppp_idle *); | |
984263bc | 278 | /* Find out how long link has been idle */ |
2d8a3be7 | 279 | int sifvjcomp(int, int, int, int); |
984263bc | 280 | /* Configure VJ TCP header compression */ |
2d8a3be7 EN |
281 | int sifup(int); /* Configure i/f up (for IP) */ |
282 | int sifnpmode(int u, int proto, enum NPmode mode); | |
984263bc | 283 | /* Set mode for handling packets for proto */ |
2d8a3be7 EN |
284 | int sifdown(int); /* Configure i/f down (for IP) */ |
285 | int sifaddr(int, u_int32_t, u_int32_t, u_int32_t); | |
984263bc | 286 | /* Configure IP addresses for i/f */ |
2d8a3be7 | 287 | int cifaddr(int, u_int32_t, u_int32_t); |
984263bc | 288 | /* Reset i/f IP addresses */ |
2d8a3be7 | 289 | int sifdefaultroute(int, u_int32_t, u_int32_t); |
984263bc | 290 | /* Create default route through i/f */ |
2d8a3be7 | 291 | int cifdefaultroute(int, u_int32_t, u_int32_t); |
984263bc | 292 | /* Delete default route through i/f */ |
2d8a3be7 | 293 | int sifproxyarp(int, u_int32_t); |
984263bc | 294 | /* Add proxy ARP entry for peer */ |
2d8a3be7 | 295 | int cifproxyarp(int, u_int32_t); |
984263bc | 296 | /* Delete proxy ARP entry for peer */ |
2d8a3be7 EN |
297 | u_int32_t GetMask(u_int32_t); /* Get appropriate netmask for address */ |
298 | int lock(char *); /* Create lock file for device */ | |
299 | void unlock(void); /* Delete previously-created lock file */ | |
300 | int daemon(int, int); /* Detach us from terminal session */ | |
301 | void logwtmp(const char *, const char *, const char *); | |
984263bc | 302 | /* Write entry to wtmp file */ |
2d8a3be7 | 303 | int get_host_seed(void); /* Get host-dependent random number seed */ |
984263bc | 304 | #ifdef PPP_FILTER |
2d8a3be7 | 305 | int set_filters(struct bpf_program *pass, struct bpf_program *active); |
984263bc MD |
306 | /* Set filter programs in kernel */ |
307 | #endif | |
308 | ||
309 | /* Procedures exported from options.c */ | |
2d8a3be7 | 310 | int parse_args(int argc, char **argv); |
984263bc | 311 | /* Parse options from arguments given */ |
2d8a3be7 EN |
312 | void usage(void); /* Print a usage message */ |
313 | int options_from_file(char *filename, int must_exist, int check_prot, | |
314 | int privileged); | |
984263bc | 315 | /* Parse options from an options file */ |
2d8a3be7 EN |
316 | int options_from_user(void); /* Parse options from user's .ppprc */ |
317 | int options_for_tty(void); /* Parse options from /etc/ppp/options.tty */ | |
318 | void scan_args(int argc, char **argv); | |
984263bc | 319 | /* Look for tty name in command-line args */ |
2d8a3be7 | 320 | int getword(FILE *f, char *word, int *newlinep, char *filename); |
984263bc | 321 | /* Read a word from a file */ |
2d8a3be7 | 322 | void option_error(char *fmt, ...); |
984263bc | 323 | /* Print an error message about an option */ |
2d8a3be7 | 324 | int setipaddr(char *); /* set IP addresses */ |
984263bc MD |
325 | |
326 | ||
327 | /* | |
328 | * This structure is used to store information about certain | |
329 | * options, such as where the option value came from (/etc/ppp/options, | |
330 | * command line, etc.) and whether it came from a privileged source. | |
331 | */ | |
332 | ||
333 | struct option_info { | |
334 | int priv; /* was value set by sysadmin? */ | |
335 | char *source; /* where option came from */ | |
336 | }; | |
337 | ||
338 | extern struct option_info auth_req_info; | |
339 | extern struct option_info connector_info; | |
340 | extern struct option_info disconnector_info; | |
341 | extern struct option_info welcomer_info; | |
342 | extern struct option_info devnam_info; | |
343 | ||
344 | /* | |
345 | * Inline versions of get/put char/short/long. | |
346 | * Pointer is advanced; we assume that both arguments | |
347 | * are lvalues and will already be in registers. | |
348 | * cp MUST be u_char *. | |
349 | */ | |
350 | #define GETCHAR(c, cp) { \ | |
351 | (c) = *(cp)++; \ | |
352 | } | |
353 | #define PUTCHAR(c, cp) { \ | |
354 | *(cp)++ = (u_char) (c); \ | |
355 | } | |
356 | ||
357 | ||
358 | #define GETSHORT(s, cp) { \ | |
359 | (s) = *(cp)++ << 8; \ | |
360 | (s) |= *(cp)++; \ | |
361 | } | |
362 | #define PUTSHORT(s, cp) { \ | |
363 | *(cp)++ = (u_char) ((s) >> 8); \ | |
364 | *(cp)++ = (u_char) (s); \ | |
365 | } | |
366 | ||
367 | #define GETLONG(l, cp) { \ | |
368 | (l) = *(cp)++ << 8; \ | |
369 | (l) |= *(cp)++; (l) <<= 8; \ | |
370 | (l) |= *(cp)++; (l) <<= 8; \ | |
371 | (l) |= *(cp)++; \ | |
372 | } | |
373 | #define PUTLONG(l, cp) { \ | |
374 | *(cp)++ = (u_char) ((l) >> 24); \ | |
375 | *(cp)++ = (u_char) ((l) >> 16); \ | |
376 | *(cp)++ = (u_char) ((l) >> 8); \ | |
377 | *(cp)++ = (u_char) (l); \ | |
378 | } | |
379 | ||
380 | #define INCPTR(n, cp) ((cp) += (n)) | |
381 | #define DECPTR(n, cp) ((cp) -= (n)) | |
382 | ||
383 | #undef FALSE | |
384 | #define FALSE 0 | |
385 | #undef TRUE | |
386 | #define TRUE 1 | |
387 | ||
388 | /* | |
389 | * System dependent definitions for user-level 4.3BSD UNIX implementation. | |
390 | */ | |
391 | ||
392 | #define DEMUXPROTREJ(u, p) demuxprotrej(u, p) | |
393 | ||
394 | #define TIMEOUT(r, f, t) timeout((r), (f), (t)) | |
395 | #define UNTIMEOUT(r, f) untimeout((r), (f)) | |
396 | ||
397 | #define BCOPY(s, d, l) memcpy(d, s, l) | |
398 | #define BZERO(s, n) memset(s, 0, n) | |
399 | #define EXIT(u) quit() | |
400 | ||
401 | #define PRINTMSG(m, l) { m[l] = '\0'; syslog(LOG_INFO, "Remote message: %s", m); } | |
402 | ||
403 | /* | |
404 | * MAKEHEADER - Add Header fields to a packet. | |
405 | */ | |
406 | #define MAKEHEADER(p, t) { \ | |
407 | PUTCHAR(PPP_ALLSTATIONS, p); \ | |
408 | PUTCHAR(PPP_UI, p); \ | |
409 | PUTSHORT(t, p); } | |
410 | ||
411 | ||
412 | #ifdef DEBUGALL | |
413 | #define DEBUGMAIN 1 | |
414 | #define DEBUGFSM 1 | |
415 | #define DEBUGLCP 1 | |
416 | #define DEBUGIPCP 1 | |
417 | #define DEBUGUPAP 1 | |
418 | #define DEBUGCHAP 1 | |
419 | #endif | |
420 | ||
421 | #ifndef LOG_PPP /* we use LOG_LOCAL2 for syslog by default */ | |
422 | #if defined(DEBUGMAIN) || defined(DEBUGFSM) || defined(DEBUGSYS) \ | |
423 | || defined(DEBUGLCP) || defined(DEBUGIPCP) || defined(DEBUGUPAP) \ | |
424 | || defined(DEBUGCHAP) || defined(DEBUG) | |
425 | #define LOG_PPP LOG_LOCAL2 | |
426 | #else | |
427 | #define LOG_PPP LOG_DAEMON | |
428 | #endif | |
429 | #endif /* LOG_PPP */ | |
430 | ||
431 | #ifdef DEBUGMAIN | |
432 | #define MAINDEBUG(x) if (debug) syslog x | |
433 | #else | |
434 | #define MAINDEBUG(x) | |
435 | #endif | |
436 | ||
437 | #ifdef DEBUGSYS | |
438 | #define SYSDEBUG(x) if (debug) syslog x | |
439 | #else | |
440 | #define SYSDEBUG(x) | |
441 | #endif | |
442 | ||
443 | #ifdef DEBUGFSM | |
444 | #define FSMDEBUG(x) if (debug) syslog x | |
445 | #else | |
446 | #define FSMDEBUG(x) | |
447 | #endif | |
448 | ||
449 | #ifdef DEBUGLCP | |
450 | #define LCPDEBUG(x) if (debug) syslog x | |
451 | #else | |
452 | #define LCPDEBUG(x) | |
453 | #endif | |
454 | ||
455 | #ifdef DEBUGIPCP | |
456 | #define IPCPDEBUG(x) if (debug) syslog x | |
457 | #else | |
458 | #define IPCPDEBUG(x) | |
459 | #endif | |
460 | ||
461 | #ifdef DEBUGUPAP | |
462 | #define UPAPDEBUG(x) if (debug) syslog x | |
463 | #else | |
464 | #define UPAPDEBUG(x) | |
465 | #endif | |
466 | ||
467 | #ifdef DEBUGCHAP | |
468 | #define CHAPDEBUG(x) if (debug) syslog x | |
469 | #else | |
470 | #define CHAPDEBUG(x) | |
471 | #endif | |
472 | ||
473 | #ifdef DEBUGIPXCP | |
474 | #define IPXCPDEBUG(x) if (debug) syslog x | |
475 | #else | |
476 | #define IPXCPDEBUG(x) | |
477 | #endif | |
478 | ||
479 | #ifndef SIGTYPE | |
480 | #if defined(sun) || defined(SYSV) || defined(POSIX_SOURCE) | |
481 | #define SIGTYPE void | |
482 | #else | |
483 | #define SIGTYPE int | |
484 | #endif /* defined(sun) || defined(SYSV) || defined(POSIX_SOURCE) */ | |
485 | #endif /* SIGTYPE */ | |
486 | ||
487 | #ifndef MIN | |
488 | #define MIN(a, b) ((a) < (b)? (a): (b)) | |
489 | #endif | |
490 | #ifndef MAX | |
491 | #define MAX(a, b) ((a) > (b)? (a): (b)) | |
492 | #endif | |
493 | ||
494 | #endif /* __PPP_H__ */ |