summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukas Slebodnik <lslebodn@redhat.com>2013-10-24 11:03:32 +0200
committerJakub Hrozek <jhrozek@redhat.com>2013-10-25 15:40:43 +0200
commit85297c5f964d4426dd811be620f35f032040e720 (patch)
treed9021b5e3a963333d3c18f458145e5ac42724c78
parent726d644fe8edcd6933c4529f97135ca3d7552fb7 (diff)
downloadsssd-85297c5f964d4426dd811be620f35f032040e720.tar.gz
sssd-85297c5f964d4426dd811be620f35f032040e720.tar.xz
sssd-85297c5f964d4426dd811be620f35f032040e720.zip
AD: Prefer GC port from SRV record
We had a hard coded value of Global Catalog port (3268). Informations from SRV record was ignored. This patch prefer port number from SRV record and hard coded value is used only as a fall back if port number was not initialized.
-rw-r--r--src/providers/ad/ad_common.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/providers/ad/ad_common.c b/src/providers/ad/ad_common.c
index ab62d64a9..f679c11ad 100644
--- a/src/providers/ad/ad_common.c
+++ b/src/providers/ad/ad_common.c
@@ -661,6 +661,7 @@ ad_resolve_callback(void *private_data, struct fo_server *server)
char *address;
const char *safe_address;
char *new_uri;
+ int new_port;
const char *srv_name;
struct ad_server_data *sdata = NULL;
@@ -729,12 +730,15 @@ ad_resolve_callback(void *private_data, struct fo_server *server)
talloc_zfree(service->gc->uri);
talloc_zfree(service->gc->sockaddr);
if (sdata && sdata->gc) {
+ new_port = fo_get_server_port(server);
+ new_port = (new_port == 0) ? AD_GC_PORT : new_port;
+
service->gc->uri = talloc_asprintf(service->gc, "%s:%d",
- new_uri, AD_GC_PORT);
+ new_uri, new_port);
service->gc->sockaddr = resolv_get_sockaddr_address(service->gc,
srvaddr,
- AD_GC_PORT);
+ new_port);
} else {
/* Make sure there always is an URI even if we know that this
* server doesn't support GC. That way the lookup would go through