aboutsummaryrefslogtreecommitdiff
path: root/src/cadet
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2017-02-18 20:02:21 +0100
committerChristian Grothoff <christian@grothoff.org>2017-02-18 20:02:21 +0100
commit6f8fabef01d53234928a2c766fe19b0bbb00a2a2 (patch)
treee414d6d7f375d1a4f7a017ee0a6071e4cda41126 /src/cadet
parent2beedf90ffdc6d9eb3d13e0868411cf371d06ff6 (diff)
downloadgnunet-6f8fabef01d53234928a2c766fe19b0bbb00a2a2.tar.gz
gnunet-6f8fabef01d53234928a2c766fe19b0bbb00a2a2.zip
make sure after any transmission succeeds we continue looking for more (previous code missed some corner cases, see #4896/11780)
Diffstat (limited to 'src/cadet')
-rw-r--r--src/cadet/gnunet-service-cadet-new_core.c1
-rw-r--r--src/cadet/gnunet-service-cadet-new_peer.c10
2 files changed, 10 insertions, 1 deletions
diff --git a/src/cadet/gnunet-service-cadet-new_core.c b/src/cadet/gnunet-service-cadet-new_core.c
index 05fe5f49f..3768c36a5 100644
--- a/src/cadet/gnunet-service-cadet-new_core.c
+++ b/src/cadet/gnunet-service-cadet-new_core.c
@@ -596,7 +596,6 @@ send_broken (struct RouteDirection *target,
596 bm->peer1 = *peer1; 596 bm->peer1 = *peer1;
597 if (NULL != peer2) 597 if (NULL != peer2)
598 bm->peer2 = *peer2; 598 bm->peer2 = *peer2;
599
600 GCP_request_mq_cancel (target->mqm, 599 GCP_request_mq_cancel (target->mqm,
601 env); 600 env);
602 target->mqm = NULL; 601 target->mqm = NULL;
diff --git a/src/cadet/gnunet-service-cadet-new_peer.c b/src/cadet/gnunet-service-cadet-new_peer.c
index 136ab8297..7b944afd8 100644
--- a/src/cadet/gnunet-service-cadet-new_peer.c
+++ b/src/cadet/gnunet-service-cadet-new_peer.c
@@ -1398,10 +1398,17 @@ GCP_request_mq_cancel (struct GCP_MessageQueueManager *mqm,
1398 if (NULL != last_env) 1398 if (NULL != last_env)
1399 { 1399 {
1400 if (NULL != cp->core_mq) 1400 if (NULL != cp->core_mq)
1401 {
1402 GNUNET_MQ_notify_sent (last_env,
1403 &mqm_send_done,
1404 cp);
1401 GNUNET_MQ_send (cp->core_mq, 1405 GNUNET_MQ_send (cp->core_mq,
1402 last_env); 1406 last_env);
1407 }
1403 else 1408 else
1409 {
1404 GNUNET_MQ_discard (last_env); 1410 GNUNET_MQ_discard (last_env);
1411 }
1405 } 1412 }
1406 if (cp->mqm_ready_ptr == mqm) 1413 if (cp->mqm_ready_ptr == mqm)
1407 cp->mqm_ready_ptr = mqm->next; 1414 cp->mqm_ready_ptr = mqm->next;
@@ -1433,6 +1440,9 @@ GCP_send_ooo (struct CadetPeer *cp,
1433 GNUNET_MQ_discard (env); 1440 GNUNET_MQ_discard (env);
1434 return; 1441 return;
1435 } 1442 }
1443 GNUNET_MQ_notify_sent (env,
1444 &mqm_send_done,
1445 cp);
1436 GNUNET_MQ_send (cp->core_mq, 1446 GNUNET_MQ_send (cp->core_mq,
1437 env); 1447 env);
1438} 1448}