summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSami Kerola <kerolasa@iki.fi>2018-10-27 13:12:21 +0100
committerSami Kerola <kerolasa@iki.fi>2018-11-11 10:37:05 +0000
commitfd0f4c85dcbbf8c1a0014bb2182bbdba5505eb1a (patch)
treed3bd04bb8696d4824e73172a10bdb6f3a8b6d322
parent21281576614f43b45b2f0492d2ef24b5d2d3bc1e (diff)
downloadiputils-fd0f4c85dcbbf8c1a0014bb2182bbdba5505eb1a.tar.gz
arping: remove unnecessary set_device_broadcast...() functions
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
-rw-r--r--arping.c51
1 files changed, 15 insertions, 36 deletions
diff --git a/arping.c b/arping.c
index 2786808..13ee455 100644
--- a/arping.c
+++ b/arping.c
@@ -934,52 +934,31 @@ out:
* This fills the device "broadcast address"
* based on information found by find_device() funcion.
*/
-static int set_device_broadcast_ifaddrs_one(struct run_state *ctl)
+static void set_device_broadcast(struct run_state *ctl)
{
- struct sockaddr_ll *sll;
struct sockaddr_ll *he = (struct sockaddr_ll *)&(ctl->he);
- if (!ctl->device.ifa)
- return -1;
- sll = (struct sockaddr_ll *)ctl->device.ifa->ifa_broadaddr;
- if (sll->sll_halen != he->sll_halen)
- return -1;
- memcpy(he->sll_addr, sll->sll_addr, he->sll_halen);
- return 0;
-}
+ if (ctl->device.ifa) {
+ struct sockaddr_ll *sll =
+ (struct sockaddr_ll *)ctl->device.ifa->ifa_broadaddr;
-int set_device_broadcast_sysfs(struct run_state *ctl)
-{
+ if (sll->sll_halen == he->sll_halen) {
+ memcpy(he->sll_addr, sll->sll_addr, he->sll_halen);
+ return;
+ }
+ }
#ifdef USE_SYSFS
- struct sockaddr_ll *he = (struct sockaddr_ll *)&(ctl->he);
-
if (ctl->device.sysfs && ctl->device.sysfs->value[SYSFS_DEVATTR_ADDR_LEN].ulong !=
- he->sll_halen)
- return -1;
- memcpy(he->sll_addr, ctl->device.sysfs->value[SYSFS_DEVATTR_BROADCAST].ptr, he->sll_halen);
- return 0;
-#else
- return -1;
+ he->sll_halen) {
+ memcpy(he->sll_addr,
+ ctl->device.sysfs->value[SYSFS_DEVATTR_BROADCAST].ptr,
+ he->sll_halen);
+ return;
+ }
#endif
-}
-
-static int set_device_broadcast_fallback(struct run_state *ctl)
-{
- struct sockaddr_ll *he = (struct sockaddr_ll *)&(ctl->he);
-
if (!ctl->quiet)
fprintf(stderr, "WARNING: using default broadcast address.\n");
memset(he->sll_addr, -1, he->sll_halen);
- return 0;
-}
-
-static void set_device_broadcast(struct run_state *ctl)
-{
- if (!set_device_broadcast_ifaddrs_one(ctl))
- return;
- if (!set_device_broadcast_sysfs(ctl))
- return;
- set_device_broadcast_fallback(ctl);
}
int