svn commit: trunk/busybox/networking

vda at busybox.net vda at busybox.net
Fri Apr 25 08:13:36 UTC 2008


Author: vda
Date: 2008-04-25 01:13:36 -0700 (Fri, 25 Apr 2008)
New Revision: 21855

Log:
arping: save a few bytes by using mempcpy

function                                             old     new   delta
catcher                                              357     339     -18



Modified:
   trunk/busybox/networking/arping.c


Changeset:
Modified: trunk/busybox/networking/arping.c
===================================================================
--- trunk/busybox/networking/arping.c	2008-04-25 07:43:18 UTC (rev 21854)
+++ trunk/busybox/networking/arping.c	2008-04-25 08:13:36 UTC (rev 21855)
@@ -66,6 +66,13 @@
 		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,
 			struct sockaddr_ll *HE)
@@ -81,20 +88,15 @@
 	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;
+	p = mempcpy(p, &ME->sll_addr, ah->ar_hln);
+	p = mempcpy(p, src_addr, 4);
 
-	memcpy(p, src_addr, 4);
-	p += 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) {




More information about the busybox-cvs mailing list