aboutsummaryrefslogtreecommitdiff
path: root/src/set/gnunet-service-set_union.c
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-06-18 01:13:26 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-06-18 01:13:26 +0200
commitb31387163769ceeeffa0037390f28d70ba530bc6 (patch)
treea5392309585d1242c12043950a1dc09cb206c5ce /src/set/gnunet-service-set_union.c
parent576541cc166763231f822d47e87e6d536b4a4adf (diff)
downloadgnunet-b31387163769ceeeffa0037390f28d70ba530bc6.tar.gz
gnunet-b31387163769ceeeffa0037390f28d70ba530bc6.zip
SET: add another CADET bug workaround
This time it's something that occurs pretty rarely, and only when sending the full set is triggered.
Diffstat (limited to 'src/set/gnunet-service-set_union.c')
-rw-r--r--src/set/gnunet-service-set_union.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/set/gnunet-service-set_union.c b/src/set/gnunet-service-set_union.c
index bb2acbf59..94910dd02 100644
--- a/src/set/gnunet-service-set_union.c
+++ b/src/set/gnunet-service-set_union.c
@@ -1869,23 +1869,27 @@ handle_union_p2p_full_done (void *cls,
1869 op); 1869 op);
1870 1870
1871 ev = GNUNET_MQ_msg_header (GNUNET_MESSAGE_TYPE_SET_UNION_P2P_FULL_DONE); 1871 ev = GNUNET_MQ_msg_header (GNUNET_MESSAGE_TYPE_SET_UNION_P2P_FULL_DONE);
1872 GNUNET_MQ_notify_sent (ev,
1873 &send_client_done,
1874 op);
1875 GNUNET_MQ_send (op->mq, 1872 GNUNET_MQ_send (op->mq,
1876 ev); 1873 ev);
1877 op->state->phase = PHASE_DONE; 1874 op->state->phase = PHASE_DONE;
1878 /* we now wait until the other peer shuts the tunnel down*/ 1875 /* we now wait until the other peer sends us the OVER message*/
1879 } 1876 }
1880 break; 1877 break;
1881 case PHASE_FULL_SENDING: 1878 case PHASE_FULL_SENDING:
1882 { 1879 {
1880 struct GNUNET_MQ_Envelope *ev;
1881
1883 LOG (GNUNET_ERROR_TYPE_DEBUG, 1882 LOG (GNUNET_ERROR_TYPE_DEBUG,
1884 "got FULL DONE, finishing\n"); 1883 "got FULL DONE, finishing\n");
1885 /* We sent the full set, and got the response for that. We're done. */ 1884 /* We sent the full set, and got the response for that. We're done. */
1886 op->state->phase = PHASE_DONE; 1885 op->state->phase = PHASE_DONE;
1887 GNUNET_CADET_receive_done (op->channel); 1886 GNUNET_CADET_receive_done (op->channel);
1888 send_client_done_and_destroy (op); 1887 ev = GNUNET_MQ_msg_header (GNUNET_MESSAGE_TYPE_SET_UNION_P2P_OVER);
1888 GNUNET_MQ_notify_sent (ev,
1889 &send_client_done,
1890 op);
1891 GNUNET_MQ_send (op->mq,
1892 ev);
1889 return; 1893 return;
1890 } 1894 }
1891 break; 1895 break;