]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
Dont crash when deleting recordings and filename is not yet set. Ticket #383
authorAndreas Öman <andreas@lonelycoder.com>
Mon, 21 Mar 2011 21:35:32 +0000 (22:35 +0100)
committerAndreas Öman <andreas@lonelycoder.com>
Mon, 21 Mar 2011 21:35:32 +0000 (22:35 +0100)
src/dvr/dvr.h
src/dvr/dvr_db.c
src/webui/extjs.c

index f31249ff30b0dff6c4d9d270bd91fddce4aea533..2481d0dfe235acf090536820b69636b472ab04eb 100644 (file)
@@ -274,7 +274,7 @@ void dvr_extra_time_pre_set(dvr_config_t *cfg, int d);
 
 void dvr_extra_time_post_set(dvr_config_t *cfg, int d);
 
-int dvr_entry_delete(dvr_entry_t *de);
+void dvr_entry_delete(dvr_entry_t *de);
 
 /**
  * Query interface
index aa59112f0df31c08c5e0a693cc6391f7f0cd4739..a8678f999644f4f09888eb50f3f56bfea51ab0fc 100644 (file)
@@ -1161,17 +1161,18 @@ dvr_val2pri(dvr_prio_t v)
   return val2str(v, priotab) ?: "invalid";
 }
 
-int
+
+/**
+ *
+ */
+void
 dvr_entry_delete(dvr_entry_t *de)
 {
-  if(!unlink(de->de_filename) || errno == ENOENT) {
-    tvhlog(LOG_DEBUG, "dvr", "Delete recording '%s'", de->de_filename);
-    dvr_entry_remove(de);
-    return 0;
-  } else {
-    tvhlog(LOG_WARNING, "dvr", "Unable to delete recording '%s' -- %s",
-          de->de_filename, strerror(errno));
-    return -1;
+  if(de->de_filename != NULL) {
+    if(unlink(de->de_filename) && errno != ENOENT)
+      tvhlog(LOG_WARNING, "dvr", "Unable to remove file '%s' from disk -- %s",
+            de->de_filename, strerror(errno));
   }
+  dvr_entry_remove(de);
 }
 
index 7468dea20344f71287087e5fa99e664d9880084a..40495d295b77759b62d699ad79587599b12aed6b 100644 (file)
@@ -764,7 +764,7 @@ extjs_dvr(http_connection_t *hc, const char *remain, void *opaque)
   event_t *e;
   dvr_entry_t *de;
   const char *s;
-  int flags = 0, retval;
+  int flags = 0;
   dvr_config_t *cfg;
 
   if(op == NULL)
@@ -813,10 +813,10 @@ extjs_dvr(http_connection_t *hc, const char *remain, void *opaque)
       return HTTP_STATUS_BAD_REQUEST;
     }
 
-    retval = dvr_entry_delete(de);
+    dvr_entry_delete(de);
 
     out = htsmsg_create_map();
-    htsmsg_add_u32(out, "success", !retval);
+    htsmsg_add_u32(out, "success", 1);
 
   } else if(!strcmp(op, "createEntry")) {