diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2011-02-25 16:18:04 +0100 |
---|---|---|
committer | Stephen Gallagher <sgallagh@redhat.com> | 2011-03-07 10:55:00 -0500 |
commit | 6e3d5232fd7a6da2ca6124b73eb729bf2965a727 (patch) | |
tree | 502d2dbb37948f5f733de387e411fca26f8d1bdf /src | |
parent | 19505f9345d7fd03a32b6c23ced2430d74750fc8 (diff) | |
download | sssd_unused-6e3d5232fd7a6da2ca6124b73eb729bf2965a727.tar.gz sssd_unused-6e3d5232fd7a6da2ca6124b73eb729bf2965a727.tar.xz sssd_unused-6e3d5232fd7a6da2ca6124b73eb729bf2965a727.zip |
Reset server status after timeout
https://fedorahosted.org/sssd/ticket/809
Diffstat (limited to 'src')
-rw-r--r-- | src/providers/fail_over.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/providers/fail_over.c b/src/providers/fail_over.c index fc03946c..a09a409d 100644 --- a/src/providers/fail_over.c +++ b/src/providers/fail_over.c @@ -43,6 +43,10 @@ #define DEFAULT_SERVER_STATUS SERVER_NAME_NOT_RESOLVED #define DEFAULT_SRV_STATUS SRV_NEUTRAL +#ifndef HOSTNAME_RESOLVE_TIMEOUT +#define HOSTNAME_RESOLVE_TIMEOUT 7200 +#endif /* HOSTNAME_RESOLVE_TIMEOUT */ + enum srv_lookup_status { SRV_NEUTRAL, /* We didn't try this SRV lookup yet */ SRV_RESOLVED, /* This SRV lookup is resolved */ @@ -320,7 +324,7 @@ get_server_status(struct fo_server *server) DEBUG(4, ("Reseting the server status of '%s'\n", SERVER_NAME(server))); server->common->server_status = SERVER_NAME_NOT_RESOLVED; - server->common->last_status_change.tv_sec = 0; + server->common->last_status_change.tv_sec = tv.tv_sec; } } @@ -348,6 +352,12 @@ 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 (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); + } } } |