From 5c679ae0bf87d5d53b65c5e7667a1fa304bdcdeb Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Wed, 24 Sep 2014 01:28:23 +0100 Subject: [PATCH] comm: Provide udp_socks_deregister polypath is going to want this. Signed-off-by: Ian Jackson --- comm-common.h | 2 ++ udp.c | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/comm-common.h b/comm-common.h index 835d056..ed6a86b 100644 --- a/comm-common.h +++ b/comm-common.h @@ -72,6 +72,7 @@ struct udpsocks { struct udpsock socks[UDP_MAX_SOCKETS]; /* private for udp_socks_* */ struct udpcommon *uc; /* link to parent, for cfg, notify list, etc. */ + struct poll_interest *interest; }; struct udpcommon { @@ -87,6 +88,7 @@ bool_t udp_make_socket(struct udpcommon *uc, struct udpsock *us, /* Fills in us->fd. Logs any errors with lg_[v]perror. */ void udp_socks_register(struct udpcommon *uc, struct udpsocks *socks); +void udp_socks_deregister(struct udpcommon *uc, struct udpsocks *socks); #define UDP_APPLY_STANDARD(st,uc,desc) \ (uc)->use_proxy=False; \ diff --git a/udp.c b/udp.c index 8f0bb8b..a58690e 100644 --- a/udp.c +++ b/udp.c @@ -288,7 +288,14 @@ failed: void udp_socks_register(struct udpcommon *uc, struct udpsocks *socks) { socks->uc=uc; - register_for_poll(socks,udp_socks_beforepoll,udp_socks_afterpoll,"udp"); + socks->interest= + register_for_poll(socks,udp_socks_beforepoll,udp_socks_afterpoll,"udp"); +} + +void udp_socks_deregister(struct udpcommon *uc, struct udpsocks *socks) +{ + socks->uc=uc; + deregister_for_poll(socks->interest); } static void udp_phase_hook(void *sst, uint32_t new_phase) -- 2.30.2