v4 = GNUNET_malloc (sizeof (struct sockaddr_in));
memset (v4, 0, sizeof (struct sockaddr_in));
v4->sin_family = AF_INET;
+#if HAVE_SOCKADDR_IN_SIN_LEN
+ v4->sin_len = (u_char) sizeof (struct sockaddr_in);
+#endif
memcpy (&v4->sin_addr,
&((char *) &v6->sin6_addr)[sizeof (struct in6_addr) -
sizeof (struct in_addr)],
unixpath,
slen);
un->sun_path[slen] = '\0';
- slen += sizeof (sa_family_t);
+ slen = SUN_LEN (un);
+#if HAVE_SOCKADDR_IN_SIN_LEN
+ un->sun_len = (u_char) slen;
+#endif
#if LINUX
un->sun_path[0] = '\0';
- slen = sizeof (struct sockaddr_un);
#endif
ret = GNUNET_malloc (sizeof (struct GNUNET_CONNECTION_Handle));
ret->cfg = cfg;
GNUNET_assert (hp->h_length == sizeof (struct in_addr));
memset (&a4, 0, sizeof (a4));
a4.sin_family = AF_INET;
+#if HAVE_SOCKADDR_IN_SIN_LEN
+ a4.sin_len = (u_char) sizeof (struct sockaddr_in);
+#endif
memcpy (&a4.sin_addr, hp->h_addr_list[0], hp->h_length);
GNUNET_SERVER_transmit_context_append_data (tc,
&a4,
GNUNET_assert (hp->h_length == sizeof (struct in6_addr));
memset (&a6, 0, sizeof (a6));
a6.sin6_family = AF_INET6;
+#if HAVE_SOCKADDR_IN_SIN_LEN
+ a6.sin6_len = (u_char) sizeof (struct sockaddr_in6);
+#endif
memcpy (&a6.sin6_addr, hp->h_addr_list[0], hp->h_length);
GNUNET_SERVER_transmit_context_append_data (tc,
&a6,
GNUNET_assert (hp->h_length == sizeof (struct in_addr));
memset (&addr, 0, sizeof (addr));
addr.sin_family = AF_INET;
+#if HAVE_SOCKADDR_IN_SIN_LEN
+ addr.sin_len = (u_char) sizeof (struct sockaddr_in);
+#endif
memcpy (&addr.sin_addr, hp->h_addr_list[0], hp->h_length);
GNUNET_SERVER_transmit_context_append_data (tc,
&addr,
free (pszIfName);
sa.sin_family = AF_INET;
+#if HAVE_SOCKADDR_IN_SIN_LEN
+ sa.sin_len = (u_char) sizeof (struct sockaddr_in);
+#endif
sa.sin_addr.S_un.S_addr = dwIP;
if (GNUNET_OK !=
{
memset (&a4, 0, sizeof (a4));
a4.sin_family = AF_INET;
+#if HAVE_SOCKADDR_IN_SIN_LEN
+ a4.sin_len = (u_char) sizeof (struct sockaddr_in);
+#endif
a4.sin_addr = v4;
if (GNUNET_OK !=
proc (proc_cls,
{
memset (&a6, 0, sizeof (a6));
a6.sin6_family = AF_INET6;
+#if HAVE_SOCKADDR_IN_SIN_LEN
+ a6.sin6_len = (u_char) sizeof (struct sockaddr_in6);
+#endif
a6.sin6_addr = v6;
- fprintf (stderr, "procing %s\n", addrstr);
if (GNUNET_OK !=
proc (proc_cls,
ifc,
unixpath,
slen);
un->sun_path[slen] = '\0';
+ slen = SUN_LEN (un);
#if LINUX
un->sun_path[0] = '\0';
- slen = sizeof (struct sockaddr_un);
-#elif FREEBSD
- slen += sizeof (sa_family_t) + 1 ;
-#else
- slen += sizeof (sa_family_t) ;
#endif
-
+#if HAVE_SOCKADDR_IN_SIN_LEN
+ un->sun_len = (u_char) slen;
+#endif
*saddrs = (struct sockaddr*) un;
*saddrlens = slen;
#else
{
/* probe UNIX support */
struct sockaddr_un s_un;
+
if (strlen(unixpath) >= sizeof(s_un.sun_path))
{
GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
desc = GNUNET_NETWORK_socket_create (AF_UNIX, SOCK_STREAM, 0);
if (NULL == desc)
{
- if ((errno == ENOBUFS) ||
- (errno == ENOMEM) || (errno == ENFILE) || (errno == EACCES))
+ if ( (errno == ENOBUFS) ||
+ (errno == ENOMEM) || (errno == ENFILE) || (errno == EACCES))
{
GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR, "socket");
GNUNET_free_non_null (hostname);
memset(&sa, 0, sizeof(sa));
sa.sin_family = AF_INET;
+#if HAVE_SOCKADDR_IN_SIN_LEN
+ sa.sin_len = (u_char) sizeof (sa);
+#endif
sa.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
GNUNET_RESOLVER_ip_get(cfg, "localhost", AF_INET, timeout, &check_127,
cls);
memset(&sa, 0, sizeof(sa));
sa.sin_family = AF_INET;
+#if HAVE_SOCKADDR_IN_SIN_LEN
+ sa.sin_len = (u_char) sizeof (sa);
+#endif
#ifndef MINGW
inet_aton(ROOTSERVER_IP, &sa.sin_addr);
#else
un.sun_family = AF_UNIX;
memcpy (un.sun_path, unixpath, slen);
un.sun_path[slen] = '\0';
+#if HAVE_SOCKADDR_IN_SIN_LEN
+ un.sun_len = (u_char) SUN_LEN (&un);
+#endif
#if LINUX
un.sun_path[0] = '\0';
#endif