aboutsummaryrefslogtreecommitdiff
path: root/src/protocol/pubsub/sub.c
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2017-01-05 01:57:28 -0800
committerGarrett D'Amore <garrett@damore.org>2017-01-05 01:57:28 -0800
commit59d5788ffad9647d1d0879115d97d1502151aa09 (patch)
tree474c67044591ed676597900bc884cd2310b0cf5f /src/protocol/pubsub/sub.c
parent5d0fb985db60c0807efc76f05edc8d4d3e5ffa95 (diff)
downloadnng-59d5788ffad9647d1d0879115d97d1502151aa09.tar.gz
nng-59d5788ffad9647d1d0879115d97d1502151aa09.tar.bz2
nng-59d5788ffad9647d1d0879115d97d1502151aa09.zip
Release subscriptions on socket close.
Diffstat (limited to 'src/protocol/pubsub/sub.c')
-rw-r--r--src/protocol/pubsub/sub.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/protocol/pubsub/sub.c b/src/protocol/pubsub/sub.c
index a1f23607..6fd99f46 100644
--- a/src/protocol/pubsub/sub.c
+++ b/src/protocol/pubsub/sub.c
@@ -69,8 +69,13 @@ static void
nni_sub_fini(void *arg)
{
nni_sub_sock *sub = arg;
+ nni_topic *topic;
- // XXX: free subscriptions...
+ while ((topic = nni_list_first(&sub->topics)) != NULL) {
+ nni_list_remove(&sub->topics, topic);
+ nni_free(topic->buf, topic->len);
+ NNI_FREE_STRUCT(topic);
+ }
nni_mtx_fini(&sub->mx);
NNI_FREE_STRUCT(sub);
}