diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2012-06-04 11:07:19 +0200 |
---|---|---|
committer | Stephen Gallagher <sgallagh@redhat.com> | 2012-06-04 14:18:47 -0400 |
commit | 0d2c1deeb761144a671ce37fa39ed8bc6667936f (patch) | |
tree | 71acc334d11e56760f359541a57932668f3838fd /src/providers/ldap/ldap_auth.c | |
parent | 1575084d8ba8800574c72ee0615a0afadca8375c (diff) | |
download | sssd-0d2c1deeb761144a671ce37fa39ed8bc6667936f.tar.gz sssd-0d2c1deeb761144a671ce37fa39ed8bc6667936f.tar.xz sssd-0d2c1deeb761144a671ce37fa39ed8bc6667936f.zip |
Only do one cycle when resolving a server
Rename fo_get_server_name to fo_get_server_str_name
fo_get_server_name() getter for a server name
Allows to be more concise in tests and more defensive in resolve
callbacks
Only do one cycle when resolving a server
https://fedorahosted.org/sssd/ticket/1214
Detect cycle in the fail over on subsequent resolve requests only
Diffstat (limited to 'src/providers/ldap/ldap_auth.c')
-rw-r--r-- | src/providers/ldap/ldap_auth.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/providers/ldap/ldap_auth.c b/src/providers/ldap/ldap_auth.c index 8109e247d..7a5ec4b73 100644 --- a/src/providers/ldap/ldap_auth.c +++ b/src/providers/ldap/ldap_auth.c @@ -512,7 +512,8 @@ static struct tevent_req *auth_get_server(struct tevent_req *req) next_req = be_resolve_server_send(state, state->ev, state->ctx->be, - state->sdap_service->name); + state->sdap_service->name, + state->srv == NULL ? true : false); if (!next_req) { DEBUG(1, ("be_resolve_server_send failed.\n")); return NULL; @@ -583,7 +584,8 @@ static void auth_connect_done(struct tevent_req *subreq) if (ret) { if (state->srv) { /* mark this server as bad if connection failed */ - fo_set_port_status(state->srv, PORT_NOT_WORKING); + be_fo_set_port_status(state->ctx->be, + state->srv, PORT_NOT_WORKING); } if (ret == ETIMEDOUT) { if (auth_get_server(req) == NULL) { @@ -595,7 +597,7 @@ static void auth_connect_done(struct tevent_req *subreq) tevent_req_error(req, ret); return; } else if (state->srv) { - fo_set_port_status(state->srv, PORT_WORKING); + be_fo_set_port_status(state->ctx->be, state->srv, PORT_WORKING); } ret = get_user_dn(state, state->ctx->be->sysdb, state->ctx->opts, |