summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2012-08-14 13:53:53 +0200
committerJakub Hrozek <jhrozek@redhat.com>2012-10-15 15:31:10 +0200
commitdc29b82a611a7ff0f768d5ff56a715c86bfe6dff (patch)
treeaf06294868dfbb5b2adbd9bcc9a8b31eb85368f9
parentd1e945fdd994b40adc1ae5325bd89cbac355e68f (diff)
downloadsssd-dc29b82a611a7ff0f768d5ff56a715c86bfe6dff.tar.gz
sssd-dc29b82a611a7ff0f768d5ff56a715c86bfe6dff.tar.xz
sssd-dc29b82a611a7ff0f768d5ff56a715c86bfe6dff.zip
FO: Don't retry the same server if it's not working
-rw-r--r--src/providers/fail_over.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/providers/fail_over.c b/src/providers/fail_over.c
index 8925e3586..4b2841834 100644
--- a/src/providers/fail_over.c
+++ b/src/providers/fail_over.c
@@ -670,6 +670,11 @@ get_first_server_entity(struct fo_service *service, struct fo_server **_server)
/* First, try servers after the last one we tried. */
if (service->last_tried_server != NULL) {
+ if (service->last_tried_server->port_status == PORT_NEUTRAL &&
+ server_works(service->last_tried_server)) {
+ server = service->last_tried_server;
+ goto done;
+ }
DLIST_FOR_EACH(server, service->last_tried_server->next) {
if (service_works(server)) {
goto done;