From fdaa48b32b0566fbf56a588e54fec28b4350d35a Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Tue, 16 Oct 2018 09:01:25 +0200 Subject: [PATCH] htsmg: align the access to list/dictionary --- src/access.c | 6 +- src/bouquet.c | 4 +- src/channels.c | 4 +- src/config.c | 84 +++++++++++++-------------- src/descrambler/caclient.c | 2 +- src/dvr/dvr_autorec.c | 2 +- src/dvr/dvr_config.c | 2 +- src/dvr/dvr_db.c | 9 +-- src/dvr/dvr_timerec.c | 2 +- src/epg.c | 2 +- src/epggrab.c | 2 +- src/epggrab/module.c | 6 +- src/epggrab/module/eit.c | 12 ++-- src/epggrab/module/opentv.c | 22 +++---- src/epggrab/module/xmltv.c | 34 +++++------ src/epggrab/otamux.c | 2 +- src/esfilter.c | 2 +- src/htsmsg.c | 43 +++++++------- src/htsmsg.h | 22 ++++++- src/htsmsg_binary.c | 20 +++---- src/htsmsg_binary2.c | 20 +++---- src/htsmsg_json.c | 2 +- src/imagecache.c | 2 +- src/input/mpegts/iptv/iptv.c | 6 +- src/input/mpegts/iptv/iptv_mux.c | 2 +- src/input/mpegts/mpegts_mux_dvb.c | 2 +- src/input/mpegts/mpegts_mux_sched.c | 2 +- src/input/mpegts/mpegts_network_dvb.c | 4 +- src/lang_str.c | 2 +- src/notify.c | 2 +- src/profile.c | 2 +- src/prop.c | 8 +-- src/transcoding/codec/profile.c | 2 +- src/webui/xmltv.c | 2 +- 34 files changed, 180 insertions(+), 160 deletions(-) diff --git a/src/access.c b/src/access.c index bf93919c5..5c524a82e 100644 --- a/src/access.c +++ b/src/access.c @@ -2236,7 +2236,7 @@ access_init(int createdefault, int noacl) if ((c = hts_settings_load("ipblock")) != NULL) { HTSMSG_FOREACH(f, c) { if (!(m = htsmsg_field_get_map(f))) continue; - (void)ipblock_entry_create(f->hmf_name, m); + (void)ipblock_entry_create(htsmsg_field_name(f), m); } htsmsg_destroy(c); } @@ -2245,7 +2245,7 @@ access_init(int createdefault, int noacl) if ((c = hts_settings_load("passwd")) != NULL) { HTSMSG_FOREACH(f, c) { if (!(m = htsmsg_field_get_map(f))) continue; - (void)passwd_entry_create(f->hmf_name, m); + (void)passwd_entry_create(htsmsg_field_name(f), m); } htsmsg_destroy(c); } @@ -2254,7 +2254,7 @@ access_init(int createdefault, int noacl) if ((c = hts_settings_load("accesscontrol")) != NULL) { HTSMSG_FOREACH(f, c) { if (!(m = htsmsg_field_get_map(f))) continue; - (void)access_entry_create(f->hmf_name, m); + (void)access_entry_create(htsmsg_field_name(f), m); } htsmsg_destroy(c); access_entry_reindex(); diff --git a/src/bouquet.c b/src/bouquet.c index d6f268684..96c01f0d4 100644 --- a/src/bouquet.c +++ b/src/bouquet.c @@ -1266,7 +1266,7 @@ bouquet_init(void) if ((c = hts_settings_load("bouquet")) != NULL) { HTSMSG_FOREACH(f, c) { if (!(m = htsmsg_field_get_map(f))) continue; - bq = bouquet_create(f->hmf_name, m, NULL, NULL); + bq = bouquet_create(htsmsg_field_name(f), m, NULL, NULL); if (bq) bq->bq_saveflag = 0; } @@ -1296,7 +1296,7 @@ bouquet_service_resolve(void) if ((e = htsmsg_field_get_map(f)) == NULL) continue; lcn = htsmsg_get_s64_or_default(e, "lcn", 0); tag = htsmsg_get_str(e, "tag"); - s = service_find_by_uuid(f->hmf_name); + s = service_find_by_uuid(htsmsg_field_name(f)); if (s) bouquet_add_service(bq, s, lcn, tag); } diff --git a/src/channels.c b/src/channels.c index bf7e186f0..996d81250 100644 --- a/src/channels.c +++ b/src/channels.c @@ -1464,7 +1464,7 @@ channel_init ( void ) channel_in_load = 1; HTSMSG_FOREACH(f, c) { if (!(e = htsmsg_field_get_map(f))) continue; - (void)channel_create(f->hmf_name, e, NULL); + (void)channel_create(htsmsg_field_name(f), e, NULL); } channel_in_load = 0; htsmsg_destroy(c); @@ -1967,7 +1967,7 @@ channel_tag_init ( void ) if ((c = hts_settings_load("channel/tag")) != NULL) { HTSMSG_FOREACH(f, c) { if (!(m = htsmsg_field_get_map(f))) continue; - (void)channel_tag_create(f->hmf_name, m); + (void)channel_tag_create(htsmsg_field_name(f), m); } htsmsg_destroy(c); } diff --git a/src/config.c b/src/config.c index 984d20c3d..35548a59a 100644 --- a/src/config.c +++ b/src/config.c @@ -265,7 +265,7 @@ config_migrate_v1_dvb_network htsmsg_destroy(mux); /* Services */ - config_migrate_v1_dvb_svcs(f->hmf_name, ubuf, ubuf2, channels); + config_migrate_v1_dvb_svcs(htsmsg_field_name(f), ubuf, ubuf2, channels); } /* Add properties derived from network */ @@ -295,7 +295,7 @@ config_migrate_v1_dvr ( const char *path, htsmsg_t *channels ) if ((str = config_migrate_v1_chn_name_to_uuid(channels, str))) { htsmsg_delete_field(m, "channel"); htsmsg_add_str(m, "channel", str); - hts_settings_save(m, "%s/%s", path, f->hmf_name); + hts_settings_save(m, "%s/%s", path, htsmsg_field_name(f)); } htsmsg_destroy(m); } @@ -333,7 +333,7 @@ config_migrate_v1_epggrab ( const char *path, htsmsg_t *channels ) htsmsg_add_str(chns, NULL, str); } htsmsg_add_msg(m, "channels", chns); - hts_settings_save(m, "%s/%s", path, f->hmf_name); + hts_settings_save(m, "%s/%s", path, htsmsg_field_name(f)); htsmsg_destroy(m); } htsmsg_destroy(c); @@ -369,7 +369,7 @@ config_migrate_v1 ( void ) /* Build entry */ uuid_set(&chnu, NULL); m = htsmsg_create_map(); - htsmsg_add_u32(m, "channelid", atoi(f->hmf_name)); + htsmsg_add_u32(m, "channelid", atoi(htsmsg_field_name(f))); htsmsg_add_str(m, "uuid", uuid_get_hex(&chnu, ubufc)); htsmsg_add_msg(m, "services", htsmsg_create_list()); if (!htsmsg_get_u32(e, "dvr_extra_time_pre", &u32)) @@ -454,7 +454,7 @@ config_migrate_v1 ( void ) if ((c = hts_settings_load_r(2, "dvbmuxes"))) { HTSMSG_FOREACH(f, c) { if (!(e = htsmsg_field_get_map(f))) continue; - config_migrate_v1_dvb_network(f->hmf_name, e, channels); + config_migrate_v1_dvb_network(htsmsg_field_name(f), e, channels); } htsmsg_destroy(c); } @@ -550,7 +550,7 @@ config_migrate_v5 ( void ) str = tvh_strdupa(str+5); htsmsg_delete_field(e, "class"); htsmsg_add_str(e, "class", str); - hts_settings_save(e, "input/dvb/networks/%s/config", f->hmf_name); + hts_settings_save(e, "input/dvb/networks/%s/config", htsmsg_field_name(f)); } } } @@ -640,7 +640,7 @@ config_migrate_v6 ( void ) if ((ch = htsmsg_get_map_by_field(f))) { if ((str = htsmsg_get_str(ch, "xmltv-channel"))) { if ((xc = htsmsg_get_map(xchs, str))) { - htsmsg_add_u32(xc, "channel", atoi(f->hmf_name)); + htsmsg_add_u32(xc, "channel", atoi(htsmsg_field_name(f))); } } } @@ -649,7 +649,7 @@ config_migrate_v6 ( void ) if (xchs) { HTSMSG_FOREACH(f, xchs) { if ((xc = htsmsg_get_map_by_field(f))) { - hts_settings_save(xc, "epggrab/xmltv/channels/%s", f->hmf_name); + hts_settings_save(xc, "epggrab/xmltv/channels/%s", htsmsg_field_name(f)); } } } @@ -697,7 +697,7 @@ config_migrate_simple ( const char *dir, htsmsg_t *list, if (modify) modify(e, id, ubuf, aux); hts_settings_save(e, "%s/%s", dir, ubuf); - hts_settings_remove("%s/%s", dir, f->hmf_name); + hts_settings_remove("%s/%s", dir, htsmsg_field_name(f)); } htsmsg_destroy(c); @@ -777,7 +777,7 @@ config_migrate_v8 ( void ) htsmsg_add_msg(e, "tags", htsmsg_copy(m)); htsmsg_delete_field(e, "tags_new"); } - hts_settings_save(e, "channel/%s", f->hmf_name); + hts_settings_save(e, "channel/%s", htsmsg_field_name(f)); } htsmsg_destroy(ch); } @@ -859,20 +859,20 @@ config_migrate_v9 ( void ) /* step 1: only "config" */ HTSMSG_FOREACH(f, c) { if (!(e = htsmsg_field_get_map(f))) continue; - if (strcmp(f->hmf_name, "config")) continue; - htsmsg_add_str(e, "name", f->hmf_name + 6); + if (strcmp(htsmsg_field_name(f), "config")) continue; + htsmsg_add_str(e, "name", htsmsg_field_name(f) + 6); uuid_set(&u, NULL); - hts_settings_remove("dvr/%s", f->hmf_name); + hts_settings_remove("dvr/%s", htsmsg_field_name(f)); hts_settings_save(e, "dvr/config/%s", uuid_get_hex(&u, ubuf)); } /* step 2: reset (without "config") */ HTSMSG_FOREACH(f, c) { if (!(e = htsmsg_field_get_map(f))) continue; - if (strcmp(f->hmf_name, "config") == 0) continue; - if (strncmp(f->hmf_name, "config", 6)) continue; - htsmsg_add_str(e, "name", f->hmf_name + 6); + if (strcmp(htsmsg_field_name(f), "config") == 0) continue; + if (strncmp(htsmsg_field_name(f), "config", 6)) continue; + htsmsg_add_str(e, "name", htsmsg_field_name(f) + 6); uuid_set(&u, NULL); - hts_settings_remove("dvr/%s", f->hmf_name); + hts_settings_remove("dvr/%s", htsmsg_field_name(f)); hts_settings_save(e, "dvr/config/%s", uuid_get_hex(&u, ubuf)); } htsmsg_destroy(c); @@ -881,8 +881,8 @@ config_migrate_v9 ( void ) if ((c = hts_settings_load("autorec")) != NULL) { HTSMSG_FOREACH(f, c) { if (!(e = htsmsg_field_get_map(f))) continue; - hts_settings_remove("autorec/%s", f->hmf_name); - hts_settings_save(e, "dvr/autorec/%s", f->hmf_name); + hts_settings_remove("autorec/%s", htsmsg_field_name(f)); + hts_settings_save(e, "dvr/autorec/%s", htsmsg_field_name(f)); } } } @@ -899,8 +899,8 @@ config_migrate_move ( const char *dir, HTSMSG_FOREACH(f, c) { if (!(e = htsmsg_field_get_map(f))) continue; - hts_settings_save(e, "%s/%s", newdir, f->hmf_name); - hts_settings_remove("%s/%s", dir, f->hmf_name); + hts_settings_save(e, "%s/%s", newdir, htsmsg_field_name(f)); + hts_settings_remove("%s/%s", dir, htsmsg_field_name(f)); } htsmsg_destroy(c); @@ -926,7 +926,7 @@ config_find_uuid( htsmsg_t *map, const char *name, const char *value ) if (!(e = htsmsg_field_get_map(f))) continue; if ((s = htsmsg_get_str(e, name)) != NULL) { if (!strcmp(s, value)) - return f->hmf_name; + return htsmsg_field_name(f); } } return NULL; @@ -1044,16 +1044,16 @@ config_migrate_v12 ( void ) if ((c = hts_settings_load("cwc")) != NULL) { HTSMSG_FOREACH(f, c) { if (!(e = htsmsg_field_get_map(f))) continue; - hts_settings_remove("cwc/%s", f->hmf_name); - hts_settings_save(e, "caclient/%s", f->hmf_name); + hts_settings_remove("cwc/%s", htsmsg_field_name(f)); + hts_settings_save(e, "caclient/%s", htsmsg_field_name(f)); } htsmsg_destroy(c); } if ((c = hts_settings_load("capmt")) != NULL) { HTSMSG_FOREACH(f, c) { if (!(e = htsmsg_field_get_map(f))) continue; - hts_settings_remove("capmt/%s", f->hmf_name); - hts_settings_save(e, "caclient/%s", f->hmf_name); + hts_settings_remove("capmt/%s", htsmsg_field_name(f)); + hts_settings_save(e, "caclient/%s", htsmsg_field_name(f)); } htsmsg_destroy(c); } @@ -1078,7 +1078,7 @@ config_migrate_v13 ( void ) } htsmsg_delete_field(e, "rewrite-pat"); htsmsg_delete_field(e, "rewrite-pmt"); - hts_settings_save(e, "dvr/config/%s", f->hmf_name); + hts_settings_save(e, "dvr/config/%s", htsmsg_field_name(f)); } htsmsg_destroy(c); } @@ -1119,7 +1119,7 @@ config_migrate_v14 ( void ) } if (!htsmsg_get_s32(e, "scodec", &i)) htsmsg_delete_field(e, "scodec"); - hts_settings_save(e, "profile/%s", f->hmf_name); + hts_settings_save(e, "profile/%s", htsmsg_field_name(f)); } htsmsg_destroy(c); } @@ -1137,7 +1137,7 @@ config_migrate_v15 ( void ) if (!(e = htsmsg_field_get_map(f))) continue; if (htsmsg_get_s32(e, "timeout", &i)) { htsmsg_set_s32(e, "timeout", 5); - hts_settings_save(e, "profile/%s", f->hmf_name); + hts_settings_save(e, "profile/%s", htsmsg_field_name(f)); } } htsmsg_destroy(c); @@ -1198,7 +1198,7 @@ config_migrate_v16 ( void ) HTSMSG_FOREACH(f, c) { if (!(e = htsmsg_field_get_map(f))) continue; config_modify_dvrauto(e); - hts_settings_save(e, "dvr/autorec/%s", f->hmf_name); + hts_settings_save(e, "dvr/autorec/%s", htsmsg_field_name(f)); } htsmsg_destroy(c); } @@ -1219,7 +1219,7 @@ config_migrate_v17 ( void ) if (strcmp(htsmsg_get_str(e, "name") ?: "", "htsp") == 0) p = PROFILE_SPRIO_IMPORTANT; htsmsg_set_s32(e, "priority", p); - hts_settings_save(e, "profile/%s", f->hmf_name); + hts_settings_save(e, "profile/%s", htsmsg_field_name(f)); } } htsmsg_destroy(c); @@ -1246,7 +1246,7 @@ config_migrate_v18 ( void ) htsmsg_add_msg(l, NULL, m); htsmsg_delete_field(e, "filename"); htsmsg_add_msg(e, "files", l); - hts_settings_save(e, "dvr/log/%s", f->hmf_name); + hts_settings_save(e, "dvr/log/%s", htsmsg_field_name(f)); } htsmsg_destroy(c); } @@ -1274,7 +1274,7 @@ config_migrate_v19 ( void ) uuid_set(&u, NULL); hts_settings_save(m, "passwd/%s", uuid_get_hex(&u, ubuf)); htsmsg_delete_field(e, "password2"); - hts_settings_save(e, "accesscontrol/%s", f->hmf_name); + hts_settings_save(e, "accesscontrol/%s", htsmsg_field_name(f)); } } htsmsg_destroy(c); @@ -1309,7 +1309,7 @@ config_migrate_v20 ( void ) config_migrate_v20_helper(e, "profile"); config_migrate_v20_helper(e, "dvr_config"); config_migrate_v20_helper(e, "channel_tag"); - hts_settings_save(e, "accesscontrol/%s", f->hmf_name); + hts_settings_save(e, "accesscontrol/%s", htsmsg_field_name(f)); } htsmsg_destroy(c); } @@ -1334,11 +1334,11 @@ config_migrate_v21 ( void ) HTSMSG_FOREACH(f, m) { s64 = 0; htsmsg_field_get_s64(f, &s64); - if ((s64 || !strcmp(str ?: "", f->hmf_name)) && - f->hmf_name[0]) { + if ((s64 || !strcmp(str ?: "", htsmsg_field_name(f))) && + htsmsg_field_name(f)[0]) { a = htsmsg_create_map(); htsmsg_add_bool(a, "enabled", 1); - htsmsg_add_msg(e, f->hmf_name, a); + htsmsg_add_msg(e, htsmsg_field_name(f), a); } } } @@ -1391,7 +1391,7 @@ config_migrate_v23_one ( const char *modname ) m = htsmsg_field_get_map(f); if (m == NULL) continue; n = htsmsg_copy(m); - htsmsg_add_str(n, "id", f->hmf_name); + htsmsg_add_str(n, "id", htsmsg_field_name(f)); maj = htsmsg_get_u32_or_default(m, "major", 0); min = htsmsg_get_u32_or_default(m, "minor", 0); num = (maj * CHANNEL_SPLIT) + min; @@ -1400,7 +1400,7 @@ config_migrate_v23_one ( const char *modname ) htsmsg_delete_field(n, "major"); htsmsg_delete_field(n, "minor"); uuid_set(&u, NULL); - hts_settings_remove("epggrab/%s/channels/%s", modname, f->hmf_name); + hts_settings_remove("epggrab/%s/channels/%s", modname, htsmsg_field_name(f)); hts_settings_save(n, "epggrab/%s/channels/%s", modname, uuid_get_hex(&u, ubuf)); htsmsg_destroy(n); } @@ -1454,7 +1454,7 @@ config_migrate_v24 ( void ) if (!(e = htsmsg_field_get_map(f))) continue; config_migrate_v24_helper(streaming_list, e, "streaming"); config_migrate_v24_helper(dvr_list, e, "dvr"); - hts_settings_save(e, "accesscontrol/%s", f->hmf_name); + hts_settings_save(e, "accesscontrol/%s", htsmsg_field_name(f)); } htsmsg_destroy(c); } @@ -1648,8 +1648,8 @@ config_check_one ( const char *dir ) HTSMSG_FOREACH(f, c) { if (!(e = htsmsg_field_get_map(f))) continue; - if (strlen(f->hmf_name) != UUID_HEX_SIZE - 1) { - tvherror(LS_START, "filename %s/%s/%s is invalid", hts_settings_get_root(), dir, f->hmf_name); + if (strlen(htsmsg_field_name(f)) != UUID_HEX_SIZE - 1) { + tvherror(LS_START, "filename %s/%s/%s is invalid", hts_settings_get_root(), dir, htsmsg_field_name(f)); exit(1); } } diff --git a/src/descrambler/caclient.c b/src/descrambler/caclient.c index eb387eb99..f28020fc8 100644 --- a/src/descrambler/caclient.c +++ b/src/descrambler/caclient.c @@ -432,7 +432,7 @@ caclient_init(void) HTSMSG_FOREACH(f, c) { if (!(e = htsmsg_field_get_map(f))) continue; - caclient_create(f->hmf_name, e, 0); + caclient_create(htsmsg_field_name(f), e, 0); } htsmsg_destroy(c); } diff --git a/src/dvr/dvr_autorec.c b/src/dvr/dvr_autorec.c index ed7c9cd94..528e44035 100644 --- a/src/dvr/dvr_autorec.c +++ b/src/dvr/dvr_autorec.c @@ -1410,7 +1410,7 @@ dvr_autorec_init(void) HTSMSG_FOREACH(f, l) { if((c = htsmsg_get_map_by_field(f)) == NULL) continue; - (void)dvr_autorec_create(f->hmf_name, c); + (void)dvr_autorec_create(htsmsg_field_name(f), c); } htsmsg_destroy(l); } diff --git a/src/dvr/dvr_config.c b/src/dvr/dvr_config.c index 3be3f07ec..ec6a147cc 100644 --- a/src/dvr/dvr_config.c +++ b/src/dvr/dvr_config.c @@ -1447,7 +1447,7 @@ dvr_config_init(void) if ((l = hts_settings_load("dvr/config")) != NULL) { HTSMSG_FOREACH(f, l) { if ((m = htsmsg_get_map_by_field(f)) == NULL) continue; - (void)dvr_config_create(NULL, f->hmf_name, m); + (void)dvr_config_create(NULL, htsmsg_field_name(f), m); } htsmsg_destroy(l); } diff --git a/src/dvr/dvr_db.c b/src/dvr/dvr_db.c index e9aeea2b7..35242d6ee 100644 --- a/src/dvr/dvr_db.c +++ b/src/dvr/dvr_db.c @@ -4835,12 +4835,12 @@ dvr_entry_init(void) parent = htsmsg_get_str(c, "parent"); child = htsmsg_get_str(c, "child"); if (parent && parent[0]) - htsmsg_set_str(rere, parent, f->hmf_name); + htsmsg_set_str(rere, parent, htsmsg_field_name(f)); if (child && child[0]) - htsmsg_set_str(rere, f->hmf_name, child); + htsmsg_set_str(rere, htsmsg_field_name(f), child); htsmsg_delete_field(c, "parent"); htsmsg_delete_field(c, "child"); - (void)dvr_entry_create(f->hmf_name, c, 0); + (void)dvr_entry_create(htsmsg_field_name(f), c, 0); } htsmsg_destroy(l); } @@ -4849,7 +4849,7 @@ dvr_entry_init(void) HTSMSG_FOREACH(f, rere) { if((child = htsmsg_field_get_str(f)) == NULL) continue; - parent = f->hmf_name; + parent = htsmsg_field_name(f); de1 = dvr_entry_find_by_uuid(parent); de2 = dvr_entry_find_by_uuid(child); dvr_entry_change_parent_child(de1, de2, NULL, 0); @@ -4876,4 +4876,5 @@ dvr_entry_done(void) dvr_rec_unsubscribe(de); dvr_entry_destroy(de, 0); } + string_list_destroy(dvr_fanart_to_prefetch); } diff --git a/src/dvr/dvr_timerec.c b/src/dvr/dvr_timerec.c index e46a6a3f2..e840176c5 100644 --- a/src/dvr/dvr_timerec.c +++ b/src/dvr/dvr_timerec.c @@ -709,7 +709,7 @@ dvr_timerec_init(void) HTSMSG_FOREACH(f, l) { if((c = htsmsg_get_map_by_field(f)) == NULL) continue; - (void)dvr_timerec_create(f->hmf_name, c); + (void)dvr_timerec_create(htsmsg_field_name(f), c); } htsmsg_destroy(l); } diff --git a/src/epg.c b/src/epg.c index b83ff72ed..7fca87c04 100644 --- a/src/epg.c +++ b/src/epg.c @@ -1286,7 +1286,7 @@ int epg_broadcast_set_credits } else { add_sep = 1; } - lang_str_append(b->credits_cached, f->hmf_name, NULL); + lang_str_append(b->credits_cached, htsmsg_field_name(f), NULL); } } else { if (b->credits_cached) { diff --git a/src/epggrab.c b/src/epggrab.c index ee158f768..bc626c0d5 100644 --- a/src/epggrab.c +++ b/src/epggrab.c @@ -238,7 +238,7 @@ static void _epggrab_load ( void ) idnode_load(&epggrab_conf.idnode, m); if ((a = htsmsg_get_map(m, "modules"))) { HTSMSG_FOREACH(f, a) { - mod = epggrab_module_find_by_id(f->hmf_name); + mod = epggrab_module_find_by_id(htsmsg_field_name(f)); map = htsmsg_field_get_map(f); if (mod && map) { idnode_load(&mod->idnode, map); diff --git a/src/epggrab/module.c b/src/epggrab/module.c index bf4a9533a..559d2ff62 100644 --- a/src/epggrab/module.c +++ b/src/epggrab/module.c @@ -120,8 +120,8 @@ epggrab_module_ota_scrapper_config_list ( void *o, const char *lang ) htsmsg_field_t *f; HTSMSG_FOREACH(f, config) { e = htsmsg_create_map(); - htsmsg_add_str(e, "key", f->hmf_name); - htsmsg_add_str(e, "val", f->hmf_name); + htsmsg_add_str(e, "key", htsmsg_field_name(f)); + htsmsg_add_str(e, "val", htsmsg_field_name(f)); htsmsg_add_msg(m, NULL, e); } htsmsg_destroy(config); @@ -446,7 +446,7 @@ void epggrab_module_channels_load ( const char *modid ) if (mod == NULL || strcmp(mod->id, id)) mod = epggrab_module_find_by_id(id); if (mod) - epggrab_channel_create(mod, e, f->hmf_name); + epggrab_channel_create(mod, e, htsmsg_field_name(f)); } } htsmsg_destroy(m); diff --git a/src/epggrab/module/eit.c b/src/epggrab/module/eit.c index fdc0d8e35..4f71e7457 100644 --- a/src/epggrab/module/eit.c +++ b/src/epggrab/module/eit.c @@ -1556,7 +1556,7 @@ static void eit_init_one ( const char *id, htsmsg_t *conf ) if (map) { HTSMSG_FOREACH(f, map) { nit = calloc(1, sizeof(*nit)); - nit->name = f->hmf_name[0] ? strdup(f->hmf_name) : NULL; + nit->name = htsmsg_field_name(f)[0] ? strdup(htsmsg_field_name(f)) : NULL; if ((e = htsmsg_field_get_map(f)) != NULL) { eit_parse_list(e, "onid", nit->onid, ARRAY_SIZE(nit->onid), &nit->onid_count); eit_parse_list(e, "tsid", nit->tsid, ARRAY_SIZE(nit->tsid), &nit->tsid_count); @@ -1580,13 +1580,13 @@ static void eit_init_one ( const char *id, htsmsg_t *conf ) map = htsmsg_get_map(conf, "hacks"); if (map) { HTSMSG_FOREACH(f, map) { - if (strcmp(f->hmf_name, "interest-4e") == 0) + if (strcmp(htsmsg_field_name(f), "interest-4e") == 0) priv->hacks |= EIT_HACK_INTEREST4E; - else if (strcmp(f->hmf_name, "extra-mux-lookup") == 0) + else if (strcmp(htsmsg_field_name(f), "extra-mux-lookup") == 0) priv->hacks |= EIT_HACK_EXTRAMUXLOOKUP; - else if (strcmp(f->hmf_name, "svc-net-lookup") == 0) + else if (strcmp(htsmsg_field_name(f), "svc-net-lookup") == 0) priv->hacks |= EIT_HACK_EXTRAMUXLOOKUP; - else if (strcmp(f->hmf_name, "bat") == 0) { + else if (strcmp(htsmsg_field_name(f), "bat") == 0) { if (!(e = htsmsg_field_get_map(f))) continue; priv->bat_pid = htsmsg_get_s32_or_default(e, "pid", 0); } @@ -1619,7 +1619,7 @@ void eit_init ( void ) } HTSMSG_FOREACH(f, c) { if (!(e = htsmsg_field_get_map(f))) continue; - eit_init_one(f->hmf_name, e); + eit_init_one(htsmsg_field_name(f), e); } htsmsg_destroy(c); } diff --git a/src/epggrab/module/opentv.c b/src/epggrab/module/opentv.c index ad573df3c..936ebb468 100644 --- a/src/epggrab/module/opentv.c +++ b/src/epggrab/module/opentv.c @@ -807,12 +807,12 @@ static void _opentv_genre_load ( htsmsg_t *m ) htsmsg_t *e; htsmsg_field_t *f; HTSMSG_FOREACH(f, m) { - if ((e = htsmsg_get_list(m, f->hmf_name))) { - if ((r = _opentv_genre_load_one(f->hmf_name, e))) { + if ((e = htsmsg_get_list(m, htsmsg_field_name(f)))) { + if ((r = _opentv_genre_load_one(htsmsg_field_name(f), e))) { if (r > 0) - tvhdebug(LS_OPENTV, "genre map %s loaded", f->hmf_name); + tvhdebug(LS_OPENTV, "genre map %s loaded", htsmsg_field_name(f)); else - tvhwarn(LS_OPENTV, "genre map %s failed", f->hmf_name); + tvhwarn(LS_OPENTV, "genre map %s failed", htsmsg_field_name(f)); } } } @@ -846,12 +846,12 @@ static void _opentv_dict_load ( htsmsg_t *m ) htsmsg_t *e; htsmsg_field_t *f; HTSMSG_FOREACH(f, m) { - if ((e = htsmsg_get_list(m, f->hmf_name))) { - if ((r = _opentv_dict_load_one(f->hmf_name, e))) { + if ((e = htsmsg_get_list(m, htsmsg_field_name(f)))) { + if ((r = _opentv_dict_load_one(htsmsg_field_name(f), e))) { if (r > 0) - tvhdebug(LS_OPENTV, "dictionary %s loaded", f->hmf_name); + tvhdebug(LS_OPENTV, "dictionary %s loaded", htsmsg_field_name(f)); else - tvhwarn(LS_OPENTV, "dictionary %s failed", f->hmf_name); + tvhwarn(LS_OPENTV, "dictionary %s failed", htsmsg_field_name(f)); } } } @@ -965,11 +965,11 @@ static void _opentv_prov_load ( htsmsg_t *m ) htsmsg_field_t *f; HTSMSG_FOREACH(f, m) { if ((e = htsmsg_get_map_by_field(f))) { - if ((r = _opentv_prov_load_one(f->hmf_name, e))) { + if ((r = _opentv_prov_load_one(htsmsg_field_name(f), e))) { if (r > 0) - tvhdebug(LS_OPENTV, "provider %s loaded", f->hmf_name); + tvhdebug(LS_OPENTV, "provider %s loaded", htsmsg_field_name(f)); else - tvhwarn(LS_OPENTV, "provider %s failed", f->hmf_name); + tvhwarn(LS_OPENTV, "provider %s failed", htsmsg_field_name(f)); } } } diff --git a/src/epggrab/module/xmltv.c b/src/epggrab/module/xmltv.c index 03ddbdb36..ce6fb4f44 100644 --- a/src/epggrab/module/xmltv.c +++ b/src/epggrab/module/xmltv.c @@ -236,7 +236,7 @@ static void get_episode_info HTSMSG_FOREACH(f, tags) { if((c = htsmsg_get_map_by_field(f)) == NULL || - strcmp(f->hmf_name, "episode-num") || + strcmp(htsmsg_field_name(f), "episode-num") || (a = htsmsg_get_map(c, "attrib")) == NULL || (cdata = htsmsg_get_str(c, "cdata")) == NULL || (sys = htsmsg_get_str(a, "system")) == NULL) @@ -327,7 +327,7 @@ xmltv_parse_accessibility const char *str; HTSMSG_FOREACH(f, m) { - if(!strcmp(f->hmf_name, "subtitles")) { + if(!strcmp(htsmsg_field_name(f), "subtitles")) { if ((tag = htsmsg_get_map_by_field(f))) { str = htsmsg_xml_get_attr_str(tag, "type"); if (str && !strcmp(str, "teletext")) @@ -335,7 +335,7 @@ xmltv_parse_accessibility else if (str && !strcmp(str, "deaf-signed")) save |= epg_broadcast_set_is_deafsigned(ebc, 1, changes); } - } else if (!strcmp(f->hmf_name, "audio-described")) { + } else if (!strcmp(htsmsg_field_name(f), "audio-described")) { save |= epg_broadcast_set_is_audio_desc(ebc, 1, changes); } } @@ -453,7 +453,7 @@ static int _xmltv_parse_age_rating htsmsg_field_t *f; HTSMSG_FOREACH(f, body) { - if (!strcmp(f->hmf_name, "rating") && (rating = htsmsg_get_map_by_field(f))) { + if (!strcmp(htsmsg_field_name(f), "rating") && (rating = htsmsg_get_map_by_field(f))) { if ((tags = htsmsg_get_map(rating, "tags"))) { if ((s1 = htsmsg_xml_get_cdata_str(tags, "value"))) { /* We map some common ratings since some movies only @@ -492,7 +492,7 @@ static epg_genre_list_t htsmsg_field_t *f; epg_genre_list_t *egl = NULL; HTSMSG_FOREACH(f, tags) { - if (!strcmp(f->hmf_name, "category") && (e = htsmsg_get_map_by_field(f))) { + if (!strcmp(htsmsg_field_name(f), "category") && (e = htsmsg_get_map_by_field(f))) { if (!egl) egl = calloc(1, sizeof(epg_genre_list_t)); epg_genre_list_add_by_str(egl, htsmsg_get_str(e, "cdata"), NULL); } @@ -511,7 +511,7 @@ _xmltv_parse_lang_str ( lang_str_t **ls, htsmsg_t *tags, const char *tname ) const char *lang; HTSMSG_FOREACH(f, tags) { - if (!strcmp(f->hmf_name, tname) && (e = htsmsg_get_map_by_field(f))) { + if (!strcmp(htsmsg_field_name(f), tname) && (e = htsmsg_get_map_by_field(f))) { if (!*ls) *ls = lang_str_create(); lang = NULL; if ((attrib = htsmsg_get_map(e, "attrib"))) @@ -532,7 +532,7 @@ static string_list_t * string_list_t *tag_list = NULL; HTSMSG_FOREACH(f, tags) { - if (!strcmp(f->hmf_name, tagname) && (e = htsmsg_get_map_by_field(f))) { + if (!strcmp(htsmsg_field_name(f), tagname) && (e = htsmsg_get_map_by_field(f))) { const char *str = htsmsg_get_str(e, "cdata"); if (str && *str) { if (!tag_list) tag_list = string_list_create(); @@ -574,11 +574,11 @@ _xmltv_parse_credits(htsmsg_t **out_credits, htsmsg_t *tags) htsmsg_field_t *f; HTSMSG_FOREACH(f, credits_tags) { - if ((!strcmp(f->hmf_name, "actor") || - !strcmp(f->hmf_name, "director") || - !strcmp(f->hmf_name, "guest") || - !strcmp(f->hmf_name, "presenter") || - !strcmp(f->hmf_name, "writer") + if ((!strcmp(htsmsg_field_name(f), "actor") || + !strcmp(htsmsg_field_name(f), "director") || + !strcmp(htsmsg_field_name(f), "guest") || + !strcmp(htsmsg_field_name(f), "presenter") || + !strcmp(htsmsg_field_name(f), "writer") ) && (e = htsmsg_get_map_by_field(f))) { const char* str = htsmsg_get_str(e, "cdata"); @@ -587,7 +587,7 @@ _xmltv_parse_credits(htsmsg_t **out_credits, htsmsg_t *tags) string_list_insert(credits_names, str); if (!*out_credits) *out_credits = htsmsg_create_map(); - htsmsg_add_str(*out_credits, str, f->hmf_name); + htsmsg_add_str(*out_credits, str, htsmsg_field_name(f)); } } } @@ -889,7 +889,7 @@ static int _xmltv_parse_channel HTSMSG_FOREACH(f, tags) { if (!(subtag = htsmsg_field_get_map(f))) continue; - if (strcmp(f->hmf_name, "display-name") == 0) { + if (strcmp(htsmsg_field_name(f), "display-name") == 0) { name = htsmsg_get_str(subtag, "cdata"); const char *cur = name; @@ -932,7 +932,7 @@ static int _xmltv_parse_channel if (cur && *cur) htsmsg_add_str_exclusive(dnames, cur); } - else if (strcmp(f->hmf_name, "icon") == 0) { + else if (strcmp(htsmsg_field_name(f), "icon") == 0) { if ((attribs = htsmsg_get_map(subtag, "attrib")) != NULL && (icon = htsmsg_get_str(attribs, "src")) != NULL) { save |= epggrab_channel_set_icon(ch, icon); @@ -972,11 +972,11 @@ static int _xmltv_parse_tv HTSMSG_FOREACH(f, tags) { save = 0; - if(!strcmp(f->hmf_name, "channel")) { + if(!strcmp(htsmsg_field_name(f), "channel")) { pthread_mutex_lock(&global_lock); save = _xmltv_parse_channel(mod, htsmsg_get_map_by_field(f), stats); pthread_mutex_unlock(&global_lock); - } else if(!strcmp(f->hmf_name, "programme")) { + } else if(!strcmp(htsmsg_field_name(f), "programme")) { pthread_mutex_lock(&global_lock); save = _xmltv_parse_programme(mod, htsmsg_get_map_by_field(f), stats); if (save) epg_updated(); diff --git a/src/epggrab/otamux.c b/src/epggrab/otamux.c index 200f3fa39..a16a2c4b6 100644 --- a/src/epggrab/otamux.c +++ b/src/epggrab/otamux.c @@ -914,7 +914,7 @@ epggrab_ota_init ( void ) if ((c = hts_settings_load_r(1, "epggrab/otamux"))) { HTSMSG_FOREACH(f, c) { if (!(m = htsmsg_field_get_map(f))) continue; - epggrab_ota_load_one(f->hmf_name, m); + epggrab_ota_load_one(htsmsg_field_name(f), m); } htsmsg_destroy(c); } diff --git a/src/esfilter.c b/src/esfilter.c index f15bdd797..b1cd3b9bb 100644 --- a/src/esfilter.c +++ b/src/esfilter.c @@ -1208,7 +1208,7 @@ esfilter_init(void) HTSMSG_FOREACH(f, c) { if (!(e = htsmsg_field_get_map(f))) continue; - esfilter_create(-1, f->hmf_name, e, 0); + esfilter_create(-1, htsmsg_field_name(f), e, 0); } htsmsg_destroy(c); diff --git a/src/htsmsg.c b/src/htsmsg.c index 52cd5ddd7..735aff7dd 100644 --- a/src/htsmsg.c +++ b/src/htsmsg.c @@ -117,33 +117,32 @@ htsmsg_field_add(htsmsg_t *msg, const char *name, int type, int flags, size_t es size_t nsize; htsmsg_field_t *f; - nsize = name ? strlen(name) + 1 : 1; - f = malloc(sizeof(htsmsg_field_t) + nsize + esize); - if(f == NULL) - return NULL; - TAILQ_INSERT_TAIL(&msg->hm_fields, f, hmf_link); - - if(msg->hm_islist) { + if (msg->hm_islist) { assert(name == NULL || *name == '\0'); + name = NULL; + flags |= HMF_NONAME; } else { assert(name != NULL); } - if (name) { - strcpy((char *)f->hmf_name, name); - } else { - ((char *)f->hmf_name)[0] = '\0'; - } + nsize = name ? htsmsg_malloc_align(type, strlen(name) + 1) : 0; + f = malloc(sizeof(htsmsg_field_t) + nsize + esize); + if (f == NULL) + return NULL; + TAILQ_INSERT_TAIL(&msg->hm_fields, f, hmf_link); + + if (name) + strcpy((char *)f->_hmf_name, name); - if(esize) { + if (esize) { if(type == HMF_STR) { - f->hmf_str = f->hmf_name + nsize; + f->hmf_str = f->_hmf_name + nsize; } else if(type == HMF_UUID) { - f->hmf_uuid = (uint8_t *)f->hmf_name + nsize; + f->hmf_uuid = (uint8_t *)f->_hmf_name + nsize; } else if(type == HMF_LIST || type == HMF_MAP) { - f->hmf_msg = (htsmsg_t *)(f->hmf_name + nsize); + f->hmf_msg = (htsmsg_t *)(f->_hmf_name + nsize); } else if(type == HMF_BIN) { - f->hmf_bin = f->hmf_name + nsize; + f->hmf_bin = f->_hmf_name + nsize; f->hmf_binsize = esize; } } @@ -170,7 +169,7 @@ htsmsg_field_find(const htsmsg_t *msg, const char *name) if (msg == NULL || name == NULL) return NULL; TAILQ_FOREACH(f, &msg->hm_fields, hmf_link) { - if(!strcmp(f->hmf_name, name)) + if(!strcmp(htsmsg_field_name(f), name)) return f; } return NULL; @@ -1178,7 +1177,7 @@ htsmsg_print0(htsmsg_t *msg, int indent) for(i = 0; i < indent; i++) printf("\t"); - printf("%s (", f->hmf_name); + printf("%s (", htsmsg_field_name(f)); switch(f->hmf_type) { @@ -1283,7 +1282,7 @@ htsmsg_copy_i(htsmsg_t *dst, const htsmsg_t *src) htsmsg_field_t *f; TAILQ_FOREACH(f, &src->hm_fields, hmf_link) - htsmsg_copy_f(dst, f, f->hmf_name); + htsmsg_copy_f(dst, f, htsmsg_field_name(f)); } htsmsg_t * @@ -1328,7 +1327,7 @@ htsmsg_cmp(const htsmsg_t *m1, const htsmsg_t *m2) if (f1->hmf_type != f2->hmf_type) return 1; - if (strcmp(f1->hmf_name, f2->hmf_name)) + if (strcmp(htsmsg_field_name(f1), htsmsg_field_name(f2))) return 1; switch(f1->hmf_type) { @@ -1399,7 +1398,7 @@ htsmsg_get_map_by_field_if_name(htsmsg_field_t *f, const char *name) { if(f->hmf_type != HMF_MAP) return NULL; - if(strcmp(f->hmf_name, name)) + if(strcmp(htsmsg_field_name(f), name)) return NULL; return f->hmf_msg; } diff --git a/src/htsmsg.h b/src/htsmsg.h index e759bcef4..e9dd2a8c5 100644 --- a/src/htsmsg.h +++ b/src/htsmsg.h @@ -63,6 +63,7 @@ typedef struct htsmsg_field { #define HMF_ALLOCED 0x1 #define HMF_INALLOCED 0x2 +#define HMF_NONAME 0x4 union { int64_t s64; @@ -80,7 +81,7 @@ typedef struct htsmsg_field { #if ENABLE_SLOW_MEMORYINFO size_t hmf_edata_size; #endif - const char hmf_name[0]; + const char _hmf_name[0]; } htsmsg_field_t; #define hmf_s64 u.s64 @@ -100,6 +101,25 @@ typedef struct htsmsg_field { #define HTSMSG_FIRST(msg) TAILQ_FIRST(&(msg)->hm_fields) #define HTSMSG_NEXT(f) TAILQ_NEXT(f, hmf_link) +/** + * Aligned memory allocation + */ +static inline size_t htsmsg_malloc_align(int type, size_t len) +{ + if (type == HMF_LIST || type == HMF_MAP) + return (len + (size_t)7) & ~(size_t)7; + return len; +} + +/** + * Get a field name + */ +static inline const char *htsmsg_field_name(htsmsg_field_t *f) +{ + if (f->hmf_flags & HMF_NONAME) return ""; + return f->_hmf_name; +} + /** * Create a new map */ diff --git a/src/htsmsg_binary.c b/src/htsmsg_binary.c index d442c243e..1f2287721 100644 --- a/src/htsmsg_binary.c +++ b/src/htsmsg_binary.c @@ -54,7 +54,7 @@ htsmsg_binary_des0(htsmsg_t *msg, const uint8_t *buf, size_t len) if(len < namelen + datalen) return -1; - nlen = namelen ? namelen + 1 : 1; + nlen = namelen ? htsmsg_malloc_align(type, namelen + 1) : 0; tlen = sizeof(htsmsg_field_t) + nlen; if (type == HMF_STR) { tlen += datalen + 1; @@ -76,25 +76,25 @@ htsmsg_binary_des0(htsmsg_t *msg, const uint8_t *buf, size_t len) f->hmf_flags = 0; if(namelen > 0) { - memcpy((char *)f->hmf_name, buf, namelen); - ((char *)f->hmf_name)[namelen] = 0; + memcpy((char *)f->_hmf_name, buf, namelen); + ((char *)f->_hmf_name)[namelen] = 0; buf += namelen; len -= namelen; } else { - ((char *)f->hmf_name)[0] = '\0'; + f->hmf_flags = HMF_NONAME; } switch(type) { case HMF_STR: - f->hmf_str = f->hmf_name + nlen; + f->hmf_str = f->_hmf_name + nlen; memcpy((char *)f->hmf_str, buf, datalen); ((char *)f->hmf_str)[datalen] = 0; f->hmf_flags |= HMF_INALLOCED; break; case HMF_UUID: - f->hmf_uuid = (uint8_t *)f->hmf_name + nlen; + f->hmf_uuid = (uint8_t *)f->_hmf_name + nlen; memcpy((char *)f->hmf_uuid, buf, UUID_BIN_SIZE); break; @@ -113,7 +113,7 @@ htsmsg_binary_des0(htsmsg_t *msg, const uint8_t *buf, size_t len) case HMF_MAP: case HMF_LIST: - sub = f->hmf_msg = (htsmsg_t *)(f->hmf_name + nlen); + sub = f->hmf_msg = (htsmsg_t *)(f->_hmf_name + nlen); TAILQ_INIT(&sub->hm_fields); sub->hm_data = NULL; sub->hm_data_size = 0; @@ -220,7 +220,7 @@ htsmsg_binary_count(htsmsg_t *msg) TAILQ_FOREACH(f, &msg->hm_fields, hmf_link) { - len += 6 + strlen(f->hmf_name); + len += 6 + strlen(htsmsg_field_name(f)); switch(f->hmf_type) { case HMF_MAP: @@ -268,7 +268,7 @@ htsmsg_binary_write(htsmsg_t *msg, uint8_t *ptr) int l, i, namelen; TAILQ_FOREACH(f, &msg->hm_fields, hmf_link) { - namelen = strlen(f->hmf_name); + namelen = strlen(htsmsg_field_name(f)); *ptr++ = f->hmf_type; *ptr++ = namelen; @@ -310,7 +310,7 @@ htsmsg_binary_write(htsmsg_t *msg, uint8_t *ptr) *ptr++ = l; if(namelen > 0) { - memcpy(ptr, f->hmf_name, namelen); + memcpy(ptr, f->_hmf_name, namelen); ptr += namelen; } diff --git a/src/htsmsg_binary2.c b/src/htsmsg_binary2.c index a85aab81e..77ddaf862 100644 --- a/src/htsmsg_binary2.c +++ b/src/htsmsg_binary2.c @@ -113,7 +113,7 @@ htsmsg_binary2_des0(htsmsg_t *msg, const uint8_t *buf, uint32_t len) if(len < namelen + datalen) return -1; - nlen = namelen ? namelen + 1 : 1; + nlen = namelen ? htsmsg_malloc_align(type, namelen + 1) : 0; tlen = sizeof(htsmsg_field_t) + nlen; if (type == HMF_STR) { tlen += datalen + 1; @@ -135,25 +135,25 @@ htsmsg_binary2_des0(htsmsg_t *msg, const uint8_t *buf, uint32_t len) f->hmf_flags = 0; if(namelen > 0) { - memcpy((char *)f->hmf_name, buf, namelen); - ((char *)f->hmf_name)[namelen] = 0; + memcpy((char *)f->_hmf_name, buf, namelen); + ((char *)f->_hmf_name)[namelen] = 0; buf += namelen; len -= namelen; } else { - ((char *)f->hmf_name)[0] = '\0'; + f->hmf_flags |= HMF_NONAME; } switch(type) { case HMF_STR: - f->hmf_str = f->hmf_name + nlen; + f->hmf_str = f->_hmf_name + nlen; memcpy((char *)f->hmf_str, buf, datalen); ((char *)f->hmf_str)[datalen] = 0; f->hmf_flags |= HMF_INALLOCED; break; case HMF_UUID: - f->hmf_uuid = (uint8_t *)f->hmf_name + nlen; + f->hmf_uuid = (uint8_t *)f->_hmf_name + nlen; memcpy((char *)f->hmf_uuid, buf, UUID_BIN_SIZE); break; @@ -172,7 +172,7 @@ htsmsg_binary2_des0(htsmsg_t *msg, const uint8_t *buf, uint32_t len) case HMF_MAP: case HMF_LIST: - sub = f->hmf_msg = (htsmsg_t *)(f->hmf_name + nlen); + sub = f->hmf_msg = (htsmsg_t *)(f->_hmf_name + nlen); TAILQ_INIT(&sub->hm_fields); sub->hm_data = NULL; sub->hm_data_size = 0; @@ -326,7 +326,7 @@ htsmsg_binary2_count(htsmsg_t *msg) TAILQ_FOREACH(f, &msg->hm_fields, hmf_link) { l = htsmsg_binary2_field_length(f); len += 2 + htsmsg_binary2_length_count(l); - len += strlen(f->hmf_name); + len += strlen(htsmsg_field_name(f)); len += l; } return len; @@ -343,7 +343,7 @@ htsmsg_binary2_write(htsmsg_t *msg, uint8_t *ptr) int l, i, namelen; TAILQ_FOREACH(f, &msg->hm_fields, hmf_link) { - namelen = strlen(f->hmf_name); + namelen = strlen(htsmsg_field_name(f)); assert(namelen <= 0xff); *ptr++ = f->hmf_type; *ptr++ = namelen; @@ -352,7 +352,7 @@ htsmsg_binary2_write(htsmsg_t *msg, uint8_t *ptr) ptr = htsmsg_binary2_set_length(ptr, l); if(namelen > 0) { - memcpy(ptr, f->hmf_name, namelen); + memcpy(ptr, f->_hmf_name, namelen); ptr += namelen; } diff --git a/src/htsmsg_json.c b/src/htsmsg_json.c index f33950fb9..e38286f8d 100644 --- a/src/htsmsg_json.c +++ b/src/htsmsg_json.c @@ -49,7 +49,7 @@ htsmsg_json_write(htsmsg_t *msg, htsbuf_queue_t *hq, int isarray, htsbuf_append(hq, indentor, indent < 16 ? indent : 16); if(!isarray) { - htsbuf_append_and_escape_jsonstr(hq, f->hmf_name); + htsbuf_append_and_escape_jsonstr(hq, htsmsg_field_name(f)); htsbuf_append(hq, ": ", pretty ? 2 : 1); } diff --git a/src/imagecache.c b/src/imagecache.c index 3ff89560e..7eafa677a 100644 --- a/src/imagecache.c +++ b/src/imagecache.c @@ -431,7 +431,7 @@ imagecache_init ( void ) if ((m = hts_settings_load("imagecache/meta"))) { HTSMSG_FOREACH(f, m) { if (!(e = htsmsg_get_map_by_field(f))) continue; - if (!(id = atoi(f->hmf_name))) continue; + if (!(id = atoi(htsmsg_field_name(f)))) continue; if (!(url = htsmsg_get_str(e, "url"))) continue; img = calloc(1, sizeof(imagecache_image_t)); img->id = id; diff --git a/src/input/mpegts/iptv/iptv.c b/src/input/mpegts/iptv/iptv.c index 7aefd8f65..5500c2305 100644 --- a/src/input/mpegts/iptv/iptv.c +++ b/src/input/mpegts/iptv/iptv.c @@ -1099,7 +1099,7 @@ iptv_network_create0 HTSMSG_FOREACH(f, c) { if (!(e = htsmsg_get_map_by_field(f))) continue; if (!(e = htsmsg_get_map(e, "config"))) continue; - im = iptv_mux_create0(in, f->hmf_name, e); + im = iptv_mux_create0(in, htsmsg_field_name(f), e); mpegts_mux_post_create((mpegts_mux_t *)im); } htsmsg_destroy(c); @@ -1151,9 +1151,9 @@ iptv_network_init ( void ) if (!(e = htsmsg_get_map_by_field(f))) continue; if (!(e = htsmsg_get_map(e, "config"))) continue; if (htsmsg_get_str(e, "url")) - iptv_network_create0(f->hmf_name, e, &iptv_auto_network_class); + iptv_network_create0(htsmsg_field_name(f), e, &iptv_auto_network_class); else - iptv_network_create0(f->hmf_name, e, &iptv_network_class); + iptv_network_create0(htsmsg_field_name(f), e, &iptv_network_class); } htsmsg_destroy(c); } diff --git a/src/input/mpegts/iptv/iptv_mux.c b/src/input/mpegts/iptv/iptv_mux.c index 4fa1f275f..6fe3cddd4 100644 --- a/src/input/mpegts/iptv/iptv_mux.c +++ b/src/input/mpegts/iptv/iptv_mux.c @@ -381,7 +381,7 @@ iptv_mux_create0 ( iptv_network_t *in, const char *uuid, htsmsg_t *conf ) if (c) { HTSMSG_FOREACH(f, c) { if (!(e = htsmsg_field_get_map(f))) continue; - (void)iptv_service_create0(im, 0, 0, f->hmf_name, e); + (void)iptv_service_create0(im, 0, 0, htsmsg_field_name(f), e); } } else if (in->in_service_id) { conf = htsmsg_create_map(); diff --git a/src/input/mpegts/mpegts_mux_dvb.c b/src/input/mpegts/mpegts_mux_dvb.c index c003ec61f..0e09d041a 100644 --- a/src/input/mpegts/mpegts_mux_dvb.c +++ b/src/input/mpegts/mpegts_mux_dvb.c @@ -1260,7 +1260,7 @@ dvb_mux_create0 if (c) { HTSMSG_FOREACH(f, c) { if (!(e = htsmsg_get_map_by_field(f))) continue; - mpegts_service_create1(f->hmf_name, (mpegts_mux_t *)lm, 0, 0, e); + mpegts_service_create1(htsmsg_field_name(f), (mpegts_mux_t *)lm, 0, 0, e); } htsmsg_destroy(c2); } diff --git a/src/input/mpegts/mpegts_mux_sched.c b/src/input/mpegts/mpegts_mux_sched.c index 53bd24838..46ca4d18e 100644 --- a/src/input/mpegts/mpegts_mux_sched.c +++ b/src/input/mpegts/mpegts_mux_sched.c @@ -367,7 +367,7 @@ mpegts_mux_sched_init ( void ) if ((c = hts_settings_load_r(1, "muxsched"))) { HTSMSG_FOREACH(f, c) { if (!(e = htsmsg_field_get_map(f))) continue; - mpegts_mux_sched_create(f->hmf_name, e); + mpegts_mux_sched_create(htsmsg_field_name(f), e); } htsmsg_destroy(c); } diff --git a/src/input/mpegts/mpegts_network_dvb.c b/src/input/mpegts/mpegts_network_dvb.c index 63517efa3..dd9a5ee1d 100644 --- a/src/input/mpegts/mpegts_network_dvb.c +++ b/src/input/mpegts/mpegts_network_dvb.c @@ -918,7 +918,7 @@ dvb_network_create0 HTSMSG_FOREACH(f, c) { if (!(e = htsmsg_get_map_by_field(f))) continue; if (!(e = htsmsg_get_map(e, "config"))) continue; - lm = dvb_mux_create1(ln, f->hmf_name, e); + lm = dvb_mux_create1(ln, htsmsg_field_name(f), e); mpegts_mux_post_create((mpegts_mux_t *)lm); } htsmsg_destroy(c); @@ -995,7 +995,7 @@ void dvb_network_init ( void ) if (strcmp(s, "dvb_network_atsc") == 0) s = "dvb_network_atsc_t"; if(!strcmp(dvb_network_classes[i]->ic_class, s)) { - dvb_network_create0(f->hmf_name, dvb_network_classes[i], e); + dvb_network_create0(htsmsg_field_name(f), dvb_network_classes[i], e); break; } } diff --git a/src/lang_str.c b/src/lang_str.c index 80fc6d6e8..c0cfbe016 100644 --- a/src/lang_str.c +++ b/src/lang_str.c @@ -288,7 +288,7 @@ lang_str_t *lang_str_deserialize_map ( htsmsg_t *map ) if (ret) { HTSMSG_FOREACH(f, map) { if ((str = htsmsg_field_get_string(f))) { - lang_str_add(ret, str, f->hmf_name); + lang_str_add(ret, str, htsmsg_field_name(f)); } } } diff --git a/src/notify.c b/src/notify.c index 691d6cd31..aee6312c0 100644 --- a/src/notify.c +++ b/src/notify.c @@ -103,7 +103,7 @@ notify_thread ( void *p ) pthread_mutex_lock(&global_lock); HTSMSG_FOREACH(f, q) - notify_by_msg(f->hmf_name, htsmsg_detach_submsg(f), 0); + notify_by_msg(htsmsg_field_name(f), htsmsg_detach_submsg(f), 0); /* Finished */ pthread_mutex_unlock(&global_lock); diff --git a/src/profile.c b/src/profile.c index 8a6a641c8..bf542ee83 100644 --- a/src/profile.c +++ b/src/profile.c @@ -2558,7 +2558,7 @@ profile_init(void) HTSMSG_FOREACH(f, c) { if (!(e = htsmsg_field_get_map(f))) continue; - (void)profile_create(f->hmf_name, e, 0); + (void)profile_create(htsmsg_field_name(f), e, 0); } htsmsg_destroy(c); } diff --git a/src/prop.c b/src/prop.c index 96e791349..b769f9d17 100644 --- a/src/prop.c +++ b/src/prop.c @@ -385,7 +385,7 @@ prop_read_values total++; if (!htsmsg_field_get_bool(f, &b)) { if (b > 0) { - p = prop_find(pl, f->hmf_name); + p = prop_find(pl, htsmsg_field_name(f)); if (p) prop_read_value(obj, p, m, p->id, optmask, lang); count++; @@ -395,7 +395,7 @@ prop_read_values if (total && !count) { for (; pl->id; pl++) { HTSMSG_FOREACH(f, list) - if (!strcmp(pl->id, f->hmf_name)) + if (!strcmp(pl->id, htsmsg_field_name(f))) break; if (f == NULL) prop_read_value(obj, pl, m, pl->id, optmask, lang); @@ -578,7 +578,7 @@ prop_serialize HTSMSG_FOREACH(f, list) { total++; if (!htsmsg_field_get_bool(f, &b) && b > 0) { - p = prop_find(pl, f->hmf_name); + p = prop_find(pl, htsmsg_field_name(f)); if (p) prop_serialize_value(obj, p, msg, optmask, lang); count++; @@ -587,7 +587,7 @@ prop_serialize if (total && !count) { for (; pl->id; pl++) { HTSMSG_FOREACH(f, list) - if (!strcmp(pl->id, f->hmf_name)) + if (!strcmp(pl->id, htsmsg_field_name(f))) break; if (f == NULL) prop_serialize_value(obj, pl, msg, optmask, lang); diff --git a/src/transcoding/codec/profile.c b/src/transcoding/codec/profile.c index 7138e1fc0..202e17a7d 100644 --- a/src/transcoding/codec/profile.c +++ b/src/transcoding/codec/profile.c @@ -72,7 +72,7 @@ tvh_codec_profile_load(htsmsg_field_t *config) const char *name = NULL; if ((conf = htsmsg_field_get_map(config)) && - tvh_codec_profile_create(conf, config->hmf_name, 0)) { + tvh_codec_profile_create(conf, htsmsg_field_name(config), 0)) { tvherror(LS_CODEC, "unable to load codec profile: '%s'", (name = htsmsg_get_str(conf, "name")) ? name : ""); } diff --git a/src/webui/xmltv.c b/src/webui/xmltv.c index a73918988..6ab540965 100644 --- a/src/webui/xmltv.c +++ b/src/webui/xmltv.c @@ -160,7 +160,7 @@ http_xmltv_programme_one(htsbuf_queue_t *hq, const char *hostpath, htsmsg_field_t *f; HTSMSG_FOREACH(f, ebc->credits) { htsbuf_qprintf(hq, " <%s>", f->u.str); - htsbuf_append_and_escape_xml(hq, f->hmf_name); + htsbuf_append_and_escape_xml(hq, htsmsg_field_name(f)); htsbuf_qprintf(hq, "\n", f->u.str); } htsbuf_append_str(hq, " \n"); -- 2.47.2