[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r30841 - gnunet/src/mesh
From: |
gnunet |
Subject: |
[GNUnet-SVN] r30841 - gnunet/src/mesh |
Date: |
Thu, 21 Nov 2013 18:08:07 +0100 |
Author: bartpolot
Date: 2013-11-21 18:08:07 +0100 (Thu, 21 Nov 2013)
New Revision: 30841
Modified:
gnunet/src/mesh/gnunet-service-mesh_local.c
Log:
- don't crash on channel not found
Modified: gnunet/src/mesh/gnunet-service-mesh_local.c
===================================================================
--- gnunet/src/mesh/gnunet-service-mesh_local.c 2013-11-21 16:20:19 UTC (rev
30840)
+++ gnunet/src/mesh/gnunet-service-mesh_local.c 2013-11-21 17:08:07 UTC (rev
30841)
@@ -778,15 +778,29 @@
struct MeshChannel *
GML_channel_get (struct MeshClient *c, MESH_ChannelNumber chid)
{
+ struct GNUNET_CONTAINER_MultiHashMap32 *map;
+
if (0 == (chid & GNUNET_MESH_LOCAL_CHANNEL_ID_CLI))
{
GNUNET_break_op (0);
LOG (GNUNET_ERROR_TYPE_DEBUG, "CHID %X not a local chid\n", chid);
return NULL;
}
+
if (chid >= GNUNET_MESH_LOCAL_CHANNEL_ID_SERV)
- return GNUNET_CONTAINER_multihashmap32_get (c->incoming_channels, chid);
- return GNUNET_CONTAINER_multihashmap32_get (c->own_channels, chid);
+ map = c->incoming_channels;
+ else if (chid >= GNUNET_MESH_LOCAL_CHANNEL_ID_CLI)
+ map = c->own_channels;
+
+ if (NULL == map)
+ {
+ GNUNET_break (0);
+ LOG (GNUNET_ERROR_TYPE_DEBUG,
+ "Client %s does no t have a valid map for CHID %X\n",
+ GML_2s (c), chid);
+ return NULL;
+ }
+ return GNUNET_CONTAINER_multihashmap32_get (map, chid);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r30841 - gnunet/src/mesh,
gnunet <=