diff options
| author | Ken Raeburn <raeburn@mit.edu> | 2001-05-08 03:50:53 +0000 |
|---|---|---|
| committer | Ken Raeburn <raeburn@mit.edu> | 2001-05-08 03:50:53 +0000 |
| commit | f31e7aec76cd20d55f39ec44551ad6f8c4199e25 (patch) | |
| tree | 8efd2382753961cb3a4b452a0c159bf186800caf /src/lib | |
| parent | d88aba1ad17ed2b956f4b85fa71190045aefcebc (diff) | |
| download | krb5-f31e7aec76cd20d55f39ec44551ad6f8c4199e25.tar.gz krb5-f31e7aec76cd20d55f39ec44551ad6f8c4199e25.tar.xz krb5-f31e7aec76cd20d55f39ec44551ad6f8c4199e25.zip | |
* locate_kdc.c (add_sockaddr_to_list) [TEST]: If getnameinfo is available, use
it instead of inet_ntoa to get the printable address.
(add_host_to_list): Share declaration sections as much as possible. Propagate
errors back correctly from gethostbyname path.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@13232 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/krb5/os/ChangeLog | 9 | ||||
| -rw-r--r-- | src/lib/krb5/os/locate_kdc.c | 32 |
2 files changed, 28 insertions, 13 deletions
diff --git a/src/lib/krb5/os/ChangeLog b/src/lib/krb5/os/ChangeLog index 8b1627ce8..244267ba3 100644 --- a/src/lib/krb5/os/ChangeLog +++ b/src/lib/krb5/os/ChangeLog @@ -1,3 +1,12 @@ +2001-05-07 Ken Raeburn <raeburn@mit.edu> + + * locate_kdc.c (add_sockaddr_to_list) [TEST]: If getnameinfo is + available, use it instead of inet_ntoa to get the printable + address. + (add_host_to_list): Share declaration sections as much as + possible. Propagate errors back correctly from gethostbyname + path. + 2001-04-26 Ken Raeburn <raeburn@mit.edu> * hst_realm.c (T_TXT): Define if not defined by header files. diff --git a/src/lib/krb5/os/locate_kdc.c b/src/lib/krb5/os/locate_kdc.c index 96a914bac..7b6ec221b 100644 --- a/src/lib/krb5/os/locate_kdc.c +++ b/src/lib/krb5/os/locate_kdc.c @@ -184,9 +184,21 @@ add_sockaddr_to_list (struct addrlist *lp, const struct sockaddr *addr, #ifdef TEST fprintf (stderr, "\tadding sockaddr family %2d, len %d", addr->sa_family, len); +#ifdef HAVE_GETNAMEINFO + { + char name[NI_MAXHOST]; + int err; + + err = getnameinfo (addr, len, name, sizeof (name), NULL, 0, + NI_NUMERICHOST | NI_NUMERICSERV); + if (err == 0) + fprintf (stderr, "\t%s", name); + } +#else if (addr->sa_family == AF_INET) fprintf (stderr, "\t%s", inet_ntoa (((const struct sockaddr_in *)addr)->sin_addr)); +#endif fprintf (stderr, "\n"); #endif @@ -270,14 +282,18 @@ add_host_to_list (struct addrlist *lp, const char *hostname, int port, int secport) { #ifdef HAVE_GETADDRINFO - int err; struct addrinfo *addrs, *a; +#else + struct hostent *hp; +#endif + int err; #ifdef TEST fprintf (stderr, "adding hostname %s, ports %d,%d\n", hostname, ntohs (port), ntohs (secport)); #endif +#ifdef HAVE_GETADDRINFO err = getaddrinfo (hostname, NULL, NULL, &addrs); if (err) return translate_ai_error (err); @@ -296,20 +312,10 @@ add_host_to_list (struct addrlist *lp, const char *hostname, break; } freeaddrinfo (addrs); - return err; #else - /* If we don't have getaddrinfo, we're not bothering with IPv6 - support. */ - int err; - struct hostent *hp; - int i; - -#ifdef TEST - fprintf (stderr, "adding hostname %s, ports %d,%d\n", hostname, port, secport); -#endif - hp = gethostbyname (hostname); if (hp != NULL) { + int i; for (i = 0; hp->h_addr_list[i] != 0; i++) { struct sockaddr_in sin4; @@ -332,8 +338,8 @@ add_host_to_list (struct addrlist *lp, const char *hostname, break; } } - return 0; #endif + return err; } /* |
