diff options
author | Patrik Flykt <patrik.flykt@linux.intel.com> | 2014-06-25 12:33:48 +0300 |
---|---|---|
committer | Patrik Flykt <patrik.flykt@linux.intel.com> | 2014-06-26 16:09:40 +0300 |
commit | 836cf0905c4a8fe3358d6b0e005192d5ee51d3e2 (patch) | |
tree | a8fea7a6611f89ce1c3e9c9b6c3447a31a021a04 /src/libsystemd-network/sd-icmp6-nd.c | |
parent | 3f0c075f8ef3344da5a6bda524540201f9204e61 (diff) |
sd-icmp6-nd: Add function to stop ongoing ICMPv6 discovery
In some use cases stopping an ongoing ICMPv6 discovery is more
useful than always unreferencing the whole structure.
Diffstat (limited to 'src/libsystemd-network/sd-icmp6-nd.c')
-rw-r--r-- | src/libsystemd-network/sd-icmp6-nd.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/libsystemd-network/sd-icmp6-nd.c b/src/libsystemd-network/sd-icmp6-nd.c index 10c5e5e87e..80915c34d6 100644 --- a/src/libsystemd-network/sd-icmp6-nd.c +++ b/src/libsystemd-network/sd-icmp6-nd.c @@ -282,6 +282,19 @@ static int icmp6_router_solicitation_timeout(sd_event_source *s, uint64_t usec, 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; |