mirror of
https://github.com/samba-team/samba.git
synced 2025-12-02 00:23:50 +03:00
r2058: Merge heimdal krb5_locate_kdc-fix over from trunk/3_0 although
krb5_locate_kdc is (yet) an unused function in Samba4. Guenther
This commit is contained in:
committed by
Gerald (Jerry) Carter
parent
7e18ca7285
commit
fe93f58dfe
@@ -289,6 +289,7 @@ if test x"$with_ads_support" != x"no"; then
|
|||||||
AC_CHECK_FUNC_EXT(krb5_verify_checksum, $KRB5_LIBS)
|
AC_CHECK_FUNC_EXT(krb5_verify_checksum, $KRB5_LIBS)
|
||||||
AC_CHECK_FUNC_EXT(krb5_c_verify_checksum, $KRB5_LIBS)
|
AC_CHECK_FUNC_EXT(krb5_c_verify_checksum, $KRB5_LIBS)
|
||||||
AC_CHECK_FUNC_EXT(krb5_ticket_get_authorization_data_type, $KRB5_LIBS)
|
AC_CHECK_FUNC_EXT(krb5_ticket_get_authorization_data_type, $KRB5_LIBS)
|
||||||
|
AC_CHECK_FUNC_EXT(krb5_krbhst_get_addrinfo, $KRB5_LIBS)
|
||||||
|
|
||||||
LIBS="$LIBS $KRB5_LIBS"
|
LIBS="$LIBS $KRB5_LIBS"
|
||||||
|
|
||||||
|
|||||||
@@ -181,6 +181,7 @@
|
|||||||
krb5_error_code rc;
|
krb5_error_code rc;
|
||||||
int num_kdcs, i;
|
int num_kdcs, i;
|
||||||
struct sockaddr *sa;
|
struct sockaddr *sa;
|
||||||
|
struct addrinfo **ai;
|
||||||
|
|
||||||
*addr_pp = NULL;
|
*addr_pp = NULL;
|
||||||
*naddrs = 0;
|
*naddrs = 0;
|
||||||
@@ -210,10 +211,19 @@
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
*addr_pp = malloc(sizeof(struct sockaddr) * num_kdcs);
|
||||||
memset(*addr_pp, '\0', sizeof(struct sockaddr) * num_kdcs );
|
memset(*addr_pp, '\0', sizeof(struct sockaddr) * num_kdcs );
|
||||||
|
|
||||||
for (i = 0; i < num_kdcs && (rc = krb5_krbhst_next(ctx, hnd, &hinfo) == 0); i++) {
|
for (i = 0; i < num_kdcs && (rc = krb5_krbhst_next(ctx, hnd, &hinfo) == 0); i++) {
|
||||||
if (hinfo->ai->ai_family == AF_INET)
|
|
||||||
|
#if defined(HAVE_KRB5_KRBHST_GET_ADDRINFO)
|
||||||
|
rc = krb5_krbhst_get_addrinfo(ctx, hinfo, ai);
|
||||||
|
if (rc) {
|
||||||
|
DEBUG(0,("krb5_krbhst_get_addrinfo failed: %s\n", error_message(rc)));
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
if (hinfo->ai && hinfo->ai->ai_family == AF_INET)
|
||||||
memcpy(&sa[i], hinfo->ai->ai_addr, sizeof(struct sockaddr));
|
memcpy(&sa[i], hinfo->ai->ai_addr, sizeof(struct sockaddr));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user