diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2011-03-08 15:06:09 +0100 |
---|---|---|
committer | Stephen Gallagher <sgallagh@redhat.com> | 2011-03-08 11:46:48 -0500 |
commit | 54029a1a607de431daab27482198685ea08d303e (patch) | |
tree | f0b540f2fdb79a3d76f91fa1dd4b006c98872225 | |
parent | 763439c3f06c5feee32e8cdabf9fead153166add (diff) | |
download | sssd-54029a1a607de431daab27482198685ea08d303e.tar.gz sssd-54029a1a607de431daab27482198685ea08d303e.tar.xz sssd-54029a1a607de431daab27482198685ea08d303e.zip |
Always expire host name resolution
The previous version of the patch only expired a resolved host name
if the port was being reset. We want to always expire it so we notice
IP address changes even if the previous server is still up.
-rw-r--r-- | src/providers/fail_over.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/providers/fail_over.c b/src/providers/fail_over.c index 37ffe268f..92089226b 100644 --- a/src/providers/fail_over.c +++ b/src/providers/fail_over.c @@ -318,8 +318,8 @@ get_server_status(struct fo_server *server) str_server_status(server->common->server_status))); timeout = server->service->ctx->opts->retry_timeout; + gettimeofday(&tv, NULL); if (timeout != 0 && server->common->server_status == SERVER_NOT_WORKING) { - gettimeofday(&tv, NULL); if (STATUS_DIFF(server->common, tv) > timeout) { DEBUG(4, ("Reseting the server status of '%s'\n", SERVER_NAME(server))); @@ -328,6 +328,12 @@ get_server_status(struct fo_server *server) } } + if (STATUS_DIFF(server->common, tv) > HOSTNAME_RESOLVE_TIMEOUT) { + DEBUG(4, ("Hostname resolution expired, reseting the server " + "status of '%s'\n", SERVER_NAME(server))); + fo_set_server_status(server, SERVER_NAME_NOT_RESOLVED); + } + return server->common->server_status; } @@ -352,13 +358,6 @@ get_port_status(struct fo_server *server) server->port, SERVER_NAME(server))); server->port_status = PORT_NEUTRAL; server->last_status_change.tv_sec = tv.tv_sec; - - if (server->common != NULL && - STATUS_DIFF(server->common, tv) > HOSTNAME_RESOLVE_TIMEOUT) { - DEBUG(4, ("Reseting the server status of '%s'\n", - SERVER_NAME(server))); - fo_set_server_status(server, SERVER_NAME_NOT_RESOLVED); - } } } |