aboutsummaryrefslogtreecommitdiff
path: root/src/mesh
diff options
context:
space:
mode:
authorBart Polot <bart@net.in.tum.de>2011-10-14 11:38:40 +0000
committerBart Polot <bart@net.in.tum.de>2011-10-14 11:38:40 +0000
commit8a1d955ccbf2ee62eef41802f3d4b0f71e022c9d (patch)
treebc40f0211c998c6904b14e1d9fa93c36151ab73c /src/mesh
parent5abcb3f3648cc184e0b7c9960d6c35fc2703b418 (diff)
downloadgnunet-8a1d955ccbf2ee62eef41802f3d4b0f71e022c9d.tar.gz
gnunet-8a1d955ccbf2ee62eef41802f3d4b0f71e022c9d.zip
Removed unnecessary hashmap actions
Diffstat (limited to 'src/mesh')
-rw-r--r--src/mesh/gnunet-service-mesh.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/mesh/gnunet-service-mesh.c b/src/mesh/gnunet-service-mesh.c
index 773710611..2fb1070ae 100644
--- a/src/mesh/gnunet-service-mesh.c
+++ b/src/mesh/gnunet-service-mesh.c
@@ -255,6 +255,7 @@ struct MeshTunnel
255 255
256 /** 256 /**
257 * Peers in the tunnel, indexed by PeerIdentity -> (MeshPeerInfo) 257 * Peers in the tunnel, indexed by PeerIdentity -> (MeshPeerInfo)
258 * containing peers added by id or by type, not intermediate peers.
258 */ 259 */
259 struct GNUNET_CONTAINER_MultiHashMap *peers; 260 struct GNUNET_CONTAINER_MultiHashMap *peers;
260 261
@@ -1608,7 +1609,8 @@ tunnel_destroy (struct MeshTunnel *t)
1608 } 1609 }
1609 1610
1610 GNUNET_CRYPTO_hash (&t->local_tid, sizeof (MESH_TunnelNumber), &hash); 1611 GNUNET_CRYPTO_hash (&t->local_tid, sizeof (MESH_TunnelNumber), &hash);
1611 if (NULL != c && GNUNET_YES != GNUNET_CONTAINER_multihashmap_remove (c->tunnels, &hash, t)) 1612 if (NULL != c &&
1613 GNUNET_YES != GNUNET_CONTAINER_multihashmap_remove (c->tunnels, &hash, t))
1612 { 1614 {
1613 r = GNUNET_SYSERR; 1615 r = GNUNET_SYSERR;
1614 } 1616 }
@@ -1619,8 +1621,12 @@ tunnel_destroy (struct MeshTunnel *t)
1619 GNUNET_CONTAINER_multihashmap_remove (incoming_tunnels, &hash, t)); 1621 GNUNET_CONTAINER_multihashmap_remove (incoming_tunnels, &hash, t));
1620 } 1622 }
1621 1623
1622 GNUNET_CONTAINER_multihashmap_iterate(t->peers, &peer_info_delete_tunnel, t); 1624 if (NULL != t->peers)
1623 GNUNET_CONTAINER_multihashmap_destroy (t->peers); 1625 {
1626 GNUNET_CONTAINER_multihashmap_iterate(t->peers,
1627 &peer_info_delete_tunnel, t);
1628 GNUNET_CONTAINER_multihashmap_destroy (t->peers);
1629 }
1624 q = t->queue_head; 1630 q = t->queue_head;
1625 while (NULL != q) 1631 while (NULL != q)
1626 { 1632 {
@@ -2022,7 +2028,6 @@ handle_mesh_path_create (void *cls, const struct GNUNET_PeerIdentity *peer,
2022 t = GNUNET_malloc (sizeof (struct MeshTunnel)); 2028 t = GNUNET_malloc (sizeof (struct MeshTunnel));
2023 t->id.oid = GNUNET_PEER_intern (pi); 2029 t->id.oid = GNUNET_PEER_intern (pi);
2024 t->id.tid = tid; 2030 t->id.tid = tid;
2025 t->peers = GNUNET_CONTAINER_multihashmap_create (32);
2026 t->local_tid = next_local_tid++; 2031 t->local_tid = next_local_tid++;
2027 /* FIXME test if taken */ 2032 /* FIXME test if taken */
2028 next_local_tid |= GNUNET_MESH_LOCAL_TUNNEL_ID_SERV; 2033 next_local_tid |= GNUNET_MESH_LOCAL_TUNNEL_ID_SERV;