Diff for /ansh/src/ansh3d.c between versions 1.2 and 1.3

version 1.2, 2011/10/17 20:14:02 version 1.3, 2012/01/23 10:34:12
Line 121  hook_error(void *root, void *arg) Line 121  hook_error(void *root, void *arg)
 int  int
 main(int argc, char **argv)  main(int argc, char **argv)
 {  {
        struct sockaddr sa = { 0 };        io_sockaddr_t sa;
        struct sockaddr_in *sin4 = (struct sockaddr_in*) &sa; 
        struct sockaddr_in6 *sin6 = (struct sockaddr_in6*) &sa; 
         struct hostent *host;          struct hostent *host;
         struct passwd *pass;          struct passwd *pass;
         int fd, h = 0, uid = 0, gid = 0;          int fd, h = 0, uid = 0, gid = 0;
Line 131  main(int argc, char **argv) Line 129  main(int argc, char **argv)
         char ch, szUser[STRSIZ] = "root", szChroot[STRSIZ] = "/";          char ch, szUser[STRSIZ] = "root", szChroot[STRSIZ] = "/";
         struct sigaction sact;          struct sigaction sact;
   
           memset(&sa, 0, sizeof sa);
         strlcpy(Key, DEFAULT_KEY, sizeof Key);          strlcpy(Key, DEFAULT_KEY, sizeof Key);
   
         while ((ch = getopt(argc, argv, "hvubt:a:i:U:C:k:")) != -1)          while ((ch = getopt(argc, argv, "hvubt:a:i:U:C:k:")) != -1)
Line 172  main(int argc, char **argv) Line 171  main(int argc, char **argv)
                                 }                                  }
                                 switch (host->h_addrtype) {                                  switch (host->h_addrtype) {
                                         case AF_INET:                                          case AF_INET:
                                                sin4->sin_len = sizeof(struct sockaddr_in);                                                sa.sin.sin_len = sizeof(struct sockaddr_in);
                                                sin4->sin_family = AF_INET;                                                sa.sin.sin_family = AF_INET;
                                                memcpy(&sin4->sin_addr.s_addr, host->h_addr, host->h_length);                                                memcpy(&sa.sin.sin_addr.s_addr, host->h_addr, host->h_length);
                                                 break;                                                  break;
                                         case AF_INET6:                                          case AF_INET6:
                                                sin6->sin6_len = sizeof(struct sockaddr_in6);                                                sa.sin6.sin6_len = sizeof(struct sockaddr_in6);
                                                sin6->sin6_family = AF_INET6;                                                sa.sin6.sin6_family = AF_INET6;
                                                memcpy(&sin6->sin6_addr.s6_addr, host->h_addr, host->h_length);                                                memcpy(&sa.sin6.sin6_addr.s6_addr, host->h_addr, host->h_length);
                                                 break;                                                  break;
                                         default:                                          default:
                                                 printf("Error:: Unknown address type %d !!!\n", host->h_addrtype);                                                  printf("Error:: Unknown address type %d !!!\n", host->h_addrtype);
Line 204  main(int argc, char **argv) Line 203  main(int argc, char **argv)
         argv += optind;          argv += optind;
   
         /* sanity check for openned descriptor */          /* sanity check for openned descriptor */
        if (!sa.sa_family) {        if (!sa.sa.sa_family) {
                sin4->sin_len = sizeof(struct sockaddr_in);                sa.sin.sin_len = sizeof(struct sockaddr_in);
                sin4->sin_family = AF_INET;                sa.sin.sin_family = AF_INET;
         }          }
   
         /* catch signals */          /* catch signals */

Removed from v.1.2  
changed lines
  Added in v.1.3


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