diff options
author | Nathan S. Evans <evans@in.tum.de> | 2010-01-28 15:39:31 +0000 |
---|---|---|
committer | Nathan S. Evans <evans@in.tum.de> | 2010-01-28 15:39:31 +0000 |
commit | 212af4ba3662b8a3e12590050c85805fc3abde5a (patch) | |
tree | 19df1f352ab6b5db90a7e9fd23f0bdc4a925fa43 /src | |
parent | 5862db4ccf01ab566a66b243f374e69379d8b1c9 (diff) | |
download | gnunet-212af4ba3662b8a3e12590050c85805fc3abde5a.tar.gz gnunet-212af4ba3662b8a3e12590050c85805fc3abde5a.zip |
peer disconnect bug fixed
Diffstat (limited to 'src')
-rw-r--r-- | src/transport/gnunet-service-transport.c | 16 |
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 | } |