summaryrefslogtreecommitdiffstats
path: root/src/providers/fail_over.c
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2012-06-04 11:07:19 +0200
committerStephen Gallagher <sgallagh@redhat.com>2012-06-04 14:18:47 -0400
commit0d2c1deeb761144a671ce37fa39ed8bc6667936f (patch)
tree71acc334d11e56760f359541a57932668f3838fd /src/providers/fail_over.c
parent1575084d8ba8800574c72ee0615a0afadca8375c (diff)
downloadsssd-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/fail_over.c')
-rw-r--r--src/providers/fail_over.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/providers/fail_over.c b/src/providers/fail_over.c
index 2a9631772..2b47e55cb 100644
--- a/src/providers/fail_over.c
+++ b/src/providers/fail_over.c
@@ -1354,7 +1354,16 @@ fo_get_server_port(struct fo_server *server)
return server->port;
}
-const char *fo_get_server_name(struct fo_server *server)
+const char *
+fo_get_server_name(struct fo_server *server)
+{
+ if (!server->common) {
+ return NULL;
+ }
+ return server->common->name;
+}
+
+const char *fo_get_server_str_name(struct fo_server *server)
{
if (!server->common) {
if (fo_is_srv_lookup(server)) {
@@ -1402,3 +1411,9 @@ void fo_reset_services(struct fo_ctx *fo_ctx)
}
}
+struct fo_service *
+fo_get_server_service(struct fo_server *server)
+{
+ if (!server) return NULL;
+ return server->service;
+}