chiark / gitweb /
sd-event: simplify sd_event_source_set_name()
[elogind.git] / src / libsystemd / sd-event / sd-event.c
index a2935abd64903ed79d3b86a3fd271e9923a5db31..985ff2829bdbab1baa8b74fbb479b779d5f93992 100644 (file)
@@ -1227,20 +1227,9 @@ _public_ sd_event_source* sd_event_source_unref(sd_event_source *s) {
 }
 
 _public_ int sd_event_source_set_name(sd_event_source *s, const char *name) {
-        char *new_name = NULL;
-
         assert_return(s, -EINVAL);
 
-        if (name) {
-                new_name = strdup(name);
-                if (!new_name)
-                        return -ENOMEM;
-        }
-
-        free(s->name);
-        s->name = new_name;
-
-        return 0;
+        return free_and_strdup(&s->name, name);
 }
 
 _public_ int sd_event_source_get_name(sd_event_source *s, const char **name) {
@@ -2112,8 +2101,12 @@ static int source_dispatch(sd_event_source *s) {
 
         s->dispatching = false;
 
-        if (r < 0)
-                log_debug("Event source %p returned error, disabling: %s", s, strerror(-r));
+        if (r < 0) {
+                if (s->name)
+                        log_debug("Event source '%s' returned error, disabling: %s", s->name, strerror(-r));
+                else
+                        log_debug("Event source %p returned error, disabling: %s", s, strerror(-r));
+        }
 
         if (s->n_ref == 0)
                 source_free(s);
@@ -2146,8 +2139,12 @@ static int event_prepare(sd_event *e) {
                 r = s->prepare(s, s->userdata);
                 s->dispatching = false;
 
-                if (r < 0)
-                        log_debug("Prepare callback of event source %p returned error, disabling: %s", s, strerror(-r));
+                if (r < 0) {
+                        if (s->name)
+                                log_debug("Prepare callback of event source '%s' returned error, disabling: %s", s->name, strerror(-r));
+                        else
+                                log_debug("Prepare callback of event source %p returned error, disabling: %s", s, strerror(-r));
+                }
 
                 if (s->n_ref == 0)
                         source_free(s);