diff options
author | Marc-André Lureau <marcandre.lureau@gmail.com> | 2022-04-25 08:36:12 +0000 |
---|---|---|
committer | Marc-André Lureau <marcandre.lureau@gmail.com> | 2022-04-25 08:36:12 +0000 |
commit | 3b521f531f7b85d9d101b8d7dfa729c8f2d9208d (patch) | |
tree | ade86112b5f0bb1c6209ef720921904bcb933648 /src/ip6_icmp.c | |
parent | 888ddad6bde1dc6d7dbfc8daa7d015251b72e02c (diff) | |
parent | f65862ff117447bc69b137d36237ef1ea8868121 (diff) | |
download | slirp-3b521f531f7b85d9d101b8d7dfa729c8f2d9208d.zip slirp-3b521f531f7b85d9d101b8d7dfa729c8f2d9208d.tar.gz slirp-3b521f531f7b85d9d101b8d7dfa729c8f2d9208d.tar.bz2 |
Merge branch 'opaque-timer' into 'master'
Support for CFI
See merge request slirp/libslirp!117
Diffstat (limited to 'src/ip6_icmp.c')
-rw-r--r-- | src/ip6_icmp.c | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/src/ip6_icmp.c b/src/ip6_icmp.c index 738b40f..0d7ee69 100644 --- a/src/ip6_icmp.c +++ b/src/ip6_icmp.c @@ -10,25 +10,14 @@ #define NDP_Interval \ g_rand_int_range(slirp->grand, NDP_MinRtrAdvInterval, NDP_MaxRtrAdvInterval) -static void ra_timer_handler(void *opaque) -{ - Slirp *slirp = opaque; - - slirp->cb->timer_mod(slirp->ra_timer, - slirp->cb->clock_get_ns(slirp->opaque) / SCALE_MS + - NDP_Interval, - slirp->opaque); - ndp_send_ra(slirp); -} - -void icmp6_init(Slirp *slirp) +void icmp6_post_init(Slirp *slirp) { if (!slirp->in6_enabled) { return; } slirp->ra_timer = - slirp->cb->timer_new(ra_timer_handler, slirp, slirp->opaque); + slirp_timer_new(slirp, SLIRP_TIMER_RA, NULL); slirp->cb->timer_mod(slirp->ra_timer, slirp->cb->clock_get_ns(slirp->opaque) / SCALE_MS + NDP_Interval, @@ -140,7 +129,7 @@ void icmp6_send_error(struct mbuf *m, uint8_t type, uint8_t code) /* * Send NDP Router Advertisement */ -void ndp_send_ra(Slirp *slirp) +static void ndp_send_ra(Slirp *slirp) { DEBUG_CALL("ndp_send_ra"); @@ -219,6 +208,15 @@ void ndp_send_ra(Slirp *slirp) ip6_output(NULL, t, 0); } +void ra_timer_handler(Slirp *slirp, void *unused) +{ + slirp->cb->timer_mod(slirp->ra_timer, + slirp->cb->clock_get_ns(slirp->opaque) / SCALE_MS + + NDP_Interval, + slirp->opaque); + ndp_send_ra(slirp); +} + /* * Send NDP Neighbor Solitication */ |