[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r7734 - in GNUnet/src: server util/network util/network_cli
From: |
gnunet |
Subject: |
[GNUnet-SVN] r7734 - in GNUnet/src: server util/network util/network_client |
Date: |
Sat, 4 Oct 2008 23:47:11 -0600 (MDT) |
Author: grothoff
Date: 2008-10-04 23:47:10 -0600 (Sat, 04 Oct 2008)
New Revision: 7734
Modified:
GNUnet/src/server/tcpserver.c
GNUnet/src/util/network/ipcheck.c
GNUnet/src/util/network_client/tcpio.c
Log:
fixing various issues around #1410
Modified: GNUnet/src/server/tcpserver.c
===================================================================
--- GNUnet/src/server/tcpserver.c 2008-10-03 06:01:23 UTC (rev 7733)
+++ GNUnet/src/server/tcpserver.c 2008-10-05 05:47:10 UTC (rev 7734)
@@ -334,6 +334,7 @@
struct sockaddr *serverAddr;
socklen_t socklen;
const int on = 1;
+ char * ch;
listenerPort = getGNUnetPort ();
if (listenerPort == 0)
@@ -354,7 +355,23 @@
}
memset (&serverAddr4, 0, sizeof (serverAddr4));
serverAddr4.sin_family = AF_INET;
- serverAddr4.sin_addr.s_addr = htonl (INADDR_ANY);
+ ch = NULL;
+ GNUNET_GC_get_configuration_value_string (cfg,
+ "NETWORK",
+ "TRUSTED",
+ "127.0.0.0/8;",
+ &ch);
+ if ( (0 == strcmp(ch, "127.0.0.0/8;")) ||
+ (0 == strcmp(ch, "localhost;")) ||
+ (0 == strcmp(ch, "127.0.0.1;")) )
+ {
+ serverAddr4.sin_addr.s_addr = htonl (INADDR_LOOPBACK);
+ }
+ else
+ {
+ serverAddr4.sin_addr.s_addr = htonl (INADDR_ANY);
+ }
+ GNUNET_free(ch);
serverAddr4.sin_port = htons (listenerPort);
socklen = sizeof (serverAddr4);
serverAddr = (struct sockaddr *) &serverAddr4;
@@ -363,7 +380,24 @@
{
memset (&serverAddr6, 0, sizeof (serverAddr6));
serverAddr6.sin6_family = AF_INET6;
+ ch = NULL;
+ GNUNET_GC_get_configuration_value_string (cfg,
+ "NETWORK",
+ "TRUSTED6",
+ "::1;",
+ &ch);
+ if (0 == strcmp(ch, "::1;"))
+ {
+ serverAddr6.sin6_addr = in6addr_loopback;
+ }
+ else
+ {
+ serverAddr6.sin6_addr = in6addr_any;
+ }
+ GNUNET_free(ch);
serverAddr6.sin6_port = htons (listenerPort);
+
+
socklen = sizeof (serverAddr6);
serverAddr = (struct sockaddr *) &serverAddr6;
}
Modified: GNUnet/src/util/network/ipcheck.c
===================================================================
--- GNUnet/src/util/network/ipcheck.c 2008-10-03 06:01:23 UTC (rev 7733)
+++ GNUnet/src/util/network/ipcheck.c 2008-10-05 05:47:10 UTC (rev 7734)
@@ -399,20 +399,20 @@
unsigned int j;
struct in6_addr zero;
- i = 0;
if (list == NULL)
return GNUNET_NO;
memset (&zero, 0, sizeof (struct in6_addr));
- while ((memcmp (&zero, &list[i].network, sizeof (struct in6_addr)) != 0) ||
- (memcmp (&zero, &list[i].netmask, sizeof (struct in6_addr)) != 0))
+ i = 0;
+ NEXT:
+ while (memcmp (&zero, &list[i].network, sizeof (struct in6_addr)) != 0)
{
for (j = 0; j < sizeof (struct in6_addr) / sizeof (int); j++)
if (((((int *) ip)[j] & ((int *) &list[i].netmask)[j])) !=
(((int *) &list[i].network)[j] & ((int *) &list[i].netmask)[j]))
{
i++;
- continue;
+ goto NEXT;
}
return GNUNET_YES;
}
Modified: GNUnet/src/util/network_client/tcpio.c
===================================================================
--- GNUnet/src/util/network_client/tcpio.c 2008-10-03 06:01:23 UTC (rev
7733)
+++ GNUnet/src/util/network_client/tcpio.c 2008-10-05 05:47:10 UTC (rev
7734)
@@ -95,10 +95,20 @@
GNUNET_GE_LOG (ectx,
GNUNET_GE_ERROR | GNUNET_GE_USER | GNUNET_GE_BULK,
_
- ("Could not find valid value for HOST in section
NETWORK."));
+ ("Could not find valid value for HOST in section
NETWORK.\n"));
return 2087;
}
- pos = strstr (res, ":");
+ if (res[0] == '[')
+ {
+ /* IPv6 */
+ pos = strstr (res, "]");
+ if (pos != NULL)
+ pos = strstr (pos, ":");
+ }
+ else
+ {
+ pos = strstr (res, ":");
+ }
if (pos == NULL)
{
GNUNET_free (res);
@@ -110,7 +120,7 @@
GNUNET_GE_LOG (ectx,
GNUNET_GE_ERROR | GNUNET_GE_USER | GNUNET_GE_BULK,
_
- ("Syntax error in configuration entry HOST in section
NETWORK: `%s'"),
+ ("Syntax error in configuration entry HOST in section
NETWORK: `%s'\n"),
pos);
GNUNET_free (res);
return 2087;
@@ -141,12 +151,28 @@
GNUNET_GE_LOG (ectx,
GNUNET_GE_ERROR | GNUNET_GE_USER | GNUNET_GE_BULK,
_
- ("Could not find valid value for HOST in section
NETWORK."));
+ ("Could not find valid value for HOST in section
NETWORK.\n"));
return NULL;
}
- pos = strstr (res, ":");
- if (pos != NULL)
- *pos = '\0';
+ if (res[0] == '[')
+ {
+ /* IPv6 */
+ pos = strstr (res, "]");
+ if (pos != NULL)
+ {
+ pos[0] = '\0';
+ memmove(res,
+ &res[1],
+ strlen(&res[1]));
+ pos[-1] = '\0';
+ }
+ }
+ else
+ {
+ pos = strstr (res, ":");
+ if (pos != NULL)
+ *pos = '\0';
+ }
return res;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r7734 - in GNUnet/src: server util/network util/network_client,
gnunet <=