[BACK]Return to canohost.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / ssh

Diff for /src/usr.bin/ssh/canohost.c between version 1.31 and 1.31.2.3

version 1.31, 2002/02/27 21:23:13 version 1.31.2.3, 2003/04/03 22:35:16
Line 38 
Line 38 
         /* Get IP address of client. */          /* Get IP address of client. */
         fromlen = sizeof(from);          fromlen = sizeof(from);
         memset(&from, 0, sizeof(from));          memset(&from, 0, sizeof(from));
         if (getpeername(socket, (struct sockaddr *) &from, &fromlen) < 0) {          if (getpeername(socket, (struct sockaddr *)&from, &fromlen) < 0) {
                 debug("getpeername failed: %.100s", strerror(errno));                  debug("getpeername failed: %.100s", strerror(errno));
                 fatal_cleanup();                  fatal_cleanup();
         }          }
         if (from.ss_family == AF_INET)  
                 check_ip_options(socket, ntop);  
   
         if (getnameinfo((struct sockaddr *)&from, fromlen, ntop, sizeof(ntop),          if (getnameinfo((struct sockaddr *)&from, fromlen, ntop, sizeof(ntop),
             NULL, 0, NI_NUMERICHOST) != 0)              NULL, 0, NI_NUMERICHOST) != 0)
                 fatal("get_remote_hostname: getnameinfo NI_NUMERICHOST failed");                  fatal("get_remote_hostname: getnameinfo NI_NUMERICHOST failed");
   
           if (from.ss_family == AF_INET)
                   check_ip_options(socket, ntop);
   
         debug3("Trying to reverse map address %.100s.", ntop);          debug3("Trying to reverse map address %.100s.", ntop);
         /* Map the IP address to a host name. */          /* Map the IP address to a host name. */
         if (getnameinfo((struct sockaddr *)&from, fromlen, name, sizeof(name),          if (getnameinfo((struct sockaddr *)&from, fromlen, name, sizeof(name),
             NULL, 0, NI_NAMEREQD) != 0) {              NULL, 0, NI_NAMEREQD) != 0) {
                 /* Host name not found.  Use ip address. */                  /* Host name not found.  Use ip address. */
   #if 0
                 log("Could not reverse map address %.100s.", ntop);                  log("Could not reverse map address %.100s.", ntop);
   #endif
                 return xstrdup(ntop);                  return xstrdup(ntop);
         }          }
   
Line 177 
Line 180 
 }  }
   
 /*  /*
  * Returns the remote IP-address of socket as a string.  The returned   * Returns the local/remote IP-address/hostname of socket as a string.
  * string must be freed.   * The returned string must be freed.
  */   */
 static char *  static char *
 get_socket_address(int socket, int remote, int flags)  get_socket_address(int socket, int remote, int flags)
Line 193 
Line 196 
   
         if (remote) {          if (remote) {
                 if (getpeername(socket, (struct sockaddr *)&addr, &addrlen)                  if (getpeername(socket, (struct sockaddr *)&addr, &addrlen)
                     < 0) {                      < 0)
                         debug("get_socket_ipaddr: getpeername failed: %.100s",  
                             strerror(errno));  
                         return NULL;                          return NULL;
                 }  
         } else {          } else {
                 if (getsockname(socket, (struct sockaddr *)&addr, &addrlen)                  if (getsockname(socket, (struct sockaddr *)&addr, &addrlen)
                     < 0) {                      < 0)
                         debug("get_socket_ipaddr: getsockname failed: %.100s",  
                             strerror(errno));  
                         return NULL;                          return NULL;
                 }  
         }          }
         /* Get the address in ascii. */          /* Get the address in ascii. */
         if (getnameinfo((struct sockaddr *)&addr, addrlen, ntop, sizeof(ntop),          if (getnameinfo((struct sockaddr *)&addr, addrlen, ntop, sizeof(ntop),
             NULL, 0, flags) != 0) {              NULL, 0, flags) != 0) {
                 error("get_socket_ipaddr: getnameinfo %d failed", flags);                  error("get_socket_address: getnameinfo %d failed", flags);
                 return NULL;                  return NULL;
         }          }
         return xstrdup(ntop);          return xstrdup(ntop);
Line 218 
Line 215 
 char *  char *
 get_peer_ipaddr(int socket)  get_peer_ipaddr(int socket)
 {  {
         return get_socket_address(socket, 1, NI_NUMERICHOST);          char *p;
   
           if ((p = get_socket_address(socket, 1, NI_NUMERICHOST)) != NULL)
                   return p;
           return xstrdup("UNKNOWN");
 }  }
   
 char *  char *
 get_local_ipaddr(int socket)  get_local_ipaddr(int socket)
 {  {
         return get_socket_address(socket, 0, NI_NUMERICHOST);          char *p;
   
           if ((p = get_socket_address(socket, 0, NI_NUMERICHOST)) != NULL)
                   return p;
           return xstrdup("UNKNOWN");
 }  }
   
 char *  char *
Line 287 
Line 292 
                         return 0;                          return 0;
                 }                  }
         } else {          } else {
                 if (getpeername(sock, (struct sockaddr *) & from, &fromlen) < 0) {                  if (getpeername(sock, (struct sockaddr *)&from, &fromlen) < 0) {
                         debug("getpeername failed: %.100s", strerror(errno));                          debug("getpeername failed: %.100s", strerror(errno));
                         fatal_cleanup();                          fatal_cleanup();
                 }                  }

Legend:
Removed from v.1.31  
changed lines
  Added in v.1.31.2.3