]> git.ozlabs.org Git - ppp.git/blobdiff - pppd/plugins/pppoe/pppoe.h
config: Include some extra files in the tarball
[ppp.git] / pppd / plugins / pppoe / pppoe.h
index 82ae01d2d0ce4e3aa0d5f9a7c6b6a14a7f05b14a..1952dcb2efccff60a7280d1829343b4e4c5d2fdf 100644 (file)
@@ -9,18 +9,14 @@
 * This program may be distributed according to the terms of the GNU
 * General Public License, version 2 or (at your option) any later version.
 *
-* $Id: pppoe.h,v 1.4 2008/06/15 04:35:50 paulus Exp $
-*
 ***********************************************************************/
 
-#include "config.h"
-
 #include <stdio.h>             /* For FILE */
 #include <sys/types.h>         /* For pid_t */
 #include <ctype.h>
 #include <string.h>
 
-#include "pppd/pppd.h"         /* For error */
+#include <pppd/pppd.h>         /* For error */
 
 /* How do we access raw Ethernet devices? */
 #undef USE_LINUX_PACKET
@@ -233,17 +229,18 @@ typedef struct PPPoEConnectionStruct {
     char *acName;              /* Desired AC name, if any */
     int synchronous;           /* Use synchronous PPP */
     PPPoETag hostUniq;         /* Use Host-Uniq tag */
-    FILE *debugFile;           /* Debug file for dumping packets */
     int numPADOs;              /* Number of PADO packets received */
     PPPoETag cookie;           /* We have to send this if we get it */
     PPPoETag relayId;          /* Ditto */
     int error;                 /* Error packet received */
-    int debug;                 /* Set to log packets sent and received */
     int discoveryTimeout;       /* Timeout for discovery packets */
     int discoveryAttempts;      /* Number of discovery attempts */
     int seenMaxPayload;
-    int mtu;                   /* Stored MTU */
-    int mru;                   /* Stored MRU */
+    int storedmtu;             /* Stored MTU */
+    int storedmru;             /* Stored MRU */
+    int mtu;
+    int mru;
+    char *actualACname;                /* Name of AC we connected to */
 } PPPoEConnection;
 
 /* Structure used to determine acceptable PADO or PADS packet */
@@ -260,9 +257,6 @@ UINT16_t etherType(PPPoEPacket *packet);
 int openInterface(char const *ifname, UINT16_t type, unsigned char *hwaddr);
 int sendPacket(PPPoEConnection *conn, int sock, PPPoEPacket *pkt, int size);
 int receivePacket(int sock, PPPoEPacket *pkt, int *size);
-void fatalSys(char const *str);
-void dumpPacket(FILE *fp, PPPoEPacket *packet, char const *dir);
-void dumpHex(FILE *fp, unsigned char const *buf, int len);
 int parsePacket(PPPoEPacket *packet, ParseFunc *func, void *extra);
 void parseLogErrs(UINT16_t typ, UINT16_t len, unsigned char *data, void *xtra);
 void syncReadFromPPP(PPPoEConnection *conn, PPPoEPacket *packet);
@@ -277,7 +271,8 @@ void initPPP(void);
 void clampMSS(PPPoEPacket *packet, char const *dir, int clampMss);
 UINT16_t computeTCPChecksum(unsigned char *ipHdr, unsigned char *tcpHdr);
 UINT16_t pppFCS16(UINT16_t fcs, unsigned char *cp, int len);
-void discovery(PPPoEConnection *conn);
+void discovery1(PPPoEConnection *conn, int waitWholeTimeoutForPADO);
+void discovery2(PPPoEConnection *conn);
 unsigned char *findTag(PPPoEPacket *packet, UINT16_t tagType,
                       PPPoETag *tag);
 
@@ -326,3 +321,10 @@ do {\
 #define NOT_UNICAST(e) ((e[0] & 0x01) != 0)
 #define BROADCAST(e) ((e[0] & e[1] & e[2] & e[3] & e[4] & e[5]) == 0xFF)
 #define NOT_BROADCAST(e) ((e[0] & e[1] & e[2] & e[3] & e[4] & e[5]) != 0xFF)
+
+#ifndef MIN
+#define MIN(a, b)      ((a) < (b)? (a): (b))
+#endif
+#ifndef MAX
+#define MAX(a, b)      ((a) > (b)? (a): (b))
+#endif