From 03e334a1c7dc8c20c38902aa039440763acc9b17 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 18 Mar 2014 19:22:43 +0100 Subject: util: replace close_nointr_nofail() by a more useful safe_close() safe_close() automatically becomes a NOP when a negative fd is passed, and returns -1 unconditionally. This makes it easy to write lines like this: fd = safe_close(fd); Which will close an fd if it is open, and reset the fd variable correctly. By making use of this new scheme we can drop a > 200 lines of code that was required to test for non-negative fds or to reset the closed fd variable afterwards. --- src/journal/journald-server.c | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) (limited to 'src/journal/journald-server.c') diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c index ef39d0a602..c2a60d5e83 100644 --- a/src/journal/journald-server.c +++ b/src/journal/journald-server.c @@ -1432,8 +1432,7 @@ static int server_open_hostname(Server *s) { if (r == -EPERM) { log_warning("Failed to register hostname fd in event loop: %s. Ignoring.", strerror(-r)); - close_nointr_nofail(s->hostname_fd); - s->hostname_fd = -1; + s->hostname_fd = safe_close(s->hostname_fd); return 0; } @@ -1643,20 +1642,11 @@ void server_done(Server *s) { sd_event_source_unref(s->hostname_event_source); sd_event_unref(s->event); - if (s->syslog_fd >= 0) - close_nointr_nofail(s->syslog_fd); - - if (s->native_fd >= 0) - close_nointr_nofail(s->native_fd); - - if (s->stdout_fd >= 0) - close_nointr_nofail(s->stdout_fd); - - if (s->dev_kmsg_fd >= 0) - close_nointr_nofail(s->dev_kmsg_fd); - - if (s->hostname_fd >= 0) - close_nointr_nofail(s->hostname_fd); + safe_close(s->syslog_fd); + safe_close(s->native_fd); + safe_close(s->stdout_fd); + safe_close(s->dev_kmsg_fd); + safe_close(s->hostname_fd); if (s->rate_limit) journal_rate_limit_free(s->rate_limit); -- cgit v1.2.3-54-g00ecf