From: Ian Jackson Date: Wed, 24 Sep 2014 00:28:23 +0000 (+0100) Subject: comm: Provide udp_socks_deregister X-Git-Tag: proposed.polypath.v4~44 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=secnet.git;a=commitdiff_plain;h=5c679ae0bf87d5d53b65c5e7667a1fa304bdcdeb;hp=53f4e66603bcc2d21c70ad7a69db5fda6da5d645 comm: Provide udp_socks_deregister polypath is going to want this. Signed-off-by: Ian Jackson --- 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)