diff options
author | Lukas Slebodnik <lslebodn@redhat.com> | 2013-10-24 11:03:32 +0200 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2013-10-25 15:40:43 +0200 |
commit | 85297c5f964d4426dd811be620f35f032040e720 (patch) | |
tree | d9021b5e3a963333d3c18f458145e5ac42724c78 /src/providers/ad | |
parent | 726d644fe8edcd6933c4529f97135ca3d7552fb7 (diff) | |
download | sssd-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.
Diffstat (limited to 'src/providers/ad')
-rw-r--r-- | src/providers/ad/ad_common.c | 8 |
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 |