summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nest/proto.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/nest/proto.c b/nest/proto.c
index ac34d86f..6051ba9d 100644
--- a/nest/proto.c
+++ b/nest/proto.c
@@ -397,6 +397,12 @@ channel_do_flush(struct channel *c)
channel_graceful_restart_unlock(c);
CALL(c->channel->shutdown, c);
+
+ /* This have to be done in here, as channel pool is freed before channel_do_down() */
+ bmap_free(&c->export_map);
+ c->in_table = NULL;
+ c->reload_event = NULL;
+ c->out_table = NULL;
}
static void
@@ -411,7 +417,7 @@ channel_do_down(struct channel *c)
if ((c->stats.imp_routes + c->stats.filt_routes) != 0)
log(L_ERR "%s: Channel %s is down but still has some routes", c->proto->name, c->name);
- bmap_free(&c->export_map);
+ // bmap_free(&c->export_map);
memset(&c->stats, 0, sizeof(struct proto_stats));
c->in_table = NULL;