Diff for /embedaddon/quagga/lib/sockunion.c between versions 1.1.1.1 and 1.1.1.2

version 1.1.1.1, 2012/02/21 17:26:12 version 1.1.1.2, 2012/10/09 09:22:28
Line 297  sockunion_sizeof (union sockunion *su) Line 297  sockunion_sizeof (union sockunion *su)
 }  }
   
 /* return sockunion structure : this function should be revised. */  /* return sockunion structure : this function should be revised. */
static char *static const char *
sockunion_log (union sockunion *su)sockunion_log (union sockunion *su, char *buf, size_t len)
 {  {
   static char buf[SU_ADDRSTRLEN];  
   
   switch (su->sa.sa_family)     switch (su->sa.sa_family) 
     {      {
     case AF_INET:      case AF_INET:
      snprintf (buf, SU_ADDRSTRLEN, "%s", inet_ntoa (su->sin.sin_addr));      return inet_ntop(AF_INET, &su->sin.sin_addr, buf, len);
      break;
 #ifdef HAVE_IPV6  #ifdef HAVE_IPV6
     case AF_INET6:      case AF_INET6:
      snprintf (buf, SU_ADDRSTRLEN, "%s",      return inet_ntop(AF_INET6, &(su->sin6.sin6_addr), buf, len);
                inet_ntop (AF_INET6, &(su->sin6.sin6_addr), buf, SU_ADDRSTRLEN)); 
       break;        break;
 #endif /* HAVE_IPV6 */  #endif /* HAVE_IPV6 */
   
     default:      default:
      snprintf (buf, SU_ADDRSTRLEN, "af_unknown %d ", su->sa.sa_family);      snprintf (buf, len, "af_unknown %d ", su->sa.sa_family);
      break;      return buf;
     }      }
   return (XSTRDUP (MTYPE_TMP, buf));  
 }  }
   
 /* sockunion_connect returns  /* sockunion_connect returns
Line 379  sockunion_connect (int fd, union sockunion *peersu, un Line 376  sockunion_connect (int fd, union sockunion *peersu, un
     {      {
       if (errno != EINPROGRESS)        if (errno != EINPROGRESS)
         {          {
             char str[SU_ADDRSTRLEN];
           zlog_info ("can't connect to %s fd %d : %s",            zlog_info ("can't connect to %s fd %d : %s",
                     sockunion_log (&su), fd, safe_strerror (errno));                     sockunion_log (&su, str, sizeof str),
                      fd, safe_strerror (errno));
           return connect_error;            return connect_error;
         }          }
     }      }
Line 565  sockopt_minttl (int family, int sock, int minttl) Line 564  sockopt_minttl (int family, int sock, int minttl)
   
   errno = EOPNOTSUPP;    errno = EOPNOTSUPP;
   return -1;    return -1;
   }
   
   int
   sockopt_v6only (int family, int sock)
   {
     int ret, on = 1;
   
   #ifdef HAVE_IPV6
   #ifdef IPV6_V6ONLY
     if (family == AF_INET6)
       {
         ret = setsockopt (sock, IPPROTO_IPV6, IPV6_V6ONLY,
                           (void *) &on, sizeof (int));
         if (ret < 0)
           {
             zlog (NULL, LOG_WARNING, "can't set sockopt IPV6_V6ONLY "
                       "to socket %d", sock);
             return -1;
           }
         return 0;
       }
   #endif /* IPV6_V6ONLY */
   #endif /* HAVE_IPV6 */
     return 0;
 }  }
   
 /* If same family and same prefix return 1. */  /* If same family and same prefix return 1. */

Removed from v.1.1.1.1  
changed lines
  Added in v.1.1.1.2


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