void
access_destroy_by_profile(profile_t *pro, int delconf)
{
- idnode_list_destroy(&pro->pro_accesses, pro);
+ idnode_list_destroy(&pro->pro_accesses, delconf ? pro : NULL);
}
/*
void
access_destroy_by_dvr_config(dvr_config_t *cfg, int delconf)
{
- idnode_list_destroy(&cfg->dvr_accesses, cfg);
+ idnode_list_destroy(&cfg->dvr_accesses, delconf ? cfg : NULL);
}
/*
void
access_destroy_by_channel_tag(channel_tag_t *ct, int delconf)
{
- idnode_list_destroy(&ct->ct_accesses, ct);
+ idnode_list_destroy(&ct->ct_accesses, delconf ? ct : NULL);
}
/**
/* Tags */
while((ilm = LIST_FIRST(&ch->ch_ctms)) != NULL)
- channel_tag_mapping_destroy(ilm, ch);
+ channel_tag_mapping_destroy(ilm, delconf ? ch : NULL);
/* DVR */
autorec_destroy_by_channel(ch, delconf);
/* Services */
while((ilm = LIST_FIRST(&ch->ch_services)) != NULL)
- idnode_list_unlink(ilm, ch);
+ idnode_list_unlink(ilm, delconf ? ch : NULL);
/* Subscriptions */
while((s = LIST_FIRST(&ch->ch_subscriptions)) != NULL) {
{
idnode_list_mapping_t *ilm;
- if (delconf) {
- while((ilm = LIST_FIRST(&ct->ct_ctms)) != NULL)
- channel_tag_mapping_destroy(ilm, ilm->ilm_in1);
+ while((ilm = LIST_FIRST(&ct->ct_ctms)) != NULL)
+ channel_tag_mapping_destroy(ilm, delconf ? ilm->ilm_in1 : NULL);
+
+ if (delconf)
hts_settings_remove("channel/tag/%s", idnode_uuid_as_str(&ct->ct_id));
- }
if(ct->ct_enabled && !ct->ct_internal)
htsp_tag_delete(ct);
service_mapper_remove(t);
- while((s = LIST_FIRST(&t->s_subscriptions)) != NULL) {
+ while((s = LIST_FIRST(&t->s_subscriptions)) != NULL)
subscription_unlink_service(s, SM_CODE_SOURCE_DELETED);
- }
while ((ilm = LIST_FIRST(&t->s_channels)))
- idnode_list_unlink(ilm, t);
+ idnode_list_unlink(ilm, delconf ? t : NULL);
idnode_unlink(&t->s_id);