Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
idnode: fix the idnode_list_mapping - save activation, fixes #3163
  • Loading branch information
perexg committed Oct 16, 2015
1 parent 151683e commit 8fa6cd5
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 24 deletions.
24 changes: 6 additions & 18 deletions src/access.c
Expand Up @@ -1238,12 +1238,8 @@ access_entry_chtag_set_cb ( idnode_t *in1, idnode_t *in2, void *origin )
access_entry_t *ae = (access_entry_t *)in1;
idnode_list_mapping_t *ilm;
channel_tag_t *ct = (channel_tag_t *)in2;
ilm = idnode_list_link(in1, &ae->ae_chtags, in2, &ct->ct_accesses, origin);
if (ilm) {
ilm->ilm_in1_save = 1;
return 1;
}
return 0;
ilm = idnode_list_link(in1, &ae->ae_chtags, in2, &ct->ct_accesses, origin, 1);
return ilm ? 1 : 0;
}

static int
Expand Down Expand Up @@ -1273,12 +1269,8 @@ access_entry_dvr_config_set_cb ( idnode_t *in1, idnode_t *in2, void *origin )
access_entry_t *ae = (access_entry_t *)in1;
idnode_list_mapping_t *ilm;
dvr_config_t *dvr = (dvr_config_t *)in2;
ilm = idnode_list_link(in1, &ae->ae_dvr_configs, in2, &dvr->dvr_accesses, origin);
if (ilm) {
ilm->ilm_in1_save = 1;
return 1;
}
return 0;
ilm = idnode_list_link(in1, &ae->ae_dvr_configs, in2, &dvr->dvr_accesses, origin, 1);
return ilm ? 1 : 0;
}

static int
Expand Down Expand Up @@ -1308,12 +1300,8 @@ access_entry_profile_set_cb ( idnode_t *in1, idnode_t *in2, void *origin )
access_entry_t *ae = (access_entry_t *)in1;
idnode_list_mapping_t *ilm;
profile_t *pro = (profile_t *)in2;
ilm = idnode_list_link(in1, &ae->ae_profiles, in2, &pro->pro_accesses, origin);
if (ilm) {
ilm->ilm_in1_save = 1;
return 1;
}
return 0;
ilm = idnode_list_link(in1, &ae->ae_profiles, in2, &pro->pro_accesses, origin, 1);
return ilm ? 1 : 0;
}

static int
Expand Down
3 changes: 1 addition & 2 deletions src/channels.c
Expand Up @@ -934,9 +934,8 @@ channel_tag_map(channel_tag_t *ct, channel_t *ch, void *origin)

ilm = idnode_list_link(&ct->ct_id, &ct->ct_ctms,
&ch->ch_id, &ch->ch_ctms,
origin);
origin, 2);
if (ilm) {
ilm->ilm_in2_save = 1; /* channel */
if(ct->ct_enabled && !ct->ct_internal) {
htsp_tag_update(ct);
htsp_channel_update(ch);
Expand Down
4 changes: 3 additions & 1 deletion src/idnode.c
Expand Up @@ -1359,7 +1359,7 @@ idnode_list_notify ( idnode_list_mapping_t *ilm, void *origin )
idnode_list_mapping_t *
idnode_list_link ( idnode_t *in1, idnode_list_head_t *in1_list,
idnode_t *in2, idnode_list_head_t *in2_list,
void *origin )
void *origin, uint32_t savemask )
{
idnode_list_mapping_t *ilm;

Expand All @@ -1381,6 +1381,8 @@ idnode_list_link ( idnode_t *in1, idnode_list_head_t *in1_list,
ilm->ilm_in2 = in2;
LIST_INSERT_HEAD(in1_list, ilm, ilm_in1_link);
LIST_INSERT_HEAD(in2_list, ilm, ilm_in2_link);
ilm->ilm_in1_save = savemask & 1;
ilm->ilm_in2_save = (savemask >> 1) & 1;
idnode_list_notify(ilm, origin);
return ilm;
}
Expand Down
2 changes: 1 addition & 1 deletion src/idnode.h
Expand Up @@ -223,7 +223,7 @@ static inline void idnode_perm_unset(idnode_t *self) { self->in_access = NULL; }
idnode_list_mapping_t * idnode_list_link
( idnode_t *in1, idnode_list_head_t *in1_list,
idnode_t *in2, idnode_list_head_t *in2_list,
void *origin );
void *origin, uint32_t savemask );
void idnode_list_unlink ( idnode_list_mapping_t *ilm, void *origin );
void idnode_list_destroy ( idnode_list_head_t *ilh, void *origin );
htsmsg_t * idnode_list_get1 ( idnode_list_head_t *in1_list );
Expand Down
3 changes: 1 addition & 2 deletions src/service_mapper.c
Expand Up @@ -188,10 +188,9 @@ service_mapper_link ( service_t *s, channel_t *c, void *origin )

ilm = idnode_list_link(&s->s_id, &s->s_channels,
&c->ch_id, &c->ch_services,
origin);
origin, 2);
if (ilm) {
service_mapped(s);
ilm->ilm_in2_save = 1; /* channel */
return 1;
}
return 0;
Expand Down

0 comments on commit 8fa6cd5

Please sign in to comment.