chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
core: unify how we generate the prefix string when dumping unit state
[elogind.git]
/
src
/
libsystemd-network
/
sd-icmp6-nd.c
diff --git
a/src/libsystemd-network/sd-icmp6-nd.c
b/src/libsystemd-network/sd-icmp6-nd.c
index f820a9c8f04540be3e913d5edc7a81887b9cf9bf..b264e793ee4e27d9e98550de95985298cf9667fe 100644
(file)
--- a/
src/libsystemd-network/sd-icmp6-nd.c
+++ b/
src/libsystemd-network/sd-icmp6-nd.c
@@
-171,6
+171,7
@@
int sd_icmp6_nd_new(sd_icmp6_nd **ret) {
nd->n_ref = REFCNT_INIT;
nd->index = -1;
nd->n_ref = REFCNT_INIT;
nd->index = -1;
+ nd->fd = -1;
*ret = nd;
nd = NULL;
*ret = nd;
nd = NULL;
@@
-254,7
+255,7
@@
static int icmp6_router_solicitation_timeout(sd_event_source *s, uint64_t usec,
nd->nd_sent++;
nd->nd_sent++;
- r = sd_event_now(nd->event,
CLOCK_MONOTONIC
, &time_now);
+ r = sd_event_now(nd->event,
clock_boottime_or_monotonic()
, &time_now);
if (r < 0) {
icmp6_nd_notify(nd, r);
return 0;
if (r < 0) {
icmp6_nd_notify(nd, r);
return 0;
@@
-262,7
+263,7
@@
static int icmp6_router_solicitation_timeout(sd_event_source *s, uint64_t usec,
next_timeout = time_now + ICMP6_ROUTER_SOLICITATION_INTERVAL;
next_timeout = time_now + ICMP6_ROUTER_SOLICITATION_INTERVAL;
- r = sd_event_add_time(nd->event, &nd->timeout,
CLOCK_MONOTONIC
,
+ r = sd_event_add_time(nd->event, &nd->timeout,
clock_boottime_or_monotonic()
,
next_timeout, 0,
icmp6_router_solicitation_timeout, nd);
if (r < 0) {
next_timeout, 0,
icmp6_router_solicitation_timeout, nd);
if (r < 0) {
@@
-281,6
+282,19
@@
static int icmp6_router_solicitation_timeout(sd_event_source *s, uint64_t usec,
return 0;
}
return 0;
}
+int sd_icmp6_nd_stop(sd_icmp6_nd *nd) {
+ assert_return(nd, -EINVAL);
+ assert_return(nd->event, -EINVAL);
+
+ log_icmp6_nd(client, "Stop ICMPv6");
+
+ icmp6_nd_init(nd);
+
+ nd->state = ICMP6_NEIGHBOR_DISCOVERY_IDLE;
+
+ return 0;
+}
+
int sd_icmp6_router_solicitation_start(sd_icmp6_nd *nd) {
int r;
int sd_icmp6_router_solicitation_start(sd_icmp6_nd *nd) {
int r;
@@
-308,7
+322,7
@@
int sd_icmp6_router_solicitation_start(sd_icmp6_nd *nd) {
if (r < 0)
goto error;
if (r < 0)
goto error;
- r = sd_event_add_time(nd->event, &nd->timeout,
CLOCK_MONOTONIC
,
+ r = sd_event_add_time(nd->event, &nd->timeout,
clock_boottime_or_monotonic()
,
0, 0, icmp6_router_solicitation_timeout, nd);
if (r < 0)
goto error;
0, 0, icmp6_router_solicitation_timeout, nd);
if (r < 0)
goto error;