---- a/pppd/plugins/rp-pppoe/plugin.c
-+++ b/pppd/plugins/rp-pppoe/plugin.c
-@@ -46,10 +46,10 @@ static char const RCSID[] =
- #include <unistd.h>
- #include <fcntl.h>
- #include <signal.h>
--#include <net/ethernet.h>
- #include <net/if_arp.h>
- #include <linux/ppp_defs.h>
- #include <linux/if_pppox.h>
-+#include <linux/if_ether.h>
-
- #ifndef _ROOT_PATH
- #define _ROOT_PATH ""
--- a/pppd/plugins/rp-pppoe/pppoe.h
+++ b/pppd/plugins/rp-pppoe/pppoe.h
-@@ -86,17 +86,6 @@ typedef unsigned long UINT32_t;
+@@ -48,11 +48,7 @@
+ #endif
- #include <netinet/in.h>
+ /* Ugly header files on some Linux boxes... */
+-#if defined(HAVE_LINUX_IF_H)
+-#include <linux/if.h>
+-#elif defined(HAVE_NET_IF_H)
+ #include <net/if.h>
+-#endif
+ #ifdef HAVE_NET_IF_TYPES_H
+ #include <net/if_types.h>
+@@ -80,22 +76,8 @@ typedef unsigned long UINT32_t;
+ #error Could not find a 32-bit integer type
+ #endif
+
+-#ifdef HAVE_LINUX_IF_ETHER_H
+-#include <linux/if_ether.h>
+-#endif
+-
+ #include <netinet/in.h>
+-
-#ifdef HAVE_NETINET_IF_ETHER_H
-#include <sys/types.h>
-
-#include <netinet/if_ether.h>
-#endif
-#endif
--
++#include <net/ethernet.h>
- /* Ethernet frame types according to RFC 2516 */
---- a/pppd/plugins/rp-pppoe/if.c
-+++ b/pppd/plugins/rp-pppoe/if.c
-@@ -31,7 +31,7 @@ static char const RCSID[] =
- #endif
-
- #ifdef HAVE_NET_ETHERNET_H
--#include <net/ethernet.h>
-+#include <linux/if_ether.h>
- #endif
- #ifdef HAVE_ASM_TYPES_H
--- a/pppd/plugins/rp-pppoe/pppoe-discovery.c
+++ b/pppd/plugins/rp-pppoe/pppoe-discovery.c
@@ -16,6 +16,7 @@
#ifdef HAVE_UNISTD_H
#include <unistd.h>
-@@ -27,10 +28,6 @@
- #include <linux/if_packet.h>
- #endif
-
--#ifdef HAVE_NET_ETHERNET_H
--#include <net/ethernet.h>
--#endif
--
- #ifdef HAVE_ASM_TYPES_H
- #include <asm/types.h>
- #endif
-@@ -717,6 +714,23 @@ char *xstrdup(const char *s)
+@@ -717,6 +718,23 @@ char *xstrdup(const char *s)
return ret;
}
strlcpy(ppp_devnam, devnam, sizeof(ppp_devnam));
--- a/pppd/plugins/rp-pppoe/pppoe-discovery.c
+++ b/pppd/plugins/rp-pppoe/pppoe-discovery.c
-@@ -344,7 +344,7 @@ packetIsForMe(PPPoEConnection *conn, PPP
+@@ -348,7 +348,7 @@ packetIsForMe(PPPoEConnection *conn, PPP
if (memcmp(packet->ethHdr.h_dest, conn->myEth, ETH_ALEN)) return 0;
/* If we're not using the Host-Unique tag, then accept the packet */
parsePacket(packet, parseForHostUniq, &forMe);
return forMe;
-@@ -470,16 +470,12 @@ sendPADI(PPPoEConnection *conn)
+@@ -474,16 +474,12 @@ sendPADI(PPPoEConnection *conn)
cursor += namelen + TAG_HDR_SIZE;
/* If we're using Host-Uniq, copy it over */
}
packet.length = htons(plen);
-@@ -641,7 +637,7 @@ int main(int argc, char *argv[])
+@@ -645,7 +641,7 @@ int main(int argc, char *argv[])
memset(conn, 0, sizeof(PPPoEConnection));
switch(opt) {
case 'S':
conn->serviceName = xstrdup(optarg);
-@@ -650,7 +646,23 @@ int main(int argc, char *argv[])
+@@ -654,7 +650,23 @@ int main(int argc, char *argv[])
conn->acName = xstrdup(optarg);
break;
case 'U':
/* How do we access raw Ethernet devices? */
#undef USE_LINUX_PACKET
-@@ -224,7 +226,7 @@ typedef struct PPPoEConnectionStruct {
+@@ -217,7 +219,7 @@ typedef struct PPPoEConnectionStruct {
char *serviceName; /* Desired service name, if any */
char *acName; /* Desired AC name, if any */
int synchronous; /* Use synchronous PPP */
int printACNames; /* Just print AC names */
FILE *debugFile; /* Debug file for dumping packets */
int numPADOs; /* Number of PADO packets received */
-@@ -280,6 +282,33 @@ void pppoe_printpkt(PPPoEPacket *packet,
+@@ -273,6 +275,33 @@ void pppoe_printpkt(PPPoEPacket *packet,
void (*printer)(void *, char *, ...), void *arg);
void pppoe_log_packet(const char *prefix, PPPoEPacket *packet);