diff options
author | Bernhard Reutner-Fischer | 2006-03-31 18:13:42 +0000 |
---|---|---|
committer | Bernhard Reutner-Fischer | 2006-03-31 18:13:42 +0000 |
commit | 2766eedde85f092153a2affb2d3da491e2670982 (patch) | |
tree | 6dbc5fe0f29d0864b79259f1f5d310c762d026a5 | |
parent | e47c4cbd4d3d5c186a497e52106282a9cb0c371d (diff) | |
download | busybox-2766eedde85f092153a2affb2d3da491e2670982.zip busybox-2766eedde85f092153a2affb2d3da491e2670982.tar.gz |
- use RESERVE_CONFIG_BUFFER. For defconfig this gives:
text data bss dec hex filename
3627 4 120 3751 ea7 networking/arping.o.oorig
3548 4 96 3648 e40 networking/arping.o.r14710
3520 4 96 3620 e24 networking/arping.o
-rw-r--r-- | networking/arping.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/networking/arping.c b/networking/arping.c index 782b61b..4f1a2e2 100644 --- a/networking/arping.c +++ b/networking/arping.c @@ -71,7 +71,7 @@ static int send_pack(int sock, struct in_addr *src_addr, { int err; struct timeval now; - unsigned char buf[256]; + RESERVE_CONFIG_UBUFFER(buf, 256); struct arphdr *ah = (struct arphdr *) buf; unsigned char *p = (unsigned char *) (ah + 1); @@ -105,6 +105,7 @@ static int send_pack(int sock, struct in_addr *src_addr, if (!(cfg&unicasting)) brd_sent++; } + RELEASE_CONFIG_BUFFER(buf); return err; } @@ -456,12 +457,12 @@ int arping_main(int argc, char **argv) while (1) { sigset_t sset, osset; - unsigned char packet[4096]; + RESERVE_CONFIG_UBUFFER(packet, 4096); struct sockaddr_ll from; socklen_t alen = sizeof(from); int cc; - if ((cc = recvfrom(s, packet, sizeof(packet), 0, + if ((cc = recvfrom(s, packet, 4096, 0, (struct sockaddr *) &from, &alen)) < 0) { perror("recvfrom"); continue; @@ -472,5 +473,6 @@ int arping_main(int argc, char **argv) sigprocmask(SIG_BLOCK, &sset, &osset); recv_pack(packet, cc, &from); sigprocmask(SIG_SETMASK, &osset, NULL); + RELEASE_CONFIG_BUFFER(packet); } } |