[patch tracking] 20201103053007654140 - 86ed08936d
This commit is contained in:
parent
ca284a37a4
commit
4d6327e649
34
86ed08936d49e2c81ef49dfbd02aca1c74d0c098.patch
Normal file
34
86ed08936d49e2c81ef49dfbd02aca1c74d0c098.patch
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
diff --git a/arping.c b/arping.c
|
||||||
|
index a002786..53fdbb4 100644
|
||||||
|
--- a/arping.c
|
||||||
|
+++ b/arping.c
|
||||||
|
@@ -968,7 +968,7 @@ int main(int argc, char **argv)
|
||||||
|
}
|
||||||
|
memset(&saddr, 0, sizeof(saddr));
|
||||||
|
saddr.sin_family = AF_INET;
|
||||||
|
- if (!ctl.unsolicited && (ctl.source || ctl.gsrc.s_addr)) {
|
||||||
|
+ if (ctl.source || ctl.gsrc.s_addr) {
|
||||||
|
saddr.sin_addr = ctl.gsrc;
|
||||||
|
if (bind(probe_fd, (struct sockaddr *)&saddr, sizeof(saddr)) == -1)
|
||||||
|
error(2, errno, "bind");
|
||||||
|
@@ -979,12 +979,14 @@ int main(int argc, char **argv)
|
||||||
|
saddr.sin_port = htons(1025);
|
||||||
|
saddr.sin_addr = ctl.gdst;
|
||||||
|
|
||||||
|
- if (setsockopt(probe_fd, SOL_SOCKET, SO_DONTROUTE, (char *)&on, sizeof(on)) == -1)
|
||||||
|
- error(0, errno, _("WARNING: setsockopt(SO_DONTROUTE)"));
|
||||||
|
- if (connect(probe_fd, (struct sockaddr *)&saddr, sizeof(saddr)) == -1)
|
||||||
|
- error(2, errno, "connect");
|
||||||
|
- if (getsockname(probe_fd, (struct sockaddr *)&saddr, &alen) == -1)
|
||||||
|
- error(2, errno, "getsockname");
|
||||||
|
+ if (!ctl.unsolicited) {
|
||||||
|
+ if (setsockopt(probe_fd, SOL_SOCKET, SO_DONTROUTE, (char *)&on, sizeof(on)) == -1)
|
||||||
|
+ error(0, errno, _("WARNING: setsockopt(SO_DONTROUTE)"));
|
||||||
|
+ if (connect(probe_fd, (struct sockaddr *)&saddr, sizeof(saddr)) == -1)
|
||||||
|
+ error(2, errno, "connect");
|
||||||
|
+ if (getsockname(probe_fd, (struct sockaddr *)&saddr, &alen) == -1)
|
||||||
|
+ error(2, errno, "getsockname");
|
||||||
|
+ }
|
||||||
|
ctl.gsrc = saddr.sin_addr;
|
||||||
|
}
|
||||||
|
close(probe_fd);
|
||||||
Loading…
x
Reference in New Issue
Block a user