1    | /*
2    |  * Layer Two Tunnelling Protocol Daemon
3    |  * Copyright (C) 1998 Adtran, Inc.
4    |  *
5    |  * Mark Spencer
6    |  *
7    |  * This software is distributed under the terms
8    |  * of the GPL, which you should have received
9    |  * along with this source.
10   |  *
11   |  * Misc stuff...
12   |  */
13   | 
14   | #ifndef _MISC_H
15   | #define _MISC_H
16   | 
17   | struct tunnel;
18   | struct buffer
19   | {
20   |     int type;
21   |     void *rstart;
22   |     void *rend;
23   |     void *start;
24   |     int len;
25   |     int maxlen;
26   | #if 0
27   |     unsigned int addr;
28   |     int port;
29   | #else
30   |     struct sockaddr_in peer;
31   | #endif
32   |     struct tunnel *tunnel;	/* Who owns this packet, if it's a control */
33   |     int retries;		/* Again, if a control packet, how many retries? */
34   | };
35   | 
36   | struct ppp_opts
37   | {
38   |     char option[MAXSTRLEN];
39   |     struct ppp_opts *next;
40   | };
41   | 
42   | #define IPADDY(a) inet_ntoa(*((struct in_addr *)&(a)))
43   | 
44   | #define DEBUG c ? c->debug || t->debug : t->debug
45   | 
46   | #ifdef USE_SWAPS_INSTEAD
47   | #define SWAPS(a) ((((a) & 0xFF) << 8 ) | (((a) >> 8) & 0xFF))
48   | #ifdef htons
49   | #undef htons
50   | #endif
51   | #ifdef ntohs
52   | #undef htons
53   | #endif
54   | #define htons(a) SWAPS(a)
55   | #define ntohs(a) SWAPS(a)
56   | #endif
57   | 
58   | #define LOG_DEBUG 7
59   | #define LOG_LOG   6
60   | #define LOG_WARN  4
61   | #define LOG_CRIT  2
62   | 
63   | #define halt() printf("Halted.\n") ; for(;;)
64   | 
65   | extern char hostname[];
66   | extern void log (int level, const char *fmt, ...);
67   | extern struct buffer *new_buf (int);
68   | extern void udppush_handler (int);
69   | extern int addfcs (struct buffer *buf);
70   | extern inline void swaps (void *, int);
71   | extern void do_packet_dump (struct buffer *);
72   | extern char *args;
73   | extern void status (const char *fmt, ...);
74   | extern void status_handler (int signal);
75   | extern int getPtyMaster (char *a, char *b);
76   | extern void do_control (void);
77   | extern void recycle_buf (struct buffer *);
78   | extern void safe_copy (char *, char *, int);
79   | extern void opt_destroy (struct ppp_opts *);
80   | extern struct ppp_opts *add_opt (struct ppp_opts *, char *, ...);
81   | #endif