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

Diff for /src/usr.bin/getent/getent.c between version 1.17 and 1.18

version 1.17, 2018/09/25 19:48:14 version 1.18, 2018/09/25 19:51:39
Line 228 
Line 228 
         printfmtstrings(he->h_aliases, "  ", " ", "%-16s  %s", buf, he->h_name);          printfmtstrings(he->h_aliases, "  ", " ", "%-16s  %s", buf, he->h_name);
 }  }
 static int  static int
 hostsaddrinfo(char* name)  hostsaddrinfo(const char *name)
 {  {
         struct addrinfo  hints, *res, *res0;          struct addrinfo  hints, *res, *res0;
         void            *src;  
         int              rv;  
         char             buf[INET6_ADDRSTRLEN];          char             buf[INET6_ADDRSTRLEN];
           int              rv;
   
         rv = RV_NOTFOUND;          rv = RV_NOTFOUND;
         memset(buf, 0, sizeof(buf));          memset(buf, 0, sizeof(buf));
         memset(&hints, 0, sizeof(hints));          memset(&hints, 0, sizeof(hints));
         hints.ai_family = PF_UNSPEC;          hints.ai_family = AF_UNSPEC;
         hints.ai_socktype = SOCK_DGRAM;          hints.ai_socktype = SOCK_DGRAM;
   
         if (getaddrinfo(name, NULL, &hints, &res0) == 0) {          if (getaddrinfo(name, NULL, &hints, &res0) != 0)
                 for (res = res0; res; res = res->ai_next) {                  return (rv);
                         switch (res->ai_family) {          for (res = res0; res; res = res->ai_next) {
                         case AF_INET:                  if ((res->ai_family != AF_INET6 && res->ai_family != AF_INET) ||
                                 src = &((struct sockaddr_in*)                      getnameinfo(res->ai_addr, res->ai_addrlen, buf, sizeof(buf),
                                     res->ai_addr)->sin_addr;                      NULL, 0, NI_NUMERICHOST) != 0)
                                 break;                          strlcpy(buf, "# unknown", sizeof(buf));
                         case AF_INET6:                  else
                                 src = &((struct sockaddr_in6*)                          rv = RV_OK;
                                     res->ai_addr)->sin6_addr;                  printf("%-39s %s\n", buf, name);
                                 break;  
                         default: /* not reached */  
                                 src = NULL;  
                         }  
                         if (src==NULL || inet_ntop(res->ai_family, src, buf,  
                             sizeof(buf)) == NULL)  
                                 strlcpy(buf, "# unknown", sizeof(buf));  
                         else  
                                 rv = RV_OK;  
                         printf("%-39s %s\n", buf, name);  
                 }  
                 freeaddrinfo(res0);  
         }          }
           freeaddrinfo(res0);
   
         return (rv);          return (rv);
 }  }

Legend:
Removed from v.1.17  
changed lines
  Added in v.1.18