Cleanup pppoe-discovery fatal functions
authorPali Rohár <pali@kernel.org>
Thu, 31 Dec 2020 17:52:50 +0000 (18:52 +0100)
committerPali Rohár <pali@kernel.org>
Fri, 1 Jan 2021 01:56:42 +0000 (02:56 +0100)
Implement fatal() function as defined in pppd/pppd.h and use it instead of
rp_fatal() and sysErr() functions.

Signed-off-by: Pali Rohár <pali@kernel.org>
pppd/plugins/pppoe/pppoe-discovery.c
pppd/plugins/pppoe/pppoe.h

index 34b77e8c27217af9924d7f8cbb7c78966c688065..e41d2863cb9bafe0e85eb321f8bd7421ad91c758 100644 (file)
@@ -130,7 +130,7 @@ openInterface(char const *ifname, UINT16_t type, unsigned char *hwaddr)
     if ((fd = socket(domain, stype, htons(type))) < 0) {
        /* Give a more helpful message for the common error case */
        if (errno == EPERM) {
-           rp_fatal("Cannot create raw socket -- pppoe must be run as root.");
+           fatal("Cannot create raw socket -- pppoe must be run as root.");
        }
        fatalSys("socket");
     }
@@ -148,17 +148,11 @@ openInterface(char const *ifname, UINT16_t type, unsigned char *hwaddr)
        memcpy(hwaddr, ifr.ifr_hwaddr.sa_data, ETH_ALEN);
 #ifdef ARPHRD_ETHER
        if (ifr.ifr_hwaddr.sa_family != ARPHRD_ETHER) {
-           char buffer[256];
-           sprintf(buffer, "Interface %.16s is not Ethernet", ifname);
-           rp_fatal(buffer);
+           fatal("Interface %.16s is not Ethernet", ifname);
        }
 #endif
        if (NOT_UNICAST(hwaddr)) {
-           char buffer[256];
-           sprintf(buffer,
-                   "Interface %.16s has broadcast/multicast MAC address??",
-                   ifname);
-           rp_fatal(buffer);
+           fatal("Interface %.16s has broadcast/multicast MAC address??", ifname);
        }
     }
 
@@ -214,18 +208,18 @@ sendPacket(PPPoEConnection *conn, int sock, PPPoEPacket *pkt, int size)
 {
 #if defined(HAVE_STRUCT_SOCKADDR_LL)
     if (send(sock, pkt, size, 0) < 0) {
-       sysErr("send (sendPacket)");
+       fatalSys("send (sendPacket)");
        return -1;
     }
 #else
     struct sockaddr sa;
 
     if (!conn) {
-       rp_fatal("relay and server not supported on Linux 2.0 kernels");
+       fatal("relay and server not supported on Linux 2.0 kernels");
     }
     strcpy(sa.sa_data, conn->ifName);
     if (sendto(sock, pkt, size, 0, &sa, sizeof(sa)) < 0) {
-       sysErr("sendto (sendPacket)");
+       fatalSys("sendto (sendPacket)");
        return -1;
     }
 #endif
@@ -247,7 +241,7 @@ int
 receivePacket(int sock, PPPoEPacket *pkt, int *size)
 {
     if ((*size = recv(sock, pkt, sizeof(PPPoEPacket), 0)) < 0) {
-       sysErr("recv (receivePacket)");
+       fatalSys("recv (receivePacket)");
        return -1;
     }
     return 0;
@@ -746,9 +740,13 @@ int main(int argc, char *argv[])
        exit(0);
 }
 
-void rp_fatal(char const *str)
+void fatal(char * fmt, ...)
 {
-    fprintf(stderr, "%s\n", str);
+    va_list ap;
+    va_start(ap, fmt);
+    vfprintf(stderr, fmt, ap);
+    va_end(ap);
+    fputc('\n', stderr);
     exit(1);
 }
 
@@ -758,16 +756,11 @@ void fatalSys(char const *str)
     exit(1);
 }
 
-void sysErr(char const *str)
-{
-    rp_fatal(str);
-}
-
 char *xstrdup(const char *s)
 {
     register char *ret = strdup(s);
     if (!ret)
-       sysErr("strdup");
+       fatalSys("strdup");
     return ret;
 }
 
index e2dc2ff9c00260d8437274941db0eb3ee20c7d97..4e1972002ed80e17d5790c0f07c1d82bb2fb1d85 100644 (file)
@@ -262,9 +262,6 @@ 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 rp_fatal(char const *str);
-void printErr(char const *str);
-void sysErr(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);