Use event system to re-send query on new route. Tidies module boundaries.

This commit is contained in:
Simon Kelley
2014-07-08 22:22:02 +01:00
parent cdb755c5f1
commit 47a9516980
6 changed files with 37 additions and 30 deletions

View File

@@ -2130,6 +2130,25 @@ static struct frec *lookup_frec_by_sender(unsigned short id,
return NULL;
}
/* Send query packet again, if we can. */
void resend_query()
{
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());
}
}
/* A server record is going away, remove references to it */
void server_gone(struct server *server)