diff options
author | Florian Dold <florian.dold@gmail.com> | 2017-06-18 01:13:26 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2017-06-18 01:13:26 +0200 |
commit | b31387163769ceeeffa0037390f28d70ba530bc6 (patch) | |
tree | a5392309585d1242c12043950a1dc09cb206c5ce /src/set/gnunet-service-set_union.c | |
parent | 576541cc166763231f822d47e87e6d536b4a4adf (diff) | |
download | gnunet-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.c | 14 |
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; |