aboutsummaryrefslogtreecommitdiff
path: root/src/transport/gnunet-service-transport_neighbours.c
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2011-11-02 09:10:51 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2011-11-02 09:10:51 +0000
commitdb654decb01a63fe8e80ed6d03d9a0594d30e3e5 (patch)
treeff17478723a36896c46210e8921c8b04c1229895 /src/transport/gnunet-service-transport_neighbours.c
parentd7cb39fe2f10129acb2a2f6fdab6c1f0365cf931 (diff)
downloadgnunet-db654decb01a63fe8e80ed6d03d9a0594d30e3e5.tar.gz
gnunet-db654decb01a63fe8e80ed6d03d9a0594d30e3e5.zip
fixing https://www.gnunet.org/bugs/view.php?id=1867
Diffstat (limited to 'src/transport/gnunet-service-transport_neighbours.c')
-rw-r--r--src/transport/gnunet-service-transport_neighbours.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/transport/gnunet-service-transport_neighbours.c b/src/transport/gnunet-service-transport_neighbours.c
index 7c2536eb1..93a8c893c 100644
--- a/src/transport/gnunet-service-transport_neighbours.c
+++ b/src/transport/gnunet-service-transport_neighbours.c
@@ -579,6 +579,7 @@ send_with_plugin ( const struct GNUNET_PeerIdentity * target,
579 struct GNUNET_TRANSPORT_PluginFunctions *papi; 579 struct GNUNET_TRANSPORT_PluginFunctions *papi;
580 size_t ret = GNUNET_SYSERR; 580 size_t ret = GNUNET_SYSERR;
581 581
582 GNUNET_assert (plugin_name != NULL);
582 papi = GST_plugins_find (plugin_name); 583 papi = GST_plugins_find (plugin_name);
583 if (papi == NULL) 584 if (papi == NULL)
584 { 585 {
@@ -1033,6 +1034,7 @@ send_connect_continuation (void *cls,
1033 1034
1034 if (is_disconnecting(n)) 1035 if (is_disconnecting(n))
1035 return; /* neighbour is going away */ 1036 return; /* neighbour is going away */
1037
1036 if (GNUNET_YES != success) 1038 if (GNUNET_YES != success)
1037 { 1039 {
1038#if DEBUG_TRANSPORT 1040#if DEBUG_TRANSPORT
@@ -1052,13 +1054,16 @@ send_connect_continuation (void *cls,
1052 n->addrlen, 1054 n->addrlen,
1053 NULL); 1055 NULL);
1054 1056
1057 change_state(n, S_NOT_CONNECTED);
1058
1055 if (n->ats_suggest!= GNUNET_SCHEDULER_NO_TASK) 1059 if (n->ats_suggest!= GNUNET_SCHEDULER_NO_TASK)
1056 GNUNET_SCHEDULER_cancel(n->ats_suggest); 1060 GNUNET_SCHEDULER_cancel(n->ats_suggest);
1057 n->ats_suggest = GNUNET_SCHEDULER_add_delayed (ATS_RESPONSE_TIMEOUT, ats_suggest_cancel, n); 1061 n->ats_suggest = GNUNET_SCHEDULER_add_delayed (ATS_RESPONSE_TIMEOUT, ats_suggest_cancel, n);
1058 GNUNET_ATS_suggest_address(GST_ats, &n->id); 1062 GNUNET_ATS_suggest_address(GST_ats, &n->id);
1059 return; 1063 return;
1060 } 1064 }
1061 change_state(n, S_CONNECT_SENT); 1065
1066
1062} 1067}
1063 1068
1064 1069
@@ -1275,6 +1280,8 @@ GST_neighbours_switch_to_address_3way (const struct GNUNET_PeerIdentity *peer,
1275 connect_msg.timestamp = 1280 connect_msg.timestamp =
1276 GNUNET_TIME_absolute_hton (GNUNET_TIME_absolute_get ()); 1281 GNUNET_TIME_absolute_hton (GNUNET_TIME_absolute_get ());
1277 1282
1283 change_state (n, S_CONNECT_SENT);
1284
1278 ret = send_with_plugin (peer, (const char *) &connect_msg, msg_len, UINT32_MAX, GNUNET_TIME_UNIT_FOREVER_REL, 1285 ret = send_with_plugin (peer, (const char *) &connect_msg, msg_len, UINT32_MAX, GNUNET_TIME_UNIT_FOREVER_REL,
1279 session, plugin_name, address, address_len, 1286 session, plugin_name, address, address_len,
1280 GNUNET_YES, &send_connect_continuation, n); 1287 GNUNET_YES, &send_connect_continuation, n);
@@ -1324,7 +1331,6 @@ GST_neighbours_switch_to_address_3way (const struct GNUNET_PeerIdentity *peer,
1324 } 1331 }
1325 else if (n->state == S_CONNECT_SENT) 1332 else if (n->state == S_CONNECT_SENT)
1326 { 1333 {
1327 //FIXME
1328 return GNUNET_NO; 1334 return GNUNET_NO;
1329 } 1335 }
1330 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Invalid connection state to switch addresses %u \n", n->state); 1336 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Invalid connection state to switch addresses %u \n", n->state);