Fix Bugzilla #64 -- ngicrd did not reconnect to other servers after failed forward dns lookup.

This commit is contained in:
Florian Westphal 2005-12-09 09:26:55 +00:00
parent a293088027
commit 4b2f966b7e
1 changed files with 14 additions and 4 deletions

View File

@ -17,7 +17,7 @@
#include "portab.h"
#include "io.h"
static char UNUSED id[] = "$Id: conn.c,v 1.185 2005/11/21 15:06:37 alex Exp $";
static char UNUSED id[] = "$Id: conn.c,v 1.186 2005/12/09 09:26:55 fw Exp $";
#include "imp.h"
#include <assert.h>
@ -1557,15 +1557,15 @@ cb_Read_Resolver_Result( int r_fd, UNUSED short events )
/* Read result from pipe */
len = Resolve_Read(&My_Connections[i].res_stat, readbuf, sizeof readbuf -1);
if (len == 0)
return;
if (len == 0)
goto out;
readbuf[len] = '\0';
identptr = strchr(readbuf, '\n');
assert(identptr != NULL);
if (!identptr) {
Log( LOG_CRIT, "Resolver: Got malformed result!");
return;
goto out;
}
*identptr = '\0';
@ -1610,6 +1610,16 @@ cb_Read_Resolver_Result( int r_fd, UNUSED short events )
/* Reset penalty time */
Conn_ResetPenalty( i );
return;
out:
if (My_Connections[i].sock == SERVER_WAIT) {
n = Conf_GetServer( i );
assert(n > NONE );
if (n > NONE) {
Conf_Server[n].conn_id = NONE;
Init_Conn_Struct(i);
}
}
} /* cb_Read_Resolver_Result */