runsvd: shrink by Vladimir
[oweals/busybox.git] / networking / arping.c
index 2b7a43cb63a9df9ecea40e3e4dfbbe8fd1a65139..aba32b8692c172519b3681cbafe0937303c8a6ad 100644 (file)
@@ -61,10 +61,16 @@ struct globals {
 #define received   (G.received  )
 #define brd_recv   (G.brd_recv  )
 #define req_recv   (G.req_recv  )
-#define INIT_G() \
-       do { \
-               count = -1; \
-       } while (0)
+#define INIT_G() do { \
+       count = -1; \
+} while (0)
+
+// If GNUisms are not available...
+//static void *mempcpy(void *_dst, const void *_src, int n)
+//{
+//     memcpy(_dst, _src, n);
+//     return (char*)_dst + n;
+//}
 
 static int send_pack(struct in_addr *src_addr,
                        struct in_addr *dst_addr, struct sockaddr_ll *ME,
@@ -81,20 +87,15 @@ static int send_pack(struct in_addr *src_addr,
        ah->ar_pln = 4;
        ah->ar_op = option_mask32 & ADVERT ? htons(ARPOP_REPLY) : htons(ARPOP_REQUEST);
 
-       memcpy(p, &ME->sll_addr, ah->ar_hln);
-       p += ME->sll_halen;
-
-       memcpy(p, src_addr, 4);
-       p += 4;
+       p = mempcpy(p, &ME->sll_addr, ah->ar_hln);
+       p = mempcpy(p, src_addr, 4);
 
        if (option_mask32 & ADVERT)
-               memcpy(p, &ME->sll_addr, ah->ar_hln);
+               p = mempcpy(p, &ME->sll_addr, ah->ar_hln);
        else
-               memcpy(p, &HE->sll_addr, ah->ar_hln);
-       p += ah->ar_hln;
+               p = mempcpy(p, &HE->sll_addr, ah->ar_hln);
 
-       memcpy(p, dst_addr, 4);
-       p += 4;
+       p = mempcpy(p, dst_addr, 4);
 
        err = sendto(sock_fd, buf, p - buf, 0, (struct sockaddr *) HE, sizeof(*HE));
        if (err == p - buf) {
@@ -106,7 +107,7 @@ static int send_pack(struct in_addr *src_addr,
        return err;
 }
 
-static void finish(void) ATTRIBUTE_NORETURN;
+static void finish(void) NORETURN;
 static void finish(void)
 {
        if (!(option_mask32 & QUIET)) {
@@ -172,7 +173,7 @@ static bool recv_pack(unsigned char *buf, int len, struct sockaddr_ll *FROM)
        if (ah->ar_pro != htons(ETH_P_IP)
                || (ah->ar_pln != 4)
                || (ah->ar_hln != me.sll_halen)
-               || (len < sizeof(*ah) + 2 * (4 + ah->ar_hln)))
+               || (len < (int)(sizeof(*ah) + 2 * (4 + ah->ar_hln))))
                return false;
 
        memcpy(&src_ip, p + ah->ar_hln, 4);
@@ -244,7 +245,7 @@ static bool recv_pack(unsigned char *buf, int len, struct sockaddr_ll *FROM)
 }
 
 int arping_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-int arping_main(int argc ATTRIBUTE_UNUSED, char **argv)
+int arping_main(int argc UNUSED_PARAM, char **argv)
 {
        const char *device = "eth0";
        char *source = NULL;