[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r15133 - gnunet/src/mesh
From: |
gnunet |
Subject: |
[GNUnet-SVN] r15133 - gnunet/src/mesh |
Date: |
Mon, 2 May 2011 12:59:03 +0200 |
Author: bartpolot
Date: 2011-05-02 12:59:03 +0200 (Mon, 02 May 2011)
New Revision: 15133
Modified:
gnunet/src/mesh/gnunet-service-mesh.c
Log:
WiP
Modified: gnunet/src/mesh/gnunet-service-mesh.c
===================================================================
--- gnunet/src/mesh/gnunet-service-mesh.c 2011-05-02 10:51:57 UTC (rev
15132)
+++ gnunet/src/mesh/gnunet-service-mesh.c 2011-05-02 10:59:03 UTC (rev
15133)
@@ -859,11 +859,11 @@
struct Client *c;
struct MESH_tunnel *t;
struct Path *p;
- struct Path *aux;
+ struct Path *aux_path;
MESH_TunnelID tid;
GNUNET_PEER_Id peer_id;
struct PeerInfo *peer_info;
- int i;
+ struct PeerInfo *aux_peer_info;
/* Sanity check for client registration */
if(NULL == (c = client_retrieve(client))) {
@@ -905,18 +905,18 @@
return;
}
- /* Ok, delete peer from tunnel */
+ /* Ok, delete peer from tunnel */
p = t->paths_head;
peer_id = GNUNET_PEER_intern(&peer_msg->peer);
+
+ /* Delete paths */
while(p != NULL) {
if(p->peers[p->length-1] == peer_id) {
GNUNET_CONTAINER_DLL_remove(t->paths_head, t->paths_tail, p);
- for(i = 0; i < p->length; i++) {
- GNUNET_PEER_change_rc(p->peers[i], -1);
- }
- aux = p;
+ GNUNET_PEER_decrement_rcs(p->peers, p->length);
+ aux_path = p;
p = p->next;
- GNUNET_free(aux);
+ GNUNET_free(aux_path);
} else {
p = p->next;
}
@@ -924,6 +924,25 @@
break;
}
}
+
+ /*Delete peer info */
+ peer_info = t->peers_head;
+ while(peer_info != NULL) {
+ if(peer_info->id == peer_id) {
+ GNUNET_CONTAINER_DLL_remove(t->peers_head,
+ t->peers_tail,
+ peer_info);
+ aux_peer_info = peer_info;
+ peer_info = peer_info->next;
+ GNUNET_free(aux_peer_info);
+ } else {
+ peer_info = peer_info->next;
+ }
+ if(peer_info == t->peers_head) {
+ break;
+ }
+ }
+
GNUNET_PEER_change_rc(peer_id, -1);
GNUNET_SERVER_receive_done(client, GNUNET_OK);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r15133 - gnunet/src/mesh,
gnunet <=