aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNathan S. Evans <evans@in.tum.de>2010-01-28 15:39:31 +0000
committerNathan S. Evans <evans@in.tum.de>2010-01-28 15:39:31 +0000
commit212af4ba3662b8a3e12590050c85805fc3abde5a (patch)
tree19df1f352ab6b5db90a7e9fd23f0bdc4a925fa43 /src
parent5862db4ccf01ab566a66b243f374e69379d8b1c9 (diff)
downloadgnunet-212af4ba3662b8a3e12590050c85805fc3abde5a.tar.gz
gnunet-212af4ba3662b8a3e12590050c85805fc3abde5a.zip
peer disconnect bug fixed
Diffstat (limited to 'src')
-rw-r--r--src/transport/gnunet-service-transport.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/transport/gnunet-service-transport.c b/src/transport/gnunet-service-transport.c
index 62f502068..d76e69b7b 100644
--- a/src/transport/gnunet-service-transport.c
+++ b/src/transport/gnunet-service-transport.c
@@ -1055,7 +1055,7 @@ transmit_send_continuation (void *cls,
1055 int result) 1055 int result)
1056{ 1056{
1057 struct MessageQueue *mq = cls; 1057 struct MessageQueue *mq = cls;
1058 struct ReadyList *rl; 1058 /*struct ReadyList *rl;*/ /* We no longer use the ReadyList for anything here, safe to remove? */
1059 struct SendOkMessage send_ok_msg; 1059 struct SendOkMessage send_ok_msg;
1060 struct NeighborList *n; 1060 struct NeighborList *n;
1061 1061
@@ -1065,10 +1065,12 @@ transmit_send_continuation (void *cls,
1065 GNUNET_assert (0 == 1065 GNUNET_assert (0 ==
1066 memcmp (&n->id, target, 1066 memcmp (&n->id, target,
1067 sizeof (struct GNUNET_PeerIdentity))); 1067 sizeof (struct GNUNET_PeerIdentity)));
1068 rl = n->plugins; 1068/* rl = n->plugins;
1069 while ((rl != NULL) && (rl->plugin != mq->plugin)) 1069 while ((rl != NULL) && (rl->plugin != mq->plugin))
1070 rl = rl->next; 1070 rl = rl->next;
1071 GNUNET_assert (rl != NULL); 1071 GNUNET_assert (rl != NULL);
1072*/
1073
1072 if (result == GNUNET_OK) 1074 if (result == GNUNET_OK)
1073 { 1075 {
1074 mq->specific_peer->timeout = 1076 mq->specific_peer->timeout =
@@ -2232,14 +2234,20 @@ disconnect_neighbor (struct NeighborList *n, int check)
2232 struct NeighborList *npos; 2234 struct NeighborList *npos;
2233 struct NeighborList *nprev; 2235 struct NeighborList *nprev;
2234 struct MessageQueue *mq; 2236 struct MessageQueue *mq;
2237 struct PeerAddressList *peer_addresses;
2235 2238
2236 if (GNUNET_YES == check) 2239 if (GNUNET_YES == check)
2237 { 2240 {
2238 rpos = n->plugins; 2241 rpos = n->plugins;
2239 while (NULL != rpos) 2242 while (NULL != rpos)
2240 { 2243 {
2241 if (GNUNET_YES == rpos->connected) 2244 peer_addresses = rpos->addresses;
2242 return; /* still connected */ 2245 while (peer_addresses != NULL)
2246 {
2247 if (GNUNET_YES == peer_addresses->connected)
2248 return; /* still connected */
2249 peer_addresses = peer_addresses->next;
2250 }
2243 rpos = rpos->next; 2251 rpos = rpos->next;
2244 } 2252 }
2245 } 2253 }