Diff for /libaitio/src/Attic/tools.c between versions 1.11 and 1.12

version 1.11, 2012/05/14 12:49:21 version 1.12, 2012/05/14 16:14:13
Line 480  io_n2addr(io_sockaddr_t * __restrict addr, ait_val_t * Line 480  io_n2addr(io_sockaddr_t * __restrict addr, ait_val_t *
 io_sockaddr_t *  io_sockaddr_t *
 io_gethostbyname(const char *psHost, u_short port, io_sockaddr_t * __restrict addr)  io_gethostbyname(const char *psHost, u_short port, io_sockaddr_t * __restrict addr)
 {  {
        struct hostent *host;        struct hostent *host = NULL;
   
         if (!psHost || !addr)          if (!psHost || !addr)
                 return NULL;                  return NULL;
   
         /* resolver */  
         if (!addr->sa.sa_family)  
                 host = gethostbyname(psHost);  
         else          else
                host = gethostbyname2(psHost, addr->sa.sa_family);                memset(addr, 0, sizeof(io_sockaddr_t));
        if (!host) { 
                io_SetErr(EINVAL, "Resolver #%d - %s", h_errno, hstrerror(h_errno)); 
                return NULL; 
        } 
   
        memset(addr, 0, sizeof(io_sockaddr_t));        if (*psHost != '/') {
        switch (host->h_addrtype) {                /* resolver */
                 if (!addr->sa.sa_family)
                         host = gethostbyname(psHost);
                 else
                         host = gethostbyname2(psHost, addr->sa.sa_family);
                 if (!host) {
                         io_SetErr(EINVAL, "Resolver #%d - %s", h_errno, hstrerror(h_errno));
                         return NULL;
                 } else
                         addr->sa.sa_family = host->h_addrtype;
         } else
                 addr->sa.sa_family = AF_LOCAL;
 
         switch (addr->sa.sa_family) {
                 case AF_INET:                  case AF_INET:
                         addr->sin.sin_len = sizeof(struct sockaddr_in);                          addr->sin.sin_len = sizeof(struct sockaddr_in);
                         addr->sin.sin_family = AF_INET;                          addr->sin.sin_family = AF_INET;
Line 509  io_gethostbyname(const char *psHost, u_short port, io_ Line 514  io_gethostbyname(const char *psHost, u_short port, io_
                         addr->sin6.sin6_port = htons(port);                          addr->sin6.sin6_port = htons(port);
                         memcpy(&addr->sin6.sin6_addr, host->h_addr, sizeof addr->sin6.sin6_addr);                          memcpy(&addr->sin6.sin6_addr, host->h_addr, sizeof addr->sin6.sin6_addr);
                         return addr;                          return addr;
                   case AF_LOCAL:
                           addr->sun.sun_len = sizeof(struct sockaddr_un);
                           addr->sun.sun_family = AF_LOCAL;
                           memset(addr->sun.sun_path, 0, sizeof addr->sun.sun_path);
                           snprintf(addr->sun.sun_path, sizeof addr->sun.sun_path, "%s-%hu", psHost, port);
                           return addr;
                 default:                  default:
                        io_SetErr(EPROTONOSUPPORT, "Unsuported address family %d",                         io_SetErr(EPROTONOSUPPORT, "Unsuported address family %d", addr->sa.sa_family);
                                        host->h_addrtype); 
                         break;                          break;
         }          }
   

Removed from v.1.11  
changed lines
  Added in v.1.12


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>