X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flibsystemd%2Fsd-event%2Fsd-event.c;h=985ff2829bdbab1baa8b74fbb479b779d5f93992;hb=32b13b2f58b916ea22626e89cdd8cdb70ca6b6c9;hp=a2935abd64903ed79d3b86a3fd271e9923a5db31;hpb=f7f53e9e6ebb9f656d880f5e779fc174a1d983bf;p=elogind.git diff --git a/src/libsystemd/sd-event/sd-event.c b/src/libsystemd/sd-event/sd-event.c index a2935abd6..985ff2829 100644 --- a/src/libsystemd/sd-event/sd-event.c +++ b/src/libsystemd/sd-event/sd-event.c @@ -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);