aboutsummaryrefslogtreecommitdiff
path: root/src/cadet/cadet_api.c
diff options
context:
space:
mode:
authorJulius Bünger <buenger@mytum.de>2018-06-29 00:15:42 +0200
committerJulius Bünger <buenger@mytum.de>2018-06-29 00:15:42 +0200
commit059aa99083b26474f9fa55ad218c611f67db8e1e (patch)
tree5de9dcb70cf07847703550e44926358c097c59df /src/cadet/cadet_api.c
parent8a9a639ad45d0900e185221f015bb64936361629 (diff)
downloadgnunet-059aa99083b26474f9fa55ad218c611f67db8e1e.tar.gz
gnunet-059aa99083b26474f9fa55ad218c611f67db8e1e.zip
fix cadet api: handle shutdon correctly
Diffstat (limited to 'src/cadet/cadet_api.c')
-rw-r--r--src/cadet/cadet_api.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/cadet/cadet_api.c b/src/cadet/cadet_api.c
index 85a8be522..319279110 100644
--- a/src/cadet/cadet_api.c
+++ b/src/cadet/cadet_api.c
@@ -1253,18 +1253,21 @@ GNUNET_CADET_disconnect (struct GNUNET_CADET_Handle *handle)
1253void 1253void
1254GNUNET_CADET_close_port (struct GNUNET_CADET_Port *p) 1254GNUNET_CADET_close_port (struct GNUNET_CADET_Port *p)
1255{ 1255{
1256 struct GNUNET_CADET_PortMessage *msg;
1257 struct GNUNET_MQ_Envelope *env;
1258
1259 GNUNET_assert (GNUNET_YES == 1256 GNUNET_assert (GNUNET_YES ==
1260 GNUNET_CONTAINER_multihashmap_remove (p->cadet->ports, 1257 GNUNET_CONTAINER_multihashmap_remove (p->cadet->ports,
1261 &p->id, 1258 &p->id,
1262 p)); 1259 p));
1263 env = GNUNET_MQ_msg (msg, 1260 if (NULL != p->cadet->mq)
1264 GNUNET_MESSAGE_TYPE_CADET_LOCAL_PORT_CLOSE); 1261 {
1265 msg->port = p->id; 1262 struct GNUNET_CADET_PortMessage *msg;
1266 GNUNET_MQ_send (p->cadet->mq, 1263 struct GNUNET_MQ_Envelope *env;
1267 env); 1264
1265 env = GNUNET_MQ_msg (msg,
1266 GNUNET_MESSAGE_TYPE_CADET_LOCAL_PORT_CLOSE);
1267 msg->port = p->id;
1268 GNUNET_MQ_send (p->cadet->mq,
1269 env);
1270 }
1268 GNUNET_free_non_null (p->handlers); 1271 GNUNET_free_non_null (p->handlers);
1269 GNUNET_free (p); 1272 GNUNET_free (p);
1270} 1273}