projects
/
oweals
/
busybox.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
runsvd: shrink by Vladimir
[oweals/busybox.git]
/
networking
/
arping.c
diff --git
a/networking/arping.c
b/networking/arping.c
index 2b7a43cb63a9df9ecea40e3e4dfbbe8fd1a65139..aba32b8692c172519b3681cbafe0937303c8a6ad 100644
(file)
--- a/
networking/arping.c
+++ b/
networking/arping.c
@@
-61,10
+61,16
@@
struct globals {
#define received (G.received )
#define brd_recv (G.brd_recv )
#define req_recv (G.req_recv )
#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,
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);
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)
if (option_mask32 & ADVERT)
-
mem
cpy(p, &ME->sll_addr, ah->ar_hln);
+
p = memp
cpy(p, &ME->sll_addr, ah->ar_hln);
else
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) {
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;
}
return err;
}
-static void finish(void)
ATTRIBUTE_
NORETURN;
+static void finish(void) NORETURN;
static void finish(void)
{
if (!(option_mask32 & QUIET)) {
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)
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);
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, 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;
{
const char *device = "eth0";
char *source = NULL;