]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
api: dvr - owner/representative might be NULL, fixes #4846
authorJaroslav Kysela <perex@perex.cz>
Sun, 14 Jan 2018 08:38:48 +0000 (09:38 +0100)
committerJaroslav Kysela <perex@perex.cz>
Sun, 14 Jan 2018 08:44:26 +0000 (09:44 +0100)
src/api/api_dvr.c
src/htsmsg.c
src/htsmsg.h
src/htsp_server.c

index 336f315ad9f2aa5a24e00da2eb9dfc11aac18c24..880452e85865c99b6245dca0c9eb1bfdb922894f 100644 (file)
@@ -145,8 +145,8 @@ api_dvr_entry_create
   cfg = dvr_config_find_by_list(perm->aa_dvrcfgs, s1);
   if (cfg) {
     htsmsg_set_uuid(conf, "config_name", &cfg->dvr_id.in_uuid);
-    htsmsg_set_str(conf, "owner", perm->aa_username ?: "");
-    htsmsg_set_str(conf, "creator", perm->aa_representative ?: "");
+    htsmsg_set_str2(conf, "owner", perm->aa_username);
+    htsmsg_set_str2(conf, "creator", perm->aa_representative);
 
     lang = access_get_lang(perm, htsmsg_get_str(conf, "lang"));
     if (lang) {
@@ -227,8 +227,8 @@ api_dvr_entry_create_by_event
     conf = htsmsg_create_map();
     htsmsg_copy_field(conf, "enabled", m, NULL);
     htsmsg_copy_field(conf, "comment", m, NULL);
-    htsmsg_add_str(conf, "owner", perm->aa_username);
-    htsmsg_add_str(conf, "creator", perm->aa_representative);
+    htsmsg_add_str2(conf, "owner", perm->aa_username);
+    htsmsg_add_str2(conf, "creator", perm->aa_representative);
     config_uuid = htsmsg_get_str(m, "config_uuid");
     de = NULL;
 
@@ -430,8 +430,8 @@ api_dvr_autorec_create
   if (!(conf  = htsmsg_get_map(args, "conf")))
     return EINVAL;
 
-  htsmsg_set_str(conf, "owner", perm->aa_username ?: "");
-  htsmsg_set_str(conf, "creator", perm->aa_representative ?: "");
+  htsmsg_set_str2(conf, "owner", perm->aa_username);
+  htsmsg_set_str2(conf, "creator", perm->aa_representative);
 
   s1 = htsmsg_get_str(conf, "config_uuid");
   if (s1 == NULL)
@@ -527,8 +527,8 @@ api_dvr_timerec_create
   if (!(conf  = htsmsg_get_map(args, "conf")))
     return EINVAL;
 
-  htsmsg_set_str(conf, "owner", perm->aa_username ?: "");
-  htsmsg_set_str(conf, "creator", perm->aa_representative ?: "");
+  htsmsg_set_str2(conf, "owner", perm->aa_username);
+  htsmsg_set_str2(conf, "creator", perm->aa_representative);
 
   pthread_mutex_lock(&global_lock);
   dte = dvr_timerec_create(NULL, conf);
index 3d512be243a645fe39cc5506cd8c708d9ad3db6e..6d3dcf1a841f11a426c1f80325290b8e376ad4d8 100644 (file)
@@ -456,6 +456,16 @@ htsmsg_set_str(htsmsg_t *msg, const char *name, const char *str)
   return htsmsg_field_set_str(f, str);
 }
 
+/*
+ *
+ */
+int
+htsmsg_set_str2(htsmsg_t *msg, const char *name, const char *str)
+{
+  if (msg && name && str)
+    return htsmsg_set_str(msg, name, str);
+}
+
 /*
  *
  */
index 02d11eb0a6dee572c05ac4bcddcbff5a98ab3a54..f619323bf7ea0914ca7ff658e80dc9f4f3ca1989 100644 (file)
@@ -192,6 +192,7 @@ void htsmsg_add_str_exclusive(htsmsg_t *msg, const char *str);
  * Add/update a string field
  */
 int  htsmsg_set_str(htsmsg_t *msg, const char *name, const char *str);
+int  htsmsg_set_str2(htsmsg_t *msg, const char *name, const char *str);
 
 /**
  * Update a string field
index c2e2c77c17495b492ea47a19eaad4b9a6e7553aa..84a7b5787f59b5beba012ac7266f986a061e3561 100644 (file)
@@ -661,8 +661,8 @@ htsp_serierec_convert(htsp_connection_t *htsp, htsmsg_t *in, channel_t *ch, int
   if (add) {
     str = htsp_dvr_config_name(htsp, htsmsg_get_str(in, "configName"));
     htsmsg_add_str(conf, "config_name", str ?: "");
-    htsmsg_add_str(conf, "owner",   htsp->htsp_granted_access->aa_username ?: "");
-    htsmsg_add_str(conf, "creator", htsp->htsp_granted_access->aa_representative ?: "");
+    htsmsg_add_str2(conf, "owner",   htsp->htsp_granted_access->aa_username);
+    htsmsg_add_str2(conf, "creator", htsp->htsp_granted_access->aa_representative);
   } else {
     str = htsmsg_get_str(in, "configName");
     if (str) {
@@ -1021,12 +1021,9 @@ htsp_build_dvrentry(htsp_connection_t *htsp, dvr_entry_t *de, const char *method
     if(de->de_desc && (s = lang_str_get(de->de_desc, lang)))
       htsmsg_add_str(out, "description", s);
     htsp_serialize_epnum(out, &de->de_epnum, "episode");
-    if(de->de_owner)
-      htsmsg_add_str(out, "owner",   de->de_owner);
-    if(de->de_creator)
-      htsmsg_add_str(out, "creator", de->de_creator);
-    if(de->de_comment)
-      htsmsg_add_str(out, "comment", de->de_comment);
+    htsmsg_add_str2(out, "owner", de->de_owner);
+    htsmsg_add_str2(out, "creator", de->de_creator);
+    htsmsg_add_str2(out, "comment", de->de_comment);
     /* We use the accessor since it will also try to get
      * an image from current EPG if recording does not have
      * an associated image.
@@ -1157,14 +1154,11 @@ htsp_build_autorecentry(htsp_connection_t *htsp, dvr_autorec_entry_t *dae, const
     htsmsg_add_str(out, "title",     dae->dae_title);
     htsmsg_add_u32(out, "fulltext",  dae->dae_fulltext >= 1 ? 1 : 0);
   }
-  if(dae->dae_name)
-    htsmsg_add_str(out, "name",      dae->dae_name);
+  htsmsg_add_str2(out, "name",       dae->dae_name);
   if(dae->dae_directory)
     htsmsg_add_str(out, "directory", dae->dae_directory);
-  if(dae->dae_owner)
-    htsmsg_add_str(out, "owner",     dae->dae_owner);
-  if(dae->dae_creator)
-    htsmsg_add_str(out, "creator",   dae->dae_creator);
+  htsmsg_add_str2(out, "owner",      dae->dae_owner);
+  htsmsg_add_str2(out, "creator",    dae->dae_creator);
   if(dae->dae_channel)
     htsmsg_add_u32(out, "channel",   channel_get_id(dae->dae_channel));
 
@@ -1208,10 +1202,8 @@ htsp_build_timerecentry(htsp_connection_t *htsp, dvr_timerec_entry_t *dte, const
     htsmsg_add_str(out, "name",      dte->dte_name);
   if(dte->dte_directory)
     htsmsg_add_str(out, "directory", dte->dte_directory);
-  if(dte->dte_owner)
-    htsmsg_add_str(out, "owner",     dte->dte_owner);
-  if(dte->dte_creator)
-    htsmsg_add_str(out, "creator",   dte->dte_creator);
+  htsmsg_add_str2(out, "owner",      dte->dte_owner);
+  htsmsg_add_str2(out, "creator",    dte->dte_creator);
   if(dte->dte_channel)
     htsmsg_add_u32(out, "channel",   channel_get_id(dte->dte_channel));