]> git.ozlabs.org Git - ppp.git/commitdiff
Merge pull request #330 from pali/pppoe-discovery
authorPaul Mackerras <paulus@ozlabs.org>
Mon, 10 Jan 2022 04:06:21 +0000 (15:06 +1100)
committerGitHub <noreply@github.com>
Mon, 10 Jan 2022 04:06:21 +0000 (15:06 +1100)
pppoe-discovery: Do not set eth0 as default interface and valide all cmdline options

pppd/plugins/pppoe/pppoe-discovery.8
pppd/plugins/pppoe/pppoe-discovery.c

index d0a93db02081c1a1f07e0e72e1bbab6885539530..e048f66b5d2f6b4966076bd3a1fcd47cf48d18cb 100644 (file)
@@ -26,7 +26,7 @@ Under Linux, it is typically eth0 or eth1.
 The interface should be \(lqup\(rq before you start
 \fBpppoe\-discovery\fR, but should \fInot\fR be configured to have an
 IP address.
-The default interface is eth0.
+This option is mandatory.
 .RE
 .TP
 .BI \-D " file_name"
index 1fe999dbdf55b16fa7bbefe5ce6557b1f848fa26..10f51dc975dbd9df1a851ca056f586770e09aa8d 100644 (file)
 
 #include "pppoe.h"
 
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#ifdef HAVE_NETPACKET_PACKET_H
-#include <netpacket/packet.h>
-#elif defined(HAVE_LINUX_IF_PACKET_H)
-#include <linux/if_packet.h>
-#endif
-
-#ifdef HAVE_ASM_TYPES_H
-#include <asm/types.h>
-#endif
-
-#ifdef HAVE_SYS_IOCTL_H
-#include <sys/ioctl.h>
-#endif
-
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifdef HAVE_NET_IF_ARP_H
-#include <net/if_arp.h>
-#endif
-
 int debug;
 int got_sigterm;
 int pppoe_verbose;
@@ -251,9 +225,16 @@ int main(int argc, char *argv[])
        }
     }
 
-    /* default interface name */
-    if (!conn->ifName)
-       conn->ifName = xstrdup("eth0");
+    if (optind != argc) {
+       fprintf(stderr, "%s: extra argument '%s'\n", argv[0], argv[optind]);
+       usage();
+       exit(EXIT_FAILURE);
+    }
+
+    if (!conn->ifName) {
+       fprintf(stderr, "Interface was not specified\n");
+       exit(EXIT_FAILURE);
+    }
 
     conn->sessionSocket = -1;
 
@@ -276,7 +257,7 @@ usage(void)
 {
     fprintf(stderr, "Usage: pppoe-discovery [options]\n");
     fprintf(stderr, "Options:\n");
-    fprintf(stderr, "   -I if_name     -- Specify interface (default eth0)\n");
+    fprintf(stderr, "   -I if_name     -- Specify interface (mandatory option)\n");
     fprintf(stderr, "   -D filename    -- Log debugging information in filename.\n");
     fprintf(stderr,
            "   -t timeout     -- Initial timeout for discovery packets in seconds\n"