mirror of
https://github.com/systemd/systemd.git
synced 2024-10-28 11:55:44 +03:00
sd-ndisc.c: Move Router Solicitation sending after timer computaion
Move ICMPv6 Router Solicitation sending after timer computation so that timers are already set up when the packet is being sent. This makes it possible to create a test that inspects Router Solicitation timer values when the Router Solicitation is sent out on the network.
This commit is contained in:
parent
1bd6f8953d
commit
e82a19cb18
@ -281,12 +281,6 @@ static int ndisc_timeout(sd_event_source *s, uint64_t usec, void *userdata) {
|
||||
assert(nd);
|
||||
assert(nd->event);
|
||||
|
||||
r = icmp6_send_router_solicitation(nd->fd, &nd->mac_addr);
|
||||
if (r < 0) {
|
||||
log_ndisc_errno(r, "Error sending Router Solicitation: %m");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
assert_se(sd_event_now(nd->event, clock_boottime_or_monotonic(), &time_now) >= 0);
|
||||
|
||||
nd->timeout_event_source = sd_event_source_unref(nd->timeout_event_source);
|
||||
@ -319,6 +313,12 @@ static int ndisc_timeout(sd_event_source *s, uint64_t usec, void *userdata) {
|
||||
goto fail;
|
||||
}
|
||||
|
||||
r = icmp6_send_router_solicitation(nd->fd, &nd->mac_addr);
|
||||
if (r < 0) {
|
||||
log_ndisc_errno(r, "Error sending Router Solicitation: %m");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
log_ndisc("Sent Router Solicitation, next solicitation in %s",
|
||||
format_timespan(time_string, FORMAT_TIMESPAN_MAX,
|
||||
nd->retransmit_time, USEC_PER_SEC));
|
||||
|
Loading…
Reference in New Issue
Block a user