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
+@@ -357,7 +357,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)
+@@ -495,16 +495,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[])
-
- memset(conn, 0, sizeof(PPPoEConnection));
+@@ -670,7 +666,7 @@ int main(int argc, char *argv[])
+ conn->discoveryTimeout = PADI_TIMEOUT;
+ conn->discoveryAttempts = MAX_PADI_ATTEMPTS;
-- while ((opt = getopt(argc, argv, "I:D:VUAS:C:h")) > 0) {
-+ while ((opt = getopt(argc, argv, "I:D:VUW:AS:C:h")) > 0) {
+- while ((opt = getopt(argc, argv, "I:D:VUQS:C:t:a:h")) > 0) {
++ while ((opt = getopt(argc, argv, "I:D:VUW:QS:C:t:a:h")) > 0) {
switch(opt) {
case 'S':
conn->serviceName = xstrdup(optarg);
-@@ -650,7 +646,23 @@ int main(int argc, char *argv[])
- conn->acName = xstrdup(optarg);
+@@ -697,7 +693,23 @@ int main(int argc, char *argv[])
+ }
break;
case 'U':
- conn->useHostUniq = 1;
+#include <ctype.h>
+#include <string.h>
- /* How do we access raw Ethernet devices? */
- #undef USE_LINUX_PACKET
-@@ -224,7 +226,7 @@ typedef struct PPPoEConnectionStruct {
+ #include "pppd/pppd.h" /* For error */
+
+@@ -221,7 +223,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,
+@@ -278,6 +280,33 @@ void pppoe_printpkt(PPPoEPacket *packet,
void (*printer)(void *, char *, ...), void *arg);
void pppoe_log_packet(const char *prefix, PPPoEPacket *packet);