[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.39 and 1.40

version 1.39, 2004/03/31 21:58:47 version 1.40, 2004/06/21 17:36:31
Line 27 
Line 27 
  */   */
   
 static char *  static char *
 get_remote_hostname(int socket, int use_dns)  get_remote_hostname(int sock, int use_dns)
 {  {
         struct sockaddr_storage from;          struct sockaddr_storage from;
         int i;          int i;
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(sock, (struct sockaddr *)&from, &fromlen) < 0) {
                 debug("getpeername failed: %.100s", strerror(errno));                  debug("getpeername failed: %.100s", strerror(errno));
                 cleanup_exit(255);                  cleanup_exit(255);
         }          }
   
         if (from.ss_family == AF_INET)          if (from.ss_family == AF_INET)
                 check_ip_options(socket, ntop);                  check_ip_options(sock, 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)
Line 132 
Line 132 
  */   */
 /* IPv4 only */  /* IPv4 only */
 static void  static void
 check_ip_options(int socket, char *ipaddr)  check_ip_options(int sock, char *ipaddr)
 {  {
         u_char options[200];          u_char options[200];
         char text[sizeof(options) * 3 + 1];          char text[sizeof(options) * 3 + 1];
Line 145 
Line 145 
         else          else
                 ipproto = IPPROTO_IP;                  ipproto = IPPROTO_IP;
         option_size = sizeof(options);          option_size = sizeof(options);
         if (getsockopt(socket, ipproto, IP_OPTIONS, options,          if (getsockopt(sock, ipproto, IP_OPTIONS, options,
             &option_size) >= 0 && option_size != 0) {              &option_size) >= 0 && option_size != 0) {
                 text[0] = '\0';                  text[0] = '\0';
                 for (i = 0; i < option_size; i++)                  for (i = 0; i < option_size; i++)
Line 194 
Line 194 
  * The returned 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 sock, int remote, int flags)
 {  {
         struct sockaddr_storage addr;          struct sockaddr_storage addr;
         socklen_t addrlen;          socklen_t addrlen;
Line 205 
Line 205 
         memset(&addr, 0, sizeof(addr));          memset(&addr, 0, sizeof(addr));
   
         if (remote) {          if (remote) {
                 if (getpeername(socket, (struct sockaddr *)&addr, &addrlen)                  if (getpeername(sock, (struct sockaddr *)&addr, &addrlen)
                     < 0)                      < 0)
                         return NULL;                          return NULL;
         } else {          } else {
                 if (getsockname(socket, (struct sockaddr *)&addr, &addrlen)                  if (getsockname(sock, (struct sockaddr *)&addr, &addrlen)
                     < 0)                      < 0)
                         return NULL;                          return NULL;
         }          }
Line 223 
Line 223 
 }  }
   
 char *  char *
 get_peer_ipaddr(int socket)  get_peer_ipaddr(int sock)
 {  {
         char *p;          char *p;
   
         if ((p = get_socket_address(socket, 1, NI_NUMERICHOST)) != NULL)          if ((p = get_socket_address(sock, 1, NI_NUMERICHOST)) != NULL)
                 return p;                  return p;
         return xstrdup("UNKNOWN");          return xstrdup("UNKNOWN");
 }  }
   
 char *  char *
 get_local_ipaddr(int socket)  get_local_ipaddr(int sock)
 {  {
         char *p;          char *p;
   
         if ((p = get_socket_address(socket, 0, NI_NUMERICHOST)) != NULL)          if ((p = get_socket_address(sock, 0, NI_NUMERICHOST)) != NULL)
                 return p;                  return p;
         return xstrdup("UNKNOWN");          return xstrdup("UNKNOWN");
 }  }
   
 char *  char *
 get_local_name(int socket)  get_local_name(int sock)
 {  {
         return get_socket_address(socket, 0, NI_NAMEREQD);          return get_socket_address(sock, 0, NI_NAMEREQD);
 }  }
   
 /*  /*

Legend:
Removed from v.1.39  
changed lines
  Added in v.1.40