summaryrefslogtreecommitdiff
path: root/src/journal
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2014-06-18 17:56:03 -0400
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2014-06-19 08:53:31 -0400
commit61c024b328d5493a334242a4d01ba923582093fa (patch)
treeac48ea85b506443fd0624337a3f6309ad5166d1f /src/journal
parent4138fb2c7936758da709eaed3f6b4f3df1d04eff (diff)
journal-send.c: use automatic cleanup
Diffstat (limited to 'src/journal')
-rw-r--r--src/journal/journal-send.c37
1 files changed, 14 insertions, 23 deletions
diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c
index d92e84baa..bb1ef66dc 100644
--- a/src/journal/journal-send.c
+++ b/src/journal/journal-send.c
@@ -198,7 +198,8 @@ finish:
_public_ int sd_journal_sendv(const struct iovec *iov, int n) {
PROTECT_ERRNO;
- int fd, buffer_fd;
+ int fd;
+ _cleanup_close_ int buffer_fd = -1;
struct iovec *w;
uint64_t *l;
int i, j = 0;
@@ -315,10 +316,8 @@ _public_ int sd_journal_sendv(const struct iovec *iov, int n) {
return buffer_fd;
n = writev(buffer_fd, w, j);
- if (n < 0) {
- safe_close(buffer_fd);
+ if (n < 0)
return -errno;
- }
mh.msg_iov = NULL;
mh.msg_iovlen = 0;
@@ -336,8 +335,6 @@ _public_ int sd_journal_sendv(const struct iovec *iov, int n) {
mh.msg_controllen = cmsg->cmsg_len;
k = sendmsg(fd, &mh, MSG_NOSIGNAL);
- safe_close(buffer_fd);
-
if (k < 0)
return -errno;
@@ -398,10 +395,10 @@ _public_ int sd_journal_stream_fd(const char *identifier, int priority, int leve
.un.sun_family = AF_UNIX,
.un.sun_path = "/run/systemd/journal/stdout",
};
- int fd;
+ _cleanup_close_ int fd = -1;
char *header;
size_t l;
- ssize_t r;
+ int r;
assert_return(priority >= 0, -EINVAL);
assert_return(priority <= 7, -EINVAL);
@@ -411,15 +408,11 @@ _public_ int sd_journal_stream_fd(const char *identifier, int priority, int leve
return -errno;
r = connect(fd, &sa.sa, offsetof(union sockaddr_union, un.sun_path) + strlen(sa.un.sun_path));
- if (r < 0) {
- safe_close(fd);
+ if (r < 0)
return -errno;
- }
- if (shutdown(fd, SHUT_RD) < 0) {
- safe_close(fd);
+ if (shutdown(fd, SHUT_RD) < 0)
return -errno;
- }
fd_inc_sndbuf(fd, SNDBUF_SIZE);
@@ -443,18 +436,16 @@ _public_ int sd_journal_stream_fd(const char *identifier, int priority, int leve
header[l++] = '0';
header[l++] = '\n';
- r = loop_write(fd, header, l, false);
- if (r < 0) {
- safe_close(fd);
- return (int) r;
- }
+ r = (int) loop_write(fd, header, l, false);
+ if (r < 0)
+ return r;
- if ((size_t) r != l) {
- safe_close(fd);
+ if ((size_t) r != l)
return -errno;
- }
- return fd;
+ r = fd;
+ fd = -1;
+ return r;
}
_public_ int sd_journal_print_with_location(int priority, const char *file, const char *line, const char *func, const char *format, ...) {