"tcp",
pm->transmit_cont != NULL
? "Could not deliver message to `%4s'.\n"
- :
- "Could not deliver message to `%4s', notifying.\n",
+ : "Could not deliver message to `%4s', notifying.\n",
GNUNET_i2s (&session->target));
#endif
GNUNET_STATISTICS_update (session->plugin->env->stats,
#endif
session = create_session (plugin,
target,
- NULL, is_natd);
+ NULL,
+ is_natd);
/* create new message entry */
pm = GNUNET_malloc (sizeof (struct PendingMessage) + msgbuf_size);
session->pending_messages_tail,
pm);
- GNUNET_assert(GNUNET_CONTAINER_multihashmap_put(plugin->nat_wait_conns, &target->hashPubKey, session, GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY) == GNUNET_OK);
+ GNUNET_assert(GNUNET_CONTAINER_multihashmap_put(plugin->nat_wait_conns,
+ &target->hashPubKey,
+ session,
+ GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY) == GNUNET_OK);
#if DEBUG_TCP_NAT
GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG,
"tcp",
run_gnunet_nat_client (plugin, &a4);
return 0;
}
- else if ((plugin->allow_nat == GNUNET_YES) && (is_natd == GNUNET_YES) && (GNUNET_YES == GNUNET_CONTAINER_multihashmap_contains(plugin->nat_wait_conns, &target->hashPubKey)))
+ if ( (plugin->allow_nat == GNUNET_YES) &&
+ (is_natd == GNUNET_YES) &&
+ (GNUNET_YES == GNUNET_CONTAINER_multihashmap_contains(plugin->nat_wait_conns, &target->hashPubKey)) )
{
/* Only do one NAT punch attempt per peer identity */
return -1;
session = create_session (plugin,
target,
GNUNET_SERVER_connect_socket (plugin->server,
- sa), is_natd);
+ sa),
+ is_natd);
session->connect_addr = GNUNET_malloc (addrlen);
memcpy (session->connect_addr,
addr,
return GNUNET_OK;
if ( (plugin->only_nat_addresses == GNUNET_YES) &&
(plugin->behind_nat == GNUNET_YES) )
- {
- return GNUNET_SYSERR; /* odd case... */
- }
+ return GNUNET_SYSERR; /* odd case... */
if ((in_port == plugin->adv_port) || (in_port == plugin->open_port))
return GNUNET_OK;
return GNUNET_SYSERR;
return GNUNET_SYSERR;
if (GNUNET_OK !=
check_local_addr (plugin, &v4->ipv4_addr, sizeof (uint32_t)))
- {
- return GNUNET_SYSERR;
- }
+ return GNUNET_SYSERR;
}
else
{
return GNUNET_SYSERR;
if (GNUNET_OK !=
check_local_addr (plugin, &v6->ipv6_addr, sizeof (struct in6_addr)))
- {
- return GNUNET_SYSERR;
- }
+ return GNUNET_SYSERR;
}
return GNUNET_OK;
}
+
/**
* We've received a nat probe from this peer via TCP. Finish
* creating the client session and resume sending of queued
*/
static void
handle_tcp_nat_probe (void *cls,
- struct GNUNET_SERVER_Client *client,
- const struct GNUNET_MessageHeader *message)
+ struct GNUNET_SERVER_Client *client,
+ const struct GNUNET_MessageHeader *message)
{
struct Plugin *plugin = cls;
struct Session *session;
- struct TCP_NAT_ProbeMessage *tcp_nat_probe;
+ const struct TCP_NAT_ProbeMessage *tcp_nat_probe;
size_t alen;
void *vaddr;
struct IPv4TcpAddress *t4;
GNUNET_break_op(0);
return;
}
- tcp_nat_probe = (struct TCP_NAT_ProbeMessage *)message;
-
- if (GNUNET_CONTAINER_multihashmap_contains(plugin->nat_wait_conns, &tcp_nat_probe->clientIdentity.hashPubKey) == GNUNET_YES)
+ tcp_nat_probe = (const struct TCP_NAT_ProbeMessage *)message;
+ session = GNUNET_CONTAINER_multihashmap_get(plugin->nat_wait_conns,
+ &tcp_nat_probe->clientIdentity.hashPubKey);
+ if (session == NULL)
{
#if DEBUG_TCP_NAT
- GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG,
+ GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG,
"tcp",
- "Found session for NAT probe!\n");
+ "Did NOT find session for NAT probe!\n");
#endif
- session = GNUNET_CONTAINER_multihashmap_get(plugin->nat_wait_conns, &tcp_nat_probe->clientIdentity.hashPubKey);
- GNUNET_assert(session != NULL);
- GNUNET_assert(GNUNET_CONTAINER_multihashmap_remove(plugin->nat_wait_conns, &tcp_nat_probe->clientIdentity.hashPubKey, session) == GNUNET_YES);
- GNUNET_SERVER_client_keep (client);
- session->client = client;
- session->last_activity = GNUNET_TIME_absolute_get ();
- session->inbound = GNUNET_NO;
-
- if (GNUNET_OK ==
- GNUNET_SERVER_client_get_address (client, &vaddr, &alen))
- {
+ GNUNET_SERVER_receive_done (client, GNUNET_OK);
+ return;
+ }
#if DEBUG_TCP_NAT
- GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG,
- "tcp",
- "handle_tcp_nat_probe Found address `%s' for incoming connection %p\n",
- GNUNET_a2s (vaddr, alen),
- client);
+ GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG,
+ "tcp",
+ "Found session for NAT probe!\n");
#endif
- if (((const struct sockaddr *)vaddr)->sa_family == AF_INET)
- {
- s4 = vaddr;
- t4 = GNUNET_malloc (sizeof (struct IPv4TcpAddress));
- t4->t_port = s4->sin_port;
- t4->ipv4_addr = s4->sin_addr.s_addr;
- session->connect_addr = t4;
- session->connect_alen = sizeof (struct IPv4TcpAddress);
- }
- else if (((const struct sockaddr *)vaddr)->sa_family == AF_INET6)
- {
- s6 = vaddr;
- t6 = GNUNET_malloc (sizeof (struct IPv6TcpAddress));
- t6->t6_port = s6->sin6_port;
- memcpy (&t6->ipv6_addr,
- &s6->sin6_addr,
- sizeof (struct in6_addr));
- session->connect_addr = t6;
- session->connect_alen = sizeof (struct IPv6TcpAddress);
- }
- else
- {
+ GNUNET_assert(GNUNET_CONTAINER_multihashmap_remove(plugin->nat_wait_conns,
+ &tcp_nat_probe->clientIdentity.hashPubKey,
+ session) == GNUNET_YES);
+ if (GNUNET_OK !=
+ GNUNET_SERVER_client_get_address (client, &vaddr, &alen))
+ {
+ GNUNET_break (0);
+ GNUNET_free (session);
+ GNUNET_SERVER_receive_done (client, GNUNET_OK);
+ return;
+ }
+
+ GNUNET_SERVER_client_keep (client);
+ session->client = client;
+ session->last_activity = GNUNET_TIME_absolute_get ();
+ session->inbound = GNUNET_NO;
+
#if DEBUG_TCP_NAT
- GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG,
- "tcp",
- "Bad address for incoming connection!\n");
+ GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG,
+ "tcp",
+ "handle_tcp_nat_probe Found address `%s' for incoming connection %p\n",
+ GNUNET_a2s (vaddr, alen),
+ client);
#endif
- }
- GNUNET_free (vaddr);
- }
-
- session->next = plugin->sessions;
- plugin->sessions = session;
- GNUNET_STATISTICS_update (plugin->env->stats,
- gettext_noop ("# TCP sessions active"),
- 1,
- GNUNET_NO);
- process_pending_messages (session);
- }
- else
- {
+ switch (((const struct sockaddr *)vaddr)->sa_family)
+ {
+ case AF_INET:
+ s4 = vaddr;
+ t4 = GNUNET_malloc (sizeof (struct IPv4TcpAddress));
+ t4->t_port = s4->sin_port;
+ t4->ipv4_addr = s4->sin_addr.s_addr;
+ session->connect_addr = t4;
+ session->connect_alen = sizeof (struct IPv4TcpAddress);
+ break;
+ case AF_INET6:
+ s6 = vaddr;
+ t6 = GNUNET_malloc (sizeof (struct IPv6TcpAddress));
+ t6->t6_port = s6->sin6_port;
+ memcpy (&t6->ipv6_addr,
+ &s6->sin6_addr,
+ sizeof (struct in6_addr));
+ session->connect_addr = t6;
+ session->connect_alen = sizeof (struct IPv6TcpAddress);
+ break;
+ default:
+ GNUNET_break_op (0);
#if DEBUG_TCP_NAT
GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG,
"tcp",
- "Did NOT find session for NAT probe!\n");
+ "Bad address for incoming connection!\n");
#endif
+ GNUNET_free (vaddr);
+ GNUNET_SERVER_client_drop (client);
+ GNUNET_free (session);
+ GNUNET_SERVER_receive_done (client, GNUNET_SYSERR);
+ return;
}
-
+ GNUNET_free (vaddr);
+
+ session->next = plugin->sessions;
+ plugin->sessions = session;
+ GNUNET_STATISTICS_update (plugin->env->stats,
+ gettext_noop ("# TCP sessions active"),
+ 1,
+ GNUNET_NO);
+ process_pending_messages (session);
GNUNET_SERVER_receive_done (client, GNUNET_OK);
}
+
/**
* We've received a welcome from this peer via TCP. Possibly create a
* fresh client record and send back our welcome.
if (session == NULL)
{
- GNUNET_SERVER_client_keep (client);
#if DEBUG_TCP_NAT
GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG,
"tcp",
"WELCOME",
GNUNET_i2s (&wm->clientIdentity), client);
#endif
+ GNUNET_SERVER_client_keep (client);
session = create_session (plugin,
- &wm->clientIdentity, client, GNUNET_NO);
+ &wm->clientIdentity,
+ client,
+ GNUNET_NO);
session->inbound = GNUNET_YES;
if (GNUNET_OK ==
GNUNET_SERVER_client_get_address (client, &vaddr, &alen))
* @param tc task context (unused)
*/
static void
-delayed_done (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+delayed_done (void *cls,
+ const struct GNUNET_SCHEDULER_TaskContext *tc)
{
struct Session *session = cls;
struct GNUNET_TIME_Relative delay;
struct Plugin *plugin = cls;
struct Session *session;
struct GNUNET_TIME_Relative delay;
+ uint16_t type;
- if ((GNUNET_MESSAGE_TYPE_TRANSPORT_TCP_WELCOME == ntohs(message->type)) || (ntohs(message->type) == GNUNET_MESSAGE_TYPE_TRANSPORT_TCP_NAT_PROBE))
+ type = ntohs (message->type);
+ if ( (GNUNET_MESSAGE_TYPE_TRANSPORT_TCP_WELCOME == type) ||
+ (GNUNET_MESSAGE_TYPE_TRANSPORT_TCP_NAT_PROBE == type) )
{
/* We don't want to propagate WELCOME and NAT Probe messages up! */
GNUNET_SERVER_receive_done (client, GNUNET_OK);
return;
}
session = find_session_by_client (plugin, client);
- if ( (NULL == session) || (GNUNET_YES == session->expecting_welcome))
+ if ( (NULL == session) || (GNUNET_YES == session->expecting_welcome) )
{
GNUNET_SERVER_receive_done (client, GNUNET_SYSERR);
return;
af = addr->sa_family;
arg_nat = NULL;
- if (af == AF_INET)
+ switch (af)
{
+ case AF_INET:
t4.ipv4_addr = ((struct sockaddr_in *) addr)->sin_addr.s_addr;
GNUNET_assert(NULL != inet_ntop(AF_INET, &t4.ipv4_addr, &buf[0], INET_ADDRSTRLEN));
if ((plugin->bind_address != NULL) && (0 != strcmp(buf, plugin->bind_address)))
t4.t_port = htons (plugin->adv_port);
arg = &t4;
args = sizeof (t4);
- }
- else if (af == AF_INET6)
- {
+ break;
+ case AF_INET6:
if ( (IN6_IS_ADDR_LINKLOCAL (&((struct sockaddr_in6 *) addr)->sin6_addr)) ||
(GNUNET_YES == GNUNET_CONFIGURATION_get_value_yesno(plugin->env->cfg, "transport-tcp", "DISABLEV6")) )
{
t6.t6_port = htons (plugin->adv_port);
arg = &t6;
args = sizeof (t6);
- }
- else
- {
+ break;
+ default:
GNUNET_break (0);
return GNUNET_OK;
}
+#if DEBUG_TCP
GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG,
"tcp",
- _("Found address `%s' (%s) len %d\n"),
+ "Found address `%s' (%s) len %d\n",
GNUNET_a2s (addr, addrlen), name, args);
+#endif
plugin->env->notify_address (plugin->env->cls,
"tcp",
arg, args, GNUNET_TIME_UNIT_FOREVER_REL);
process_interfaces (plugin, "<hostname>", GNUNET_YES, addr, addrlen);
}
+
/**
* We can now send a probe message, copy into buffer to really send.
*
* @param cls closure, a struct TCPProbeContext
* @param size max size to copy
* @param buf buffer to copy message to
+ * @return number of bytes copied into buf
*/
-static size_t notify_send_probe (void *cls,
- size_t size, void *buf)
+static size_t
+notify_send_probe (void *cls,
+ size_t size,
+ void *buf)
{
struct TCPProbeContext *tcp_probe_ctx = cls;
+ size_t ret;
+ tcp_probe_ctx->transmit_handle = NULL;
if (buf == NULL)
- {
- return 0;
- }
-
+ return 0;
GNUNET_assert(size >= sizeof(tcp_probe_ctx->message));
memcpy(buf, &tcp_probe_ctx->message, sizeof(tcp_probe_ctx->message));
GNUNET_SERVER_connect_socket (tcp_probe_ctx->plugin->server,
tcp_probe_ctx->sock);
-
+ ret = sizeof(tcp_probe_ctx->message);
GNUNET_free(tcp_probe_ctx);
- return sizeof(tcp_probe_ctx->message);
+ return ret;
}
for (i = 0; i < sizeof(mybuf); i++)
{
if (mybuf[i] == '\n')
- mybuf[i] = '\0';
-
- if ((mybuf[i] == ':') && (i + 1 < sizeof(mybuf)))
+ {
+ mybuf[i] = '\0';
+ break;
+ }
+ if ( (mybuf[i] == ':') && (i + 1 < sizeof(mybuf)) )
{
mybuf[i] = '\0';
port_start = &mybuf[i + 1];
GNUNET_YES);
if (plugin->server_stdout == NULL)
return GNUNET_SYSERR;
-
#if DEBUG_TCP_NAT
GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG,
"tcp"
- "Starting gnunet-nat-server process cmd: %s %s\n", "gnunet-nat-server", plugin->internal_address);
+ "Starting %s %s\n",
+ "gnunet-nat-server",
+ plugin->internal_address);
#endif
/* Start the server process */
- plugin->server_proc = GNUNET_OS_start_process(NULL, plugin->server_stdout, "gnunet-nat-server", "gnunet-nat-server", plugin->internal_address, NULL);
+ plugin->server_proc = GNUNET_OS_start_process (NULL,
+ plugin->server_stdout,
+ "gnunet-nat-server",
+ "gnunet-nat-server",
+ plugin->internal_address,
+ NULL);
if (plugin->server_proc == NULL)
{
-#if DEBUG_TCP_NAT
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Failed to start gnunet-nat-server process\n");
-#endif
+ GNUNET_log_from (GNUNET_ERROR_TYPE_WARNING,
+ "tcp",
+ _("Failed to start %s\n"),
+ "gnunet-nat-server");
+ GNUNET_DISK_pipe_close (plugin->server_stdout);
+ plugin->server_stdout = NULL;
return GNUNET_SYSERR;
}
/* Close the write end of the read pipe */
- GNUNET_DISK_pipe_close_end(plugin->server_stdout, GNUNET_DISK_PIPE_END_WRITE);
-
- plugin->server_stdout_handle = GNUNET_DISK_pipe_handle(plugin->server_stdout, GNUNET_DISK_PIPE_END_READ);
- plugin->server_read_task =
- GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL,
- plugin->server_stdout_handle, &tcp_plugin_server_read, plugin);
+ GNUNET_DISK_pipe_close_end(plugin->server_stdout,
+ GNUNET_DISK_PIPE_END_WRITE);
+ plugin->server_stdout_handle
+ = GNUNET_DISK_pipe_handle (plugin->server_stdout,
+ GNUNET_DISK_PIPE_END_READ);
+ plugin->server_read_task
+ = GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL,
+ plugin->server_stdout_handle,
+ &tcp_plugin_server_read,
+ plugin);
return GNUNET_YES;
}
* PATH environment variable.
*
* @param binary the name of the file to find
+ * @return path to binary, NULL if not found
*/
static char *
-get_path_from_PATH (char *binary)
+get_path_from_PATH (const char *binary)
{
char *path;
char *pos;
p = getenv ("PATH");
if (p == NULL)
{
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- _("PATH environment variable is unset.\n"));
+ GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR,
+ "tcp",
+ _("PATH environment variable is unset.\n"));
return NULL;
}
path = GNUNET_strdup (p); /* because we write on it */
return NULL;
}
+
/**
* Check whether the suid bit is set on a file.
* Attempts to find the file using the current
* PATH environment variable as a search path.
*
* @param binary the name of the file to check
+ * @return GNUNET_YES if the file is SUID,
+ * GNUNET_NO if not,
+ * GNUNET_SYSERR on error
*/
static int
-check_gnunet_nat_binary(char *binary)
+check_gnunet_nat_binary(const char *binary)
{
struct stat statbuf;
char *p;
#ifdef MINGW
SOCKET rawsock;
-#endif
-
-#ifdef MINGW
char *binaryexe;
+
GNUNET_asprintf (&binaryexe, "%s.exe", binary);
p = get_path_from_PATH (binaryexe);
free (binaryexe);
#endif
if (p == NULL)
{
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- _("Could not find binary `%s' in PATH!\n"),
- binary);
+ GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR,
+ "tcp",
+ _("Could not find binary `%s' in PATH!\n"),
+ binary);
return GNUNET_NO;
}
if (0 != STAT (p, &statbuf))
if (INVALID_SOCKET == rawsock)
{
DWORD err = GetLastError ();
- GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
- "socket (AF_INET, SOCK_RAW, IPPROTO_ICMP) have failed! GLE = %d\n", err);
+ GNUNET_log_from (GNUNET_ERROR_TYPE_WARNING,
+ "tcp",
+ "socket (AF_INET, SOCK_RAW, IPPROTO_ICMP) failed! GLE = %d\n", err);
return GNUNET_NO; /* not running as administrator */
}
closesocket (rawsock);
service = GNUNET_SERVICE_start ("transport-tcp", env->cfg);
if (service == NULL)
{
- GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
- _("Failed to start service for `%s' transport plugin.\n"),
- "tcp");
+ GNUNET_log_from (GNUNET_ERROR_TYPE_WARNING,
+ "tcp",
+ _("Failed to start service.\n"));
return NULL;
}
- if (GNUNET_YES == GNUNET_CONFIGURATION_get_value_yesno (env->cfg,
- "transport-tcp",
- "BEHIND_NAT"))
+ behind_nat = GNUNET_CONFIGURATION_get_value_yesno (env->cfg,
+ "transport-tcp",
+ "BEHIND_NAT");
+ if (GNUNET_YES == behind_nat)
{
/* We are behind nat (according to the user) */
if (check_gnunet_nat_binary("gnunet-nat-server") == GNUNET_YES)
else
{
behind_nat = GNUNET_NO;
- GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Configuration specified you are behind a NAT, but gnunet-nat-server is not installed properly (suid bit not set)!\n");
+ GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+ _("Configuration specified you are behind a NAT, but %s is not installed properly (SUID bit not set)!\n"),
+ "gnunet-nat-server");
}
}
- else
- behind_nat = GNUNET_NO; /* We are not behind nat! */
-
- if (GNUNET_YES == GNUNET_CONFIGURATION_get_value_yesno (env->cfg,
- "transport-tcp",
- "ALLOW_NAT"))
+ allow_nat = GNUNET_CONFIGURATION_get_value_yesno (env->cfg,
+ "transport-tcp",
+ "ALLOW_NAT");
+ if (GNUNET_YES == allow_nat)
{
if (check_gnunet_nat_binary("gnunet-nat-client") == GNUNET_YES)
- allow_nat = GNUNET_YES; /* We will try to connect to NAT'd peers */
+ {
+ allow_nat = GNUNET_YES; /* We will try to connect to NAT'd peers */
+ }
else
- {
- allow_nat = GNUNET_NO;
- GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Configuration specified you want to connect to NAT'd peers, but gnunet-nat-client is not installed properly (suid bit not set)!\n");
- }
+ {
+ allow_nat = GNUNET_NO;
+ GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+ _("Configuration specified you want to connect to NATed peers, but %s is not installed properly (SUID bit not set)!\n"),
+ "gnunet-nat-client");
+ }
}
- else
- allow_nat = GNUNET_NO; /* We don't want to try to help NAT'd peers */
-
- if (GNUNET_YES == GNUNET_CONFIGURATION_get_value_yesno (env->cfg,
- "transport-tcp",
- "ONLY_NAT_ADDRESSES"))
- only_nat_addresses = GNUNET_YES; /* We will only report our addresses as NAT'd */
- else
- only_nat_addresses = GNUNET_NO; /* We will report our addresses as NAT'd and non-NAT'd */
+ only_nat_addresses = GNUNET_CONFIGURATION_get_value_yesno (env->cfg,
+ "transport-tcp",
+ "ONLY_NAT_ADDRESSES");
external_address = NULL;
- if (((GNUNET_YES == behind_nat) || (GNUNET_YES == allow_nat)) && (GNUNET_OK !=
- GNUNET_CONFIGURATION_get_value_string (env->cfg,
- "transport-tcp",
- "EXTERNAL_ADDRESS",
- &external_address)))
- {
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- _
- ("Require EXTERNAL_ADDRESS for service `%s' in configuration (either BEHIND_NAT or ALLOW_NAT set to YES)!\n"),
- "transport-tcp");
+ if ( ( (GNUNET_YES == behind_nat) ||
+ (GNUNET_YES == allow_nat) ) &&
+ (GNUNET_OK !=
+ GNUNET_CONFIGURATION_get_value_string (env->cfg,
+ "transport-tcp",
+ "EXTERNAL_ADDRESS",
+ &external_address)) )
+ {
+ GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR,
+ "tcp",
+ _("EXTERNAL_ADDRESS option required in configuration (either BEHIND_NAT or ALLOW_NAT set to YES)!\n"));
GNUNET_SERVICE_stop (service);
return NULL;
}
- if ((external_address != NULL) && (inet_pton(AF_INET, external_address, &in_addr.sin_addr) != 1))
+ if ( (external_address != NULL) &&
+ (inet_pton(AF_INET, external_address, &in_addr.sin_addr) != 1) )
{
- GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Malformed EXTERNAL_ADDRESS %s given in configuration!\n", external_address);
+ GNUNET_log_from (GNUNET_ERROR_TYPE_WARNING,
+ "tcp",
+ _("Malformed %s `%s' given in configuration!\n"),
+ "EXTERNAL_ADDRESS",
+ external_address);
}
internal_address = NULL;
- if ((GNUNET_YES == behind_nat) && (GNUNET_OK !=
- GNUNET_CONFIGURATION_get_value_string (env->cfg,
- "transport-tcp",
- "INTERNAL_ADDRESS",
- &internal_address)))
- {
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- _("Require INTERNAL_ADDRESS for service `%s' in configuration!\n"),
- "transport-tcp");
+ if ( (GNUNET_YES == behind_nat) &&
+ (GNUNET_OK !=
+ GNUNET_CONFIGURATION_get_value_string (env->cfg,
+ "transport-tcp",
+ "INTERNAL_ADDRESS",
+ &internal_address)) )
+ {
+ GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR,
+ "tcp",
+ _("Require INTERNAL_ADDRESS in configuration!\n"));
GNUNET_SERVICE_stop (service);
GNUNET_free_non_null(external_address);
return NULL;
}
- if ((internal_address != NULL) && (inet_pton(AF_INET, internal_address, &in_addr.sin_addr) != 1))
+ if ( (internal_address != NULL) &&
+ (inet_pton(AF_INET, internal_address, &in_addr.sin_addr) != 1) )
{
- GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Malformed INTERNAL_ADDRESS %s given in configuration!\n", internal_address);
+ GNUNET_log_from (GNUNET_ERROR_TYPE_WARNING,
+ "tcp",
+ _("Malformed %s `%s' given in configuration!\n"),
+ "INTERNAL_ADDRESS",
+ internal_address);
}
aport = 0;
- if ((GNUNET_OK !=
- GNUNET_CONFIGURATION_get_value_number (env->cfg,
- "transport-tcp",
- "PORT",
- &bport)) ||
- (bport > 65535) ||
- ((GNUNET_OK ==
- GNUNET_CONFIGURATION_get_value_number (env->cfg,
- "transport-tcp",
- "ADVERTISED-PORT",
- &aport)) && (aport > 65535)))
- {
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- _
- ("Require valid port number for service `%s' in configuration!\n"),
+ if ( (GNUNET_OK !=
+ GNUNET_CONFIGURATION_get_value_number (env->cfg,
+ "transport-tcp",
+ "PORT",
+ &bport)) ||
+ (bport > 65535) ||
+ ((GNUNET_OK ==
+ GNUNET_CONFIGURATION_get_value_number (env->cfg,
+ "transport-tcp",
+ "ADVERTISED-PORT",
+ &aport)) &&
+ (aport > 65535)) )
+ {
+ GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR,
+ "tcp",
+ _("Require valid port number for service `%s' in configuration!\n"),
"transport-tcp");
GNUNET_free_non_null(external_address);
GNUNET_free_non_null(internal_address);
{
if (GNUNET_YES != tcp_transport_start_nat_server(plugin))
{
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-
- _
- ("Failed to start %s required for NAT in %s!\n"),
+ GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR,
+ "tcp",
+ _("Failed to start %s required for NAT in %s!\n"),
"gnunet-nat-server"
"transport-tcp");
GNUNET_free_non_null(external_address);
GNUNET_assert(plugin->nat_wait_conns != NULL);
}
- GNUNET_log (GNUNET_ERROR_TYPE_INFO, _("TCP transport listening on port %llu\n"), bport);
+ GNUNET_log_from (GNUNET_ERROR_TYPE_INFO,
+ "tcp",
+ _("TCP transport listening on port %llu\n"),
+ bport);
if (aport != bport)
- GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+ GNUNET_log_from (GNUNET_ERROR_TYPE_INFO,
+ "tcp",
_("TCP transport advertises itself as being on port %llu\n"),
aport);
GNUNET_SERVER_disconnect_notify (plugin->server,
&disconnect_notify,
plugin);
- if (GNUNET_YES == GNUNET_CONFIGURATION_get_value_string (env->cfg, "transport-tcp", "BINDTO", &plugin->bind_address))
- GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Binding tcp plugin to specific address: `%s'\n", plugin->bind_address);
+ if (GNUNET_YES == GNUNET_CONFIGURATION_get_value_string (env->cfg,
+ "transport-tcp",
+ "BINDTO",
+ &plugin->bind_address))
+ {
+ GNUNET_log(GNUNET_ERROR_TYPE_INFO,
+ _("Binding TCP plugin to specific address: `%s'\n"),
+ plugin->bind_address);
+ }
if (plugin->behind_nat == GNUNET_NO)
{
&process_hostname_ips,
plugin);
- if ((plugin->behind_nat == GNUNET_YES) && (inet_pton(AF_INET, plugin->external_address, &t4.ipv4_addr) == 1))
+ if ( (plugin->behind_nat == GNUNET_YES) &&
+ (inet_pton(AF_INET, plugin->external_address, &t4.ipv4_addr) == 1) )
{
- GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Notifying transport of address %s:0\n", plugin->external_address);
+ GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG,
+ "tcp",
+ "Notifying transport of address %s:0\n",
+ plugin->external_address);
t4.t_port = htons(0);
add_to_address_list (plugin, &t4.ipv4_addr, sizeof (uint32_t));
plugin->env->notify_address (plugin->env->cls,
"tcp",
&t4, sizeof(t4), GNUNET_TIME_UNIT_FOREVER_REL);
}
- else if ((plugin->external_address != NULL) && (inet_pton(AF_INET, plugin->external_address, &t4.ipv4_addr) == 1))
+ else if ((plugin->external_address != NULL) &&
+ (inet_pton(AF_INET, plugin->external_address, &t4.ipv4_addr) == 1) )
{
t4.t_port = htons(plugin->adv_port);
- GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Notifying transport of address %s:%d\n", plugin->external_address, plugin->adv_port);
+ GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG,
+ "tcp",
+ "Notifying transport of address %s:%d\n",
+ plugin->external_address,
+ plugin->adv_port);
add_to_address_list (plugin, &t4.ipv4_addr, sizeof (uint32_t));
plugin->env->notify_address (plugin->env->cls,
"tcp",