if (ntohs (message->size) != sizeof(struct TCP_NAT_ProbeMessage))
{
GNUNET_break_op(0);
- GNUNET_SERVER_receive_done (client, GNUNET_SYSERR);
+ GNUNET_SERVER_receive_done (client,
+ GNUNET_SYSERR);
return;
}
sizeof(struct GNUNET_PeerIdentity)))
{
/* refuse connections from ourselves */
- GNUNET_SERVER_receive_done (client, GNUNET_SYSERR);
+ GNUNET_SERVER_receive_done (client,
+ GNUNET_SYSERR);
return;
}
{
LOG (GNUNET_ERROR_TYPE_DEBUG,
"Did NOT find session for NAT probe!\n");
- GNUNET_SERVER_receive_done (client, GNUNET_OK);
+ GNUNET_SERVER_receive_done (client,
+ GNUNET_OK);
return;
}
LOG (GNUNET_ERROR_TYPE_DEBUG,
LOG(GNUNET_ERROR_TYPE_DEBUG,
"Bad address for incoming connection!\n");
GNUNET_free(vaddr);
- GNUNET_SERVER_receive_done (client, GNUNET_SYSERR);
+ GNUNET_SERVER_receive_done (client,
+ GNUNET_SYSERR);
tcp_plugin_disconnect_session (plugin,
session);
return;
{
GNUNET_break (0);
GNUNET_free_non_null (vaddr);
+ GNUNET_SERVER_receive_done (client,
+ GNUNET_SYSERR);
return;
}
session = create_session (plugin,
session->address,
session,
session->scope);
- notify_session_monitor (plugin,
- session,
- GNUNET_TRANSPORT_SS_INIT);
}
else
{
LOG(GNUNET_ERROR_TYPE_DEBUG,
"Did not obtain TCP socket address for incoming connection\n");
GNUNET_break(0);
+ GNUNET_SERVER_receive_done (client,
+ GNUNET_SYSERR);
return;
}
}
if (session->expecting_welcome != GNUNET_YES)
{
GNUNET_break_op(0);
- GNUNET_SERVER_receive_done (client, GNUNET_SYSERR);
+ GNUNET_SERVER_receive_done (client,
+ GNUNET_SYSERR);
GNUNET_break(0);
return;
}
process_pending_messages (session);
GNUNET_SERVER_client_set_timeout (client,
GNUNET_CONSTANTS_IDLE_CONNECTION_TIMEOUT);
- GNUNET_SERVER_receive_done (client, GNUNET_OK);
+ GNUNET_SERVER_receive_done (client,
+ GNUNET_OK);
}
reschedule_session_timeout (session);
if (0 == delay.rel_value_us)
{
- GNUNET_SERVER_receive_done (client, GNUNET_OK);
+ GNUNET_SERVER_receive_done (client,
+ GNUNET_OK);
}
else
{
- LOG(GNUNET_ERROR_TYPE_DEBUG,
- "Throttling receiving from `%s' for %s\n",
- GNUNET_i2s (&session->target),
- GNUNET_STRINGS_relative_time_to_string (delay, GNUNET_YES));
+ LOG (GNUNET_ERROR_TYPE_DEBUG,
+ "Throttling receiving from `%s' for %s\n",
+ GNUNET_i2s (&session->target),
+ GNUNET_STRINGS_relative_time_to_string (delay,
+ GNUNET_YES));
GNUNET_SERVER_disable_receive_done_warning (client);
+ GNUNET_assert (NULL == session->receive_delay_task);
session->receive_delay_task = GNUNET_SCHEDULER_add_delayed (delay,
- &delayed_done, session);
+ &delayed_done,
+ session);
}
}
{
struct Plugin *plugin = cls;
+ if (NULL == client)
+ return;
plugin->cur_connections++;
+ GNUNET_STATISTICS_set (plugin->env->stats,
+ gettext_noop ("# TCP server connections active"),
+ plugin->cur_connections,
+ GNUNET_NO);
+ GNUNET_STATISTICS_update (plugin->env->stats,
+ gettext_noop ("# TCP server connect events"),
+ 1,
+ GNUNET_NO);
if (plugin->cur_connections != plugin->max_connections)
return;
GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
if (NULL == client)
return;
- session = lookup_session_by_client (plugin, client);
+ GNUNET_assert (plugin->cur_connections >= 1);
+ plugin->cur_connections--;
+ session = lookup_session_by_client (plugin,
+ client);
if (NULL == session)
return; /* unknown, nothing to do */
LOG (GNUNET_ERROR_TYPE_DEBUG,
GNUNET_NO);
GNUNET_SERVER_resume (plugin->server); /* Resume server */
}
- GNUNET_assert (plugin->cur_connections >= 1);
- plugin->cur_connections--;
+ GNUNET_STATISTICS_set (plugin->env->stats,
+ gettext_noop ("# TCP server connections active"),
+ plugin->cur_connections,
+ GNUNET_NO);
GNUNET_STATISTICS_update (session->plugin->env->stats,
gettext_noop ("# network-level TCP disconnect events"),
1,
GNUNET_SERVICE_stop (plugin->service);
else
GNUNET_SERVER_destroy (plugin->server);
- GNUNET_free(plugin->handlers);
+ GNUNET_free (plugin->handlers);
if (NULL != plugin->nat)
GNUNET_NAT_unregister (plugin->nat);
while (NULL != (tcp_probe = plugin->probe_head))
plugin->probe_tail,
tcp_probe);
GNUNET_CONNECTION_destroy (tcp_probe->sock);
- GNUNET_free(tcp_probe);
+ GNUNET_free (tcp_probe);
}
GNUNET_CONTAINER_multipeermap_destroy (plugin->nat_wait_conns);
GNUNET_CONTAINER_multipeermap_destroy (plugin->sessionmap);
- GNUNET_free(plugin);
- GNUNET_free(api);
+ GNUNET_break (0 == plugin->cur_connections);
+ GNUNET_free (plugin);
+ GNUNET_free (api);
return NULL;
}