pullup from trunk
authorTom Yu <tlyu@mit.edu>
Tue, 7 Dec 2004 22:38:55 +0000 (22:38 +0000)
committerTom Yu <tlyu@mit.edu>
Tue, 7 Dec 2004 22:38:55 +0000 (22:38 +0000)
ticket: 2795
version_fixed: 1.4

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/krb5-1-4@16916 dc483132-0cff-0310-8789-dd5450dbe970

src/lib/krb5/os/ChangeLog
src/lib/krb5/os/Makefile.in
src/lib/krb5/os/locate_kdc.c
src/lib/krb5/os/t_locate_kdc.c

index ea1a5a757b6e99080d50fc6897be949177e3ea9f..be64fbe79533a523257c682368378498139c4911 100644 (file)
@@ -1,3 +1,16 @@
+2004-11-19  Ken Raeburn  <raeburn@mit.edu>
+
+       * locate_kdc.c (krb5int_add_host_to_list): If debugging, log the
+       requested family and socket type.  If AI_NUMERICSERV is defined,
+       set it in ai_flags.  If getaddrinfo returns an error with
+       debugging enabled, log the error.
+       (krb5_locate_srv_conf_1): When logging an error from
+       add_host_to_list, include the corresponding error string.
+
+       * t_locate_kdc.c: Include port-sockets.h, instead of sys/socket.h,
+       netdb.h, netinet/in.h, and arpa/inet.h.
+       * Makefile.in ($(OUTPRE)t_locate_kdc.exe): New target.
+
 2004-10-20  Ken Raeburn  <raeburn@mit.edu>
 
        * locate_kdc.c: Include stdarg.h.
index 66d0dcdfd7f4978825a6b8ad33cff438120e6c0f..854f76eaf01edab133a4a2410a55267c4d0c8733 100644 (file)
@@ -185,6 +185,10 @@ t_locate_kdc: t_locate_kdc.o
        $(CC_LINK) $(ALL_CFLAGS) -o t_locate_kdc t_locate_kdc.o \
                $(KRB5_BASE_LIBS)
 t_locate_kdc.o: t_locate_kdc.c locate_kdc.c
+$(OUTPRE)t_locate_kdc.exe: $(OUTPRE)t_locate_kdc.obj \
+               $(OUTPRE)dnssrv.obj $(OUTPRE)dnsglue.obj \
+               $(KLIB) $(PLIB) $(CLIB) $(SLIB)
+       link $(EXE_LINKOPTS) -out:$@ $** ws2_32.lib $(DNSLIBS)
 
 LCLINT=lclint
 LCLINTOPTS= -warnposix \
index 25334ddb9302bda91b895d0dd211565ab0c42ded..dfc45cd2324cdb6fb9ee453e87eaa91d579a9918 100644 (file)
@@ -260,17 +260,24 @@ krb5int_add_host_to_list (struct addrlist *lp, const char *hostname,
     int err;
     char portbuf[10], secportbuf[10];
 
-    Tprintf ("adding hostname %s, ports %d,%d\n", hostname,
-            ntohs (port), ntohs (secport));
+    Tprintf ("adding hostname %s, ports %d,%d, family %d, socktype %d\n",
+            hostname, ntohs (port), ntohs (secport),
+            family, socktype);
 
     memset(&hint, 0, sizeof(hint));
     hint.ai_family = family;
     hint.ai_socktype = socktype;
+#ifdef AI_NUMERICSERV
+    hint.ai_flags = AI_NUMERICSERV;
+#endif
     sprintf(portbuf, "%d", ntohs(port));
     sprintf(secportbuf, "%d", ntohs(secport));
     err = getaddrinfo (hostname, portbuf, &hint, &addrs);
-    if (err)
+    if (err) {
+       Tprintf ("\tgetaddrinfo(\"%s\", \"%s\", ...)\n\treturns %d: %s\n",
+                hostname, portbuf, err, gai_strerror (err));
        return translate_ai_error (err);
+    }
     anext = 0;
     for (a = addrs; a != 0 && err == 0; a = anext) {
        anext = a->ai_next;
@@ -460,7 +467,8 @@ krb5_locate_srv_conf_1(krb5_context context, const krb5_data *realm,
                                         SOCK_STREAM, family);
        }
        if (code) {
-           Tprintf ("error %d returned from add_host_to_list\n", code);
+           Tprintf ("error %d (%s) returned from add_host_to_list\n", code,
+                    error_message (code));
            if (hostlist)
                profile_free_list (hostlist);
            if (masterlist)
@@ -534,8 +542,9 @@ krb5_locate_srv_dns_1 (const krb5_data *realm,
                                 (strcmp("_tcp", protocol)
                                  ? SOCK_DGRAM
                                  : SOCK_STREAM), family);
-       if (code)
+       if (code) {
            break;
+       }
        if (entry == head) {
            free(entry->host);
            free(entry);
index 03dac07ef42cc46ddf63fbb52b9b2c7015149771..7d5d554fabcf4f0dacd44b927dd2c930ac512f2d 100644 (file)
@@ -1,11 +1,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <sys/types.h>
-#include <sys/socket.h>
-#include <netdb.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
+#include "port-sockets.h"
 #include <com_err.h>
 
 #define TEST