[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r21564 - in gnunet/src: transport util
From: |
gnunet |
Subject: |
[GNUnet-SVN] r21564 - in gnunet/src: transport util |
Date: |
Wed, 23 May 2012 13:43:06 +0200 |
Author: wachs
Date: 2012-05-23 13:43:06 +0200 (Wed, 23 May 2012)
New Revision: 21564
Modified:
gnunet/src/transport/plugin_transport_tcp.c
gnunet/src/util/server.c
Log:
- additional checks
Modified: gnunet/src/transport/plugin_transport_tcp.c
===================================================================
--- gnunet/src/transport/plugin_transport_tcp.c 2012-05-23 08:27:33 UTC (rev
21563)
+++ gnunet/src/transport/plugin_transport_tcp.c 2012-05-23 11:43:06 UTC (rev
21564)
@@ -1937,6 +1937,10 @@
distance[1].value = session->ats_address_network_type;
GNUNET_break (ntohl(session->ats_address_network_type) !=
GNUNET_ATS_NET_UNSPECIFIED);
+ GNUNET_assert (GNUNET_CONTAINER_multihashmap_contains_value
(plugin->sessionmap,
+ &session->target.hashPubKey,
+ session));
+
delay = plugin->env->receive (plugin->env->cls,
&session->target,
message,
Modified: gnunet/src/util/server.c
===================================================================
--- gnunet/src/util/server.c 2012-05-23 08:27:33 UTC (rev 21563)
+++ gnunet/src/util/server.c 2012-05-23 11:43:06 UTC (rev 21564)
@@ -991,11 +991,25 @@
const struct sockaddr *addr, socklen_t addrlen, int errCode)
{
struct GNUNET_SERVER_Client *client = cls;
+ struct GNUNET_SERVER_Client *tmp;
struct GNUNET_SERVER_Handle *server = client->server;
struct GNUNET_TIME_Absolute end;
struct GNUNET_TIME_Absolute now;
int ret;
+ /* Check if this client is still valid */
+ for (tmp = server->clients_head; NULL != tmp; tmp = tmp->next)
+ {
+ if (tmp == client)
+ break;
+ }
+
+ if (NULL == tmp)
+ {
+ GNUNET_break (0);
+ return;
+ }
+
GNUNET_assert (GNUNET_YES == client->receive_pending);
client->receive_pending = GNUNET_NO;
now = GNUNET_TIME_absolute_get ();
@@ -1034,10 +1048,18 @@
ret =
client->server->mst_receive (client->server->mst_cls, client->mst,
client, buf, available, GNUNET_NO,
GNUNET_YES);
- else
+ else if (NULL != client->mst)
+ {
ret =
GNUNET_SERVER_mst_receive (client->mst, client, buf, available,
GNUNET_NO,
GNUNET_YES);
+ }
+ else
+ {
+ GNUNET_break (0);
+ return;
+ }
+
process_mst (client, ret);
GNUNET_SERVER_client_drop (client);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r21564 - in gnunet/src: transport util,
gnunet <=