chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
550a40e
)
core: use automatic cleanup in two functions
author
Zbigniew Jędrzejewski-Szmek
<zbyszek@in.waw.pl>
Sun, 12 Jan 2014 20:55:10 +0000
(15:55 -0500)
committer
Zbigniew Jędrzejewski-Szmek
<zbyszek@in.waw.pl>
Sat, 8 Feb 2014 18:07:39 +0000
(13:07 -0500)
src/core/manager.c
patch
|
blob
|
history
diff --git
a/src/core/manager.c
b/src/core/manager.c
index b58b98c137eb655f6d4a6b20cd28cc32bcb2c549..dbe08f930f7a3a2fb9ce6b8dc09bb1b45fbc7f4f 100644
(file)
--- a/
src/core/manager.c
+++ b/
src/core/manager.c
@@
-1916,7
+1916,7
@@
int manager_get_job_from_dbus_path(Manager *m, const char *s, Job **_j) {
void manager_send_unit_audit(Manager *m, Unit *u, int type, bool success) {
#ifdef HAVE_AUDIT
void manager_send_unit_audit(Manager *m, Unit *u, int type, bool success) {
#ifdef HAVE_AUDIT
-
char *p
;
+
_cleanup_free_ char *p = NULL
;
int audit_fd;
audit_fd = get_audit_fd();
int audit_fd;
audit_fd = get_audit_fd();
@@
-1949,17
+1949,19
@@
void manager_send_unit_audit(Manager *m, Unit *u, int type, bool success) {
} else
log_warning("Failed to send audit message: %m");
}
} else
log_warning("Failed to send audit message: %m");
}
-
- free(p);
#endif
}
void manager_send_unit_plymouth(Manager *m, Unit *u) {
#endif
}
void manager_send_unit_plymouth(Manager *m, Unit *u) {
- int fd = -1;
- union sockaddr_union sa;
+ union sockaddr_union sa = {
+ .sa.sa_family = AF_UNIX,
+ .un.sun_path = "\0/org/freedesktop/plymouthd",
+ };
+
int n = 0;
int n = 0;
- char *message = NULL;
+ _cleanup_free_ char *message = NULL;
+ _cleanup_close_ int fd = -1;
/* Don't generate plymouth events if the service was already
* started and we're just deserializing */
/* Don't generate plymouth events if the service was already
* started and we're just deserializing */
@@
-1985,46
+1987,22
@@
void manager_send_unit_plymouth(Manager *m, Unit *u) {
return;
}
return;
}
- zero(sa);
- sa.sa.sa_family = AF_UNIX;
- strncpy(sa.un.sun_path+1, "/org/freedesktop/plymouthd", sizeof(sa.un.sun_path)-1);
if (connect(fd, &sa.sa, offsetof(struct sockaddr_un, sun_path) + 1 + strlen(sa.un.sun_path+1)) < 0) {
if (connect(fd, &sa.sa, offsetof(struct sockaddr_un, sun_path) + 1 + strlen(sa.un.sun_path+1)) < 0) {
- if (errno != EPIPE &&
- errno != EAGAIN &&
- errno != ENOENT &&
- errno != ECONNREFUSED &&
- errno != ECONNRESET &&
- errno != ECONNABORTED)
+ if (!IN_SET(errno, EPIPE, EAGAIN, ENOENT, ECONNREFUSED, ECONNRESET, ECONNABORTED))
log_error("connect() failed: %m");
log_error("connect() failed: %m");
-
- goto finish;
+ return;
}
if (asprintf(&message, "U\002%c%s%n", (int) (strlen(u->id) + 1), u->id, &n) < 0) {
log_oom();
}
if (asprintf(&message, "U\002%c%s%n", (int) (strlen(u->id) + 1), u->id, &n) < 0) {
log_oom();
-
goto finish
;
+
return
;
}
errno = 0;
}
errno = 0;
- if (write(fd, message, n + 1) != n + 1) {
-
- if (errno != EPIPE &&
- errno != EAGAIN &&
- errno != ENOENT &&
- errno != ECONNREFUSED &&
- errno != ECONNRESET &&
- errno != ECONNABORTED)
+ if (write(fd, message, n + 1) != n + 1)
+ if (!IN_SET(errno, EPIPE, EAGAIN, ENOENT, ECONNREFUSED, ECONNRESET, ECONNABORTED))
log_error("Failed to write Plymouth message: %m");
log_error("Failed to write Plymouth message: %m");
-
- goto finish;
- }
-
-finish:
- if (fd >= 0)
- close_nointr_nofail(fd);
-
- free(message);
}
void manager_dispatch_bus_name_owner_changed(
}
void manager_dispatch_bus_name_owner_changed(