diff options
author | Simon Kelley <simon@thekelleys.org.uk> | 2014-07-08 22:22:02 +0100 |
---|---|---|
committer | Simon Kelley <simon@thekelleys.org.uk> | 2014-07-08 22:22:02 +0100 |
commit | 47a951698083413b366c0354d5e4256bb5180501 (patch) | |
tree | bad8643af1651436ceda4d044202527ac6d843b9 /src/netlink.c | |
parent | cdb755c5f16a6768c3e8b1f345fe15fc9244228d (diff) | |
download | dnsmasq-47a951698083413b366c0354d5e4256bb5180501.tar.gz |
Use event system to re-send query on new route. Tidies module boundaries.
Diffstat (limited to 'src/netlink.c')
-rw-r--r-- | src/netlink.c | 22 |
1 files changed, 2 insertions, 20 deletions
diff --git a/src/netlink.c b/src/netlink.c index 022c363..cff43cc 100644 --- a/src/netlink.c +++ b/src/netlink.c @@ -356,28 +356,10 @@ static void nl_async(struct nlmsghdr *h) struct rtmsg *rtm = NLMSG_DATA(h); if (rtm->rtm_type == RTN_UNICAST && rtm->rtm_scope == RT_SCOPE_LINK) - { - /* Force re-reading resolv file right now, for luck. */ - daemon->last_resolv = 0; - - if (daemon->srv_save) - { - int fd; - - if (daemon->srv_save->sfd) - fd = daemon->srv_save->sfd->fd; - else if (daemon->rfd_save && daemon->rfd_save->refcount != 0) - fd = daemon->rfd_save->fd; - else - return; - - while(sendto(fd, daemon->packet, daemon->packet_len, 0, - &daemon->srv_save->addr.sa, sa_len(&daemon->srv_save->addr)) == -1 && retry_send()); - } - } + queue_event(EVENT_NEWROUTE); } else if (h->nlmsg_type == RTM_NEWADDR || h->nlmsg_type == RTM_DELADDR) - send_newaddr(); + queue_event(EVENT_NEWADDR); } #endif |