GNUNET_SERVER_receive_done (session->client,
GNUNET_SYSERR);
}
- if (session->client != NULL)
+ else if (session->client != NULL)
GNUNET_SERVER_client_drop (session->client);
GNUNET_STATISTICS_update (session->plugin->env->stats,
gettext_noop ("# TCP sessions active"),
* gnunet-nat-client to send dummy ICMP responses.
*
* @param plugin the plugin for this transport
- * @param addr the address of the peer (IPv4-only)
+ * @param sa the address of the peer (IPv4-only)
*/
static void
run_gnunet_nat_client (struct Plugin *plugin,
inet4,
port_as_string,
NULL);
+ if (NULL == proc)
+ return;
/* we know that the gnunet-nat-client will terminate virtually
instantly */
GNUNET_OS_process_wait (proc);
session->receive_delay_task = GNUNET_SCHEDULER_NO_TASK;
delay = session->plugin->env->receive (session->plugin->env->cls,
&session->target,
+ NULL,
NULL, 0,
session,
NULL, 0);
gettext_noop ("# bytes received via TCP"),
ntohs (message->size),
GNUNET_NO);
- delay = plugin->env->receive (plugin->env->cls, &session->target, message, 1,
+ struct GNUNET_TRANSPORT_ATS_Information distance[2];
+ distance[0].type = htonl (GNUNET_TRANSPORT_ATS_QUALITY_NET_DISTANCE);
+ distance[0].value = htonl (1);
+ distance[1].type = htonl (GNUNET_TRANSPORT_ATS_ARRAY_TERMINATOR);
+ distance[1].value = htonl (0);
+ delay = plugin->env->receive (plugin->env->cls, &session->target, message,
+ (const struct GNUNET_TRANSPORT_ATS_Information *) &distance,
+ 2,
session,
(GNUNET_YES == session->inbound) ? NULL : session->connect_addr,
(GNUNET_YES == session->inbound) ? 0 : session->connect_alen);
/* construct socket address of sender */
memset (&sin_addr, 0, sizeof (sin_addr));
sin_addr.sin_family = AF_INET;
- sin_addr.sin_port = htons((uint16_t) port);
#if HAVE_SOCKADDR_IN_SIN_LEN
sin_addr.sin_len = sizeof (sin_addr);
#endif
plugin);
return;
}
-
+ sin_addr.sin_port = htons((uint16_t) port);
#if DEBUG_TCP_NAT
GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG,
"tcp",
GNUNET_free (tcp_probe);
}
- if (plugin->behind_nat == GNUNET_YES)
+ if ((plugin->behind_nat == GNUNET_YES) &&
+ (plugin->enable_nat_server == GNUNET_YES))
{
if (0 != GNUNET_OS_process_kill (plugin->server_proc, SIGTERM))
GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill");