2010-03-23 12:40:55 +01:00
|
|
|
Index: krb5-1.8-alpha1/src/lib/krb5/os/hostaddr.c
|
2008-12-15 14:48:05 +01:00
|
|
|
===================================================================
|
2010-03-23 12:40:55 +01:00
|
|
|
--- krb5-1.8-alpha1.orig/src/lib/krb5/os/hostaddr.c
|
|
|
|
+++ krb5-1.8-alpha1/src/lib/krb5/os/hostaddr.c
|
|
|
|
@@ -44,7 +44,7 @@ krb5_os_hostaddr(krb5_context context, c
|
|
|
|
return KRB5_ERR_BAD_HOSTNAME;
|
2008-12-15 14:48:05 +01:00
|
|
|
|
|
|
|
memset (&hints, 0, sizeof (hints));
|
|
|
|
- hints.ai_flags = AI_NUMERICHOST;
|
|
|
|
+ hints.ai_flags = AI_NUMERICHOST | AI_ADDRCONFIG;
|
|
|
|
/* We don't care what kind at this point, really, but without
|
|
|
|
this, we can get back multiple sockaddrs per address, for
|
|
|
|
SOCK_DGRAM, SOCK_STREAM, and SOCK_RAW. I haven't checked if
|
2010-03-23 12:40:55 +01:00
|
|
|
Index: krb5-1.8-alpha1/src/lib/krb5/os/hst_realm.c
|
2008-12-15 14:48:05 +01:00
|
|
|
===================================================================
|
2010-03-23 12:40:55 +01:00
|
|
|
--- krb5-1.8-alpha1.orig/src/lib/krb5/os/hst_realm.c
|
|
|
|
+++ krb5-1.8-alpha1/src/lib/krb5/os/hst_realm.c
|
|
|
|
@@ -103,7 +103,7 @@ get_fq_hostname(char *buf, size_t bufsiz
|
2008-12-15 14:48:05 +01:00
|
|
|
int err;
|
|
|
|
|
|
|
|
memset (&hints, 0, sizeof (hints));
|
|
|
|
- hints.ai_flags = AI_CANONNAME;
|
|
|
|
+ hints.ai_flags = AI_CANONNAME | AI_ADDRCONFIG;
|
|
|
|
err = getaddrinfo (name, 0, &hints, &ai);
|
|
|
|
if (err)
|
2010-03-23 12:40:55 +01:00
|
|
|
return krb5int_translate_gai_error (err);
|
|
|
|
Index: krb5-1.8-alpha1/src/lib/krb5/os/locate_kdc.c
|
2008-12-15 14:48:05 +01:00
|
|
|
===================================================================
|
2010-03-23 12:40:55 +01:00
|
|
|
--- krb5-1.8-alpha1.orig/src/lib/krb5/os/locate_kdc.c
|
|
|
|
+++ krb5-1.8-alpha1/src/lib/krb5/os/locate_kdc.c
|
|
|
|
@@ -259,8 +259,9 @@ krb5int_add_host_to_list (struct addrlis
|
2008-12-15 14:48:05 +01:00
|
|
|
memset(&hint, 0, sizeof(hint));
|
|
|
|
hint.ai_family = family;
|
|
|
|
hint.ai_socktype = socktype;
|
|
|
|
+ hint.ai_flags = AI_ADDRCONFIG;
|
|
|
|
#ifdef AI_NUMERICSERV
|
|
|
|
- hint.ai_flags = AI_NUMERICSERV;
|
|
|
|
+ hint.ai_flags |= AI_NUMERICSERV;
|
|
|
|
#endif
|
2010-03-23 12:40:55 +01:00
|
|
|
result = snprintf(portbuf, sizeof(portbuf), "%d", ntohs(port));
|
|
|
|
if (SNPRINTF_OVERFLOW(result, sizeof(portbuf)))
|
|
|
|
Index: krb5-1.8-alpha1/src/lib/krb5/os/sn2princ.c
|
2008-12-15 14:48:05 +01:00
|
|
|
===================================================================
|
2010-03-23 12:40:55 +01:00
|
|
|
--- krb5-1.8-alpha1.orig/src/lib/krb5/os/sn2princ.c
|
|
|
|
+++ krb5-1.8-alpha1/src/lib/krb5/os/sn2princ.c
|
|
|
|
@@ -108,7 +108,7 @@ krb5_sname_to_principal(krb5_context con
|
2008-12-15 14:48:05 +01:00
|
|
|
|
2010-03-23 12:40:55 +01:00
|
|
|
memset(&hints, 0, sizeof(hints));
|
|
|
|
hints.ai_family = AF_INET;
|
|
|
|
- hints.ai_flags = AI_CANONNAME;
|
|
|
|
+ hints.ai_flags = AI_CANONNAME|AI_ADDRCONFIG;
|
|
|
|
try_getaddrinfo_again:
|
|
|
|
err = getaddrinfo(hostname, 0, &hints, &ai);
|
|
|
|
if (err) {
|