summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nest/proto.c11
-rw-r--r--nest/rt-table.c2
2 files changed, 4 insertions, 9 deletions
diff --git a/nest/proto.c b/nest/proto.c
index 978582ca..7a09ed64 100644
--- a/nest/proto.c
+++ b/nest/proto.c
@@ -596,6 +596,9 @@ channel_export_stopped(struct rt_export_request *req)
mb_free(c->out_req.name);
c->out_req.name = NULL;
+ bmap_free(&c->export_map);
+ bmap_free(&c->export_reject_map);
+
if (c->restart_export)
{
c->restart_export = 0;
@@ -993,9 +996,6 @@ channel_do_pause(struct channel *c)
}
channel_roa_unsubscribe_all(c);
-
- bmap_free(&c->export_map);
- bmap_free(&c->export_reject_map);
}
static void
@@ -1035,16 +1035,11 @@ channel_do_down(struct channel *c)
c->proto->active_channels--;
- // bmap_free(&c->export_map);
memset(&c->import_stats, 0, sizeof(struct channel_import_stats));
memset(&c->export_stats, 0, sizeof(struct channel_export_stats));
CALL(c->channel->cleanup, c);
- /* This have to be done in here, as channel pool is freed before channel_do_down() */
- bmap_free(&c->export_map);
- bmap_free(&c->export_reject_map);
-
/* Schedule protocol shutddown */
if (proto_is_done(c->proto))
proto_send_event(c->proto);
diff --git a/nest/rt-table.c b/nest/rt-table.c
index d09abbef..c53fd195 100644
--- a/nest/rt-table.c
+++ b/nest/rt-table.c
@@ -507,7 +507,7 @@ export_filter_(struct channel *c, rte *rt, linpool *pool, int silent)
stats->updates_rejected++;
if (v == RIC_REJECT)
channel_rte_trace_out(D_FILTERS, c, rt, "rejected by protocol");
- goto reject_noset;
+ goto reject;
}
if (v > 0)