mb_free(c->out_req.name);
c->out_req.name = NULL;
- if (c->restart_export)
- {
- c->restart_export = 0;
- channel_start_export(c);
- }
- else
- channel_check_stopped(c);
+ bmap_free(&c->export_map);
+ bmap_free(&c->export_reject_map);
+
+ channel_check_stopped(c);
}
static void
static void
channel_do_pause(struct channel *c)
{
- /* Stop export */
- if (c->out_req.hook)
+ /* Need to abort feeding */
+ if (c->reload_req.hook)
{
- rt_stop_export(&c->out_req, channel_export_stopped);
- c->refeeding = 0;
+ c->reload_pending = 0;
+ rt_stop_export(&c->reload_req, channel_reload_stopped);
}
+ /* Stop export */
+ if (c->refeed_pending)
+ c->refeed_pending = 0;
+ else if (c->out_req.hook)
+ rt_stop_export(&c->out_req, channel_export_stopped);
+
channel_roa_unsubscribe_all(c);
-
- bmap_free(&c->export_map);
- bmap_free(&c->export_reject_map);
}
static void