The Samba-Bugzilla – Attachment 7502 Details for
Bug 8897
winbind_krb5_locator only returns one IP address.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
git-am fix for 3.5.next
0001-Fix-bug-8897-winbind_krb5_locator-only-returns-one-I.patch (text/plain), 2.37 KB, created by
Jeremy Allison
on 2012-04-25 22:18:43 UTC
(
hide
)
Description:
git-am fix for 3.5.next
Filename:
MIME Type:
Creator:
Jeremy Allison
Created:
2012-04-25 22:18:43 UTC
Size:
2.37 KB
patch
obsolete
>From a772196061d9b1c9d87bffb0d512f292ac55fa7f Mon Sep 17 00:00:00 2001 >From: Jeremy Allison <jra@samba.org> >Date: Wed, 25 Apr 2012 15:17:09 -0700 >Subject: [PATCH] Fix bug #8897 - winbind_krb5_locator only returns one IP > address. > >Reported by Dina_Fine@Dell.com. > >Don't ask the DC for an IP list when locating kdc's. Ask for the >name and use getaddrinfo to get all possible addresses instead. >--- > nsswitch/winbind_krb5_locator.c | 35 +++++++++++++++++++---------------- > 1 files changed, 19 insertions(+), 16 deletions(-) > >diff --git a/nsswitch/winbind_krb5_locator.c b/nsswitch/winbind_krb5_locator.c >index e921cae..385a156 100644 >--- a/nsswitch/winbind_krb5_locator.c >+++ b/nsswitch/winbind_krb5_locator.c >@@ -182,7 +182,8 @@ static krb5_error_code smb_krb5_locator_call_cbfunc(const char *name, > void *cbdata) > { > struct addrinfo *out = NULL; >- int ret; >+ int ret = 0; >+ struct addrinfo *res = NULL; > int count = 3; > > while (count) { >@@ -206,16 +207,25 @@ static krb5_error_code smb_krb5_locator_call_cbfunc(const char *name, > return KRB5_PLUGIN_NO_HANDLE; > } > >- ret = cbfunc(cbdata, out->ai_socktype, out->ai_addr); >+ for (res = out; res; res = res->ai_next) { >+ if (!res->ai_addr || res->ai_addrlen == 0) { >+ continue; >+ } >+ >+ ret = cbfunc(cbdata, res->ai_socktype, res->ai_addr); >+ if (ret) { > #ifdef DEBUG_KRB5 >- if (ret) { >- fprintf(stderr, "[%5u]: smb_krb5_locator_lookup: " >- "failed to call callback: %s (%d)\n", >- (unsigned int)getpid(), error_message(ret), ret); >- } >+ fprintf(stderr, "[%5u]: smb_krb5_locator_lookup: " >+ "failed to call callback: %s (%d)\n", >+ (unsigned int)getpid(), error_message(ret), ret); > #endif >+ break; >+ } >+ } > >- freeaddrinfo(out); >+ if (out) { >+ freeaddrinfo(out); >+ } > return ret; > } > >@@ -257,8 +267,7 @@ static bool ask_winbind(const char *realm, char **dcname) > > flags = WBC_LOOKUP_DC_KDC_REQUIRED | > WBC_LOOKUP_DC_IS_DNS_NAME | >- WBC_LOOKUP_DC_RETURN_DNS_NAME | >- WBC_LOOKUP_DC_IP_REQUIRED; >+ WBC_LOOKUP_DC_RETURN_DNS_NAME; > > wbc_status = wbcLookupDomainControllerEx(realm, NULL, NULL, flags, &dc_info); > >@@ -270,12 +279,6 @@ static bool ask_winbind(const char *realm, char **dcname) > return false; > } > >- if (dc_info->dc_address) { >- dc = dc_info->dc_address; >- if (dc[0] == '\\') dc++; >- if (dc[0] == '\\') dc++; >- } >- > if (!dc && dc_info->dc_unc) { > dc = dc_info->dc_unc; > if (dc[0] == '\\') dc++; >-- >1.7.7.3 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Flags:
obnox
:
review+
Actions:
View
Attachments on
bug 8897
: 7502