1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-02 10:51:20 +03:00

systemctl: style fixes for the previous patch

Use the usual indentation, bracketing style, and no assignments in ifs.
Since check_listening_sockets provides just optional hints for the user,
don't pass its DBusErrors to the caller.
This commit is contained in:
Michal Schmidt 2012-06-13 15:52:27 +02:00
parent 701cdcb9ee
commit e61a3135e9

View File

@ -1502,20 +1502,19 @@ finish:
static int get_unit_path( static int get_unit_path(
DBusConnection *bus, DBusConnection *bus,
DBusError *error,
const char *name, const char *name,
char **unit_path) { char **unit_path) {
DBusError error;
DBusMessage *m = NULL, *reply = NULL; DBusMessage *m = NULL, *reply = NULL;
char *path;
int r = 0; int r = 0;
assert(bus); assert(bus);
assert(error);
assert(name); assert(name);
assert(unit_path); assert(unit_path);
*unit_path = NULL; dbus_error_init(&error);
m = dbus_message_new_method_call("org.freedesktop.systemd1", m = dbus_message_new_method_call("org.freedesktop.systemd1",
"/org/freedesktop/systemd1", "/org/freedesktop/systemd1",
@ -1528,34 +1527,33 @@ static int get_unit_path(
} }
if (!dbus_message_append_args(m, if (!dbus_message_append_args(m,
DBUS_TYPE_STRING, &name, DBUS_TYPE_STRING, &name,
DBUS_TYPE_INVALID)) { DBUS_TYPE_INVALID)) {
log_error("Could not append arguments to message."); log_error("Could not append arguments to message.");
r = -ENOMEM; r = -ENOMEM;
goto finish; goto finish;
} }
reply = dbus_connection_send_with_reply_and_block(bus, m, -1, error); reply = dbus_connection_send_with_reply_and_block(bus, m, -1, &error);
if (!reply) { if (!reply) {
if (streq(error->name, BUS_ERROR_NO_SUCH_UNIT)) { if (streq(error.name, BUS_ERROR_NO_SUCH_UNIT))
dbus_error_free(error);
r = -EINVAL; r = -EINVAL;
} else { else {
log_error("Failed to issue method call: %s", bus_error_message(error)); log_error("Failed to issue method call: %s", bus_error_message(&error));
r = -EIO; r = -EIO;
} }
goto finish; goto finish;
} }
if (!dbus_message_get_args(reply, error, if (!dbus_message_get_args(reply, &error,
DBUS_TYPE_OBJECT_PATH, unit_path, DBUS_TYPE_OBJECT_PATH, &path,
DBUS_TYPE_INVALID)) { DBUS_TYPE_INVALID)) {
log_error("Failed to parse reply: %s", bus_error_message(error)); log_error("Failed to parse reply: %s", bus_error_message(&error));
r = -EIO; r = -EIO;
goto finish; goto finish;
} }
*unit_path = strdup(*unit_path); *unit_path = strdup(path);
if (!(*unit_path)) { if (!(*unit_path)) {
log_error("Failed to duplicate unit path"); log_error("Failed to duplicate unit path");
r = -ENOMEM; r = -ENOMEM;
@ -1565,14 +1563,17 @@ finish:
dbus_message_unref(m); dbus_message_unref(m);
if (reply) if (reply)
dbus_message_unref(reply); dbus_message_unref(reply);
dbus_error_free(&error);
return r; return r;
} }
static int is_socket_listening( static int is_socket_listening(
DBusConnection *bus, DBusConnection *bus,
DBusError *error,
const char *socket_name) { const char *socket_name) {
DBusError error;
DBusMessage *m = NULL, *reply = NULL; DBusMessage *m = NULL, *reply = NULL;
DBusMessageIter iter, sub; DBusMessageIter iter, sub;
char *socket_object_path = NULL; char *socket_object_path = NULL;
@ -1582,12 +1583,14 @@ static int is_socket_listening(
int r = 0; int r = 0;
assert(bus); assert(bus);
assert(error);
assert(socket_name); assert(socket_name);
if ((r = get_unit_path(bus, error, socket_name, &socket_object_path)) < 0) { dbus_error_init(&error);
r = get_unit_path(bus, socket_name, &socket_object_path);
if (r < 0)
goto finish; goto finish;
}
m = dbus_message_new_method_call("org.freedesktop.systemd1", m = dbus_message_new_method_call("org.freedesktop.systemd1",
socket_object_path, socket_object_path,
"org.freedesktop.DBus.Properties", "org.freedesktop.DBus.Properties",
@ -1599,17 +1602,17 @@ static int is_socket_listening(
} }
if (!dbus_message_append_args(m, if (!dbus_message_append_args(m,
DBUS_TYPE_STRING, &interface, DBUS_TYPE_STRING, &interface,
DBUS_TYPE_STRING, &property, DBUS_TYPE_STRING, &property,
DBUS_TYPE_INVALID)) { DBUS_TYPE_INVALID)) {
log_error("Could not append arguments to message."); log_error("Could not append arguments to message.");
r = -ENOMEM; r = -ENOMEM;
goto finish; goto finish;
} }
reply = dbus_connection_send_with_reply_and_block(bus, m, -1, error); reply = dbus_connection_send_with_reply_and_block(bus, m, -1, &error);
if (!reply) { if (!reply) {
log_error("Failed to issue method call: %s", bus_error_message(error)); log_error("Failed to issue method call: %s", bus_error_message(&error));
r = -EIO; r = -EIO;
goto finish; goto finish;
} }
@ -1618,7 +1621,7 @@ static int is_socket_listening(
dbus_message_iter_recurse(&iter, &sub); dbus_message_iter_recurse(&iter, &sub);
if (dbus_message_iter_get_arg_type(&sub) != DBUS_TYPE_STRING) { if (dbus_message_iter_get_arg_type(&sub) != DBUS_TYPE_STRING) {
log_error("Failed to parse reply: %s", bus_error_message(error)); log_error("Failed to parse reply: %s", bus_error_message(&error));
r = -EIO; r = -EIO;
goto finish; goto finish;
} }
@ -1631,15 +1634,17 @@ finish:
if (reply) if (reply)
dbus_message_unref(reply); dbus_message_unref(reply);
dbus_error_free(&error);
free(socket_object_path); free(socket_object_path);
return r; return r;
} }
static void check_listening_sockets( static void check_listening_sockets(
DBusConnection *bus, DBusConnection *bus,
DBusError *error,
const char *unit_name) { const char *unit_name) {
DBusError error;
DBusMessage *m = NULL, *reply = NULL; DBusMessage *m = NULL, *reply = NULL;
DBusMessageIter iter, sub; DBusMessageIter iter, sub;
const char *service_trigger = NULL, const char *service_trigger = NULL,
@ -1647,11 +1652,12 @@ static void check_listening_sockets(
*triggered_by_property = "TriggeredBy"; *triggered_by_property = "TriggeredBy";
char *unit_path = NULL; char *unit_path = NULL;
int print_warning_label = 1; bool print_warning_label = true;
if ((get_unit_path(bus, error, unit_name, &unit_path) < 0)) { dbus_error_init(&error);
if (get_unit_path(bus, unit_name, &unit_path) < 0)
goto finish; goto finish;
}
m = dbus_message_new_method_call("org.freedesktop.systemd1", m = dbus_message_new_method_call("org.freedesktop.systemd1",
unit_path, unit_path,
@ -1663,22 +1669,22 @@ static void check_listening_sockets(
} }
if (!dbus_message_append_args(m, if (!dbus_message_append_args(m,
DBUS_TYPE_STRING, &interface, DBUS_TYPE_STRING, &interface,
DBUS_TYPE_STRING, &triggered_by_property, DBUS_TYPE_STRING, &triggered_by_property,
DBUS_TYPE_INVALID)) { DBUS_TYPE_INVALID)) {
log_error("Could not append arguments to message."); log_error("Could not append arguments to message.");
goto finish; goto finish;
} }
reply = dbus_connection_send_with_reply_and_block(bus, m, -1, error); reply = dbus_connection_send_with_reply_and_block(bus, m, -1, &error);
if (!reply) { if (!reply) {
log_error("Failed to issue method call: %s", bus_error_message(error)); log_error("Failed to issue method call: %s", bus_error_message(&error));
goto finish; goto finish;
} }
if (!dbus_message_iter_init(reply, &iter) || if (!dbus_message_iter_init(reply, &iter) ||
dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_VARIANT) { dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_VARIANT) {
log_error("Failed to parse reply: %s", bus_error_message(error)); log_error("Failed to parse reply: %s", bus_error_message(&error));
goto finish; goto finish;
} }
@ -1688,33 +1694,29 @@ static void check_listening_sockets(
sub = iter; sub = iter;
while (dbus_message_iter_get_arg_type(&sub) != DBUS_TYPE_INVALID) { while (dbus_message_iter_get_arg_type(&sub) != DBUS_TYPE_INVALID) {
int r = 0; int r;
if (dbus_message_iter_get_arg_type(&sub) != DBUS_TYPE_STRING) { if (dbus_message_iter_get_arg_type(&sub) != DBUS_TYPE_STRING) {
log_error("Failed to parse reply: %s", bus_error_message(error)); log_error("Failed to parse reply: %s", bus_error_message(&error));
goto finish; goto finish;
} }
dbus_message_iter_get_basic(&sub, &service_trigger); dbus_message_iter_get_basic(&sub, &service_trigger);
if (endswith(service_trigger, ".socket")) { if (!endswith(service_trigger, ".socket"))
r = is_socket_listening(bus, error, service_trigger); goto next;
} else {
dbus_message_iter_recurse(&iter, &sub);
iter = sub;
continue;
}
r = is_socket_listening(bus, service_trigger);
if (r < 0)
goto finish;
if (r == 1) { if (r == 1) {
if (print_warning_label) { if (print_warning_label) {
log_warning("There are listening sockets associated with %s :", unit_name); log_warning("There are listening sockets associated with %s :", unit_name);
print_warning_label = 0; print_warning_label = false;
} }
log_warning("%s",service_trigger); log_warning("%s", service_trigger);
} else if (r < 0) {
log_error("Failed to issue function call: %s", bus_error_message(error));
goto finish;
} }
next:
dbus_message_iter_recurse(&iter, &sub); dbus_message_iter_recurse(&iter, &sub);
iter = sub; iter = sub;
} }
@ -1725,6 +1727,8 @@ finish:
if (reply) if (reply)
dbus_message_unref(reply); dbus_message_unref(reply);
dbus_error_free(&error);
free(unit_path); free(unit_path);
} }
@ -1809,9 +1813,8 @@ static int start_unit_one(
} }
/* When stopping unit check if we have some listening sockets active */ /* When stopping unit check if we have some listening sockets active */
if (streq(method, "StopUnit") && !arg_quiet) { if (streq(method, "StopUnit") && !arg_quiet)
check_listening_sockets(bus, error, name); check_listening_sockets(bus, name);
}
r = 0; r = 0;