make pty_make_sane_hostname take sockaddr* arg instead of sockaddr_in*
authorKen Raeburn <raeburn@mit.edu>
Wed, 6 Dec 2000 09:46:49 +0000 (09:46 +0000)
committerKen Raeburn <raeburn@mit.edu>
Wed, 6 Dec 2000 09:46:49 +0000 (09:46 +0000)
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@12883 dc483132-0cff-0310-8789-dd5450dbe970

src/appl/bsd/ChangeLog
src/appl/bsd/krlogind.c
src/appl/bsd/krshd.c
src/appl/gssftp/ftpd/ChangeLog
src/appl/gssftp/ftpd/ftpd.c
src/appl/telnet/telnetd/ChangeLog
src/appl/telnet/telnetd/telnetd.c
src/util/pty/ChangeLog
src/util/pty/libpty.h
src/util/pty/sane_hostname.c

index 71130f23dcdbe9e37b2c1700661ad6df88d26436..05c91afb1fbddb22634da469483cabe6bac79fd4 100644 (file)
@@ -1,3 +1,9 @@
+2000-12-06  Ken Raeburn  <raeburn@mit.edu>
+
+       * krlogind.c (doit): Cast first argument to pty_make_sane_hostname
+       to sockaddr pointer.
+       * krshd.c (doit): Likewise.
+
 2000-11-01  Ezra Peisach  <epeisach@mit.edu>
 
        * configure.in: Update to autoconf 2 macro names:
index b3102bd181f9a27364493d8c9fb402c2903d5060..88446b3b39e4759e92e027ca1c34748b55859c35 100644 (file)
@@ -812,7 +812,7 @@ void doit(f, fromp)
         setenv("TERM",term, 1);
     }
 
-    retval = pty_make_sane_hostname(fromp, maxhostlen,
+    retval = pty_make_sane_hostname((struct sockaddr *) fromp, maxhostlen,
                                    stripdomain, always_ip,
                                    &rhost_sane);
     if (retval)
index cb745e307c52552963317dd11577a4fc048b173c..b2b4909029ac162f6a4c8841cc980dbbe8690213 100644 (file)
@@ -778,7 +778,7 @@ void doit(f, fromp)
        hostname[0] = '\0';
 
 #ifdef KERBEROS
-    status = pty_make_sane_hostname(fromp, maxhostlen,
+    status = pty_make_sane_hostname((struct sockaddr *) fromp, maxhostlen,
                                    stripdomain, always_ip, &sane_host);
     if (status) {
        error("failed make_sane_hostname: %s\n", error_message(status));
index 1273af0df0debc36a117e42a2e2ee2999b21ddac..94ea81743cec5342dd727dbf2cb0af7c856c3a27 100644 (file)
@@ -1,3 +1,8 @@
+2000-12-06  Ken Raeburn  <raeburn@mit.edu>
+
+       * ftpd.c (dolog): Cast first argument to pty_make_sane_hostname to
+       sockaddr pointer.
+
 2000-10-16  Ezra Peisach  <epeisach@mit.edu>
 
        * ftpd.c (reply): For gssapi connection, do not include NULL in
index 680c1844e5935fe2601331c43f496b6f4727463b..eefd3cb2afb075fd8a65ba13530c76449171e7e6 100644 (file)
@@ -1980,7 +1980,7 @@ dolog(sin)
                remotehost[0] = '\0';
        strncpy(rhost_addra, inet_ntoa(sin->sin_addr), sizeof (rhost_addra));
        rhost_addra[sizeof (rhost_addra) - 1] = '\0';
-       retval = pty_make_sane_hostname(sin, maxhostlen,
+       retval = pty_make_sane_hostname((struct sockaddr *) sin, maxhostlen,
                                        stripdomain, always_ip, &rhost_sane);
        if (retval) {
                fprintf(stderr, "make_sane_hostname: %s\n",
index f409ed411ad7adb38740897d881f4345d4af098b..c815eb0c445bb4ca9883695a47ac894d3e5c6969 100644 (file)
@@ -1,3 +1,8 @@
+2000-12-06  Ken Raeburn  <raeburn@mit.edu>
+
+       * telnetd.c (doit): Cast pty_make_sane_hostname first argument to
+       sockaddr pointer.
+
 2000-11-01  Ezra Peisach  <epeisach@mit.edu>
 
         * configure.in: Use AC_CHECK_HEADER and AC_CHECK_FUNC instead of
index f103488cb82a3bd22df654a1c425017500b19ccc..9a3dd3b7b54699b07ac1a1c89489b8bb7d915097 100644 (file)
@@ -987,7 +987,7 @@ pty_init();
        }
 #endif /* _SC_CRAY_SECURE_SYS */
 
-       retval = pty_make_sane_hostname(who, maxhostlen,
+       retval = pty_make_sane_hostname((struct sockaddr *) who, maxhostlen,
                                        stripdomain, always_ip,
                                        &rhost_sane);
        if (retval) {
index a6e1b80f85ea1bcdf5efbb2b0ee72f91a93e3efb..a7db011b063ec8de9507cadc8b4766d562868e47 100644 (file)
@@ -1,3 +1,9 @@
+2000-12-06  Ken Raeburn  <raeburn@mit.edu>
+
+       * sane_hostname.c (pty_make_sane_hostname, do_ntoa): Pass address
+       as sockaddr pointer.
+       * libpty.h (pty_make_sane_hostname): Update prototype.
+
 2000-11-01  Ezra Peisach  <epeisach@mit.edu>
 
        * configure.in: Quote macro use inside AC_CHECK_LIB. Change
index 5fccf016df83ffb409c0423e08fadde66b74b28c..5e1200bf527f5b19365faf5c246a92653944ede7 100644 (file)
@@ -49,7 +49,7 @@ long pty_cleanup(char *slave, int pid, int update_utmp);
 struct sockaddr_in;
 #endif
 
-long pty_make_sane_hostname(struct sockaddr_in *, int, int, int, char **);
+long pty_make_sane_hostname(struct sockaddr *, int, int, int, char **);
 #else /*__STDC__*/
 long pty_init();
 long pty_getpty();
index 43814df539cab6cfebc292e9a0dc55e455feb0eb..23955c06da7eff4a2454fefe9af75f9eea232385 100644 (file)
@@ -2,7 +2,7 @@
  * pty_make_sane_hostname: Make a sane hostname from an IP address.
  * This returns allocated memory!
  * 
- * Copyright 1999 by the Massachusetts Institute of Technology.
+ * Copyright 1999,2000 by the Massachusetts Institute of Technology.
  *
  * Permission to use, copy, modify, and distribute this software and
  * its documentation for any purpose and without fee is hereby
 #include <arpa/inet.h>
 
 static long
-do_ntoa(struct sockaddr_in *addr,
+do_ntoa(struct sockaddr *addr,
                     size_t hostlen,
                     char **out)
 {
-    strncpy(*out, inet_ntoa(addr->sin_addr), hostlen);
+    if (addr->sa_family == AF_INET)
+       strncpy(*out, inet_ntoa(((struct sockaddr_in *)addr)->sin_addr),
+               hostlen);
+    else
+       strncpy(*out, "??", hostlen);
     (*out)[hostlen - 1] = '\0';
     return 0;
 }
 
 long
-pty_make_sane_hostname(struct sockaddr_in *addr,
+pty_make_sane_hostname(struct sockaddr *addr,
                       int maxlen,
                       int strip_ldomain,
                       int always_ipaddr,
@@ -69,8 +73,11 @@ pty_make_sane_hostname(struct sockaddr_in *addr,
     if (always_ipaddr) {
        return do_ntoa(addr, ut_host_len, out);
     }
-    hp = gethostbyaddr((char *)&addr->sin_addr, sizeof (struct in_addr),
-                      addr->sin_family);
+    if (addr->sa_family == AF_INET)
+       hp = gethostbyaddr((char *)&((struct sockaddr_in *)addr)->sin_addr,
+                          sizeof (struct in_addr), addr->sa_family);
+    else
+       hp = NULL;
     if (hp == NULL) {
        return do_ntoa(addr, ut_host_len, out);
     }