summaryrefslogtreecommitdiff
path: root/minecproxy/systemd.c
diff options
context:
space:
mode:
authorDavid Härdeman <david@hardeman.nu>2020-06-28 14:58:32 +0200
committerDavid Härdeman <david@hardeman.nu>2020-06-28 14:58:32 +0200
commitd3352b997ca59a336a40fe6660c6e5b7079864aa (patch)
treef365d6c0304e512057223e9a3cf37357da44a443 /minecproxy/systemd.c
parent99b2c70137fef05a5a18f439b9010ddba455f5cb (diff)
Run clang-format on source tree (excl igmp.c)
Diffstat (limited to 'minecproxy/systemd.c')
-rw-r--r--minecproxy/systemd.c133
1 files changed, 60 insertions, 73 deletions
diff --git a/minecproxy/systemd.c b/minecproxy/systemd.c
index e9ed885..a973a55 100644
--- a/minecproxy/systemd.c
+++ b/minecproxy/systemd.c
@@ -6,12 +6,11 @@
#include "server.h"
#include "systemd.h"
-#define SYSTEMD_DBUS_SERVICE "org.freedesktop.systemd1"
-#define SYSTEMD_DBUS_INTERFACE "org.freedesktop.systemd1.Unit"
-#define SYSTEMD_DBUS_PATH_PREFIX "/org/freedesktop/systemd1/unit/"
+#define SYSTEMD_DBUS_SERVICE "org.freedesktop.systemd1"
+#define SYSTEMD_DBUS_INTERFACE "org.freedesktop.systemd1.Unit"
+#define SYSTEMD_DBUS_PATH_PREFIX "/org/freedesktop/systemd1/unit/"
-static inline char
-tohex(uint8_t val)
+static inline char tohex(uint8_t val)
{
static const char hex[] = "0123456789abcdef";
@@ -29,8 +28,7 @@ tohex(uint8_t val)
*
* Example: minecraft@world1.service -> minecraft_40world1_2eservice
*/
-char *
-systemd_object_path(const char *service)
+char *systemd_object_path(const char *service)
{
char *r;
char *d;
@@ -46,8 +44,7 @@ systemd_object_path(const char *service)
d = r + STRLEN(SYSTEMD_DBUS_PATH_PREFIX);
for (s = service; *s; s++) {
- if ((*s >= 'a' && *s <= 'z') ||
- (*s >= 'A' && *s <= 'Z') ||
+ if ((*s >= 'a' && *s <= 'z') || (*s >= 'A' && *s <= 'Z') ||
(*s >= '0' && *s <= '9')) {
*(d++) = *s;
continue;
@@ -62,17 +59,15 @@ systemd_object_path(const char *service)
return r;
}
-void
-systemd_delete()
+void systemd_delete()
{
- assert_return_silent(cfg->sd_bus);
+ assert_return_silent(cfg->sd_bus);
- sd_bus_unref(cfg->sd_bus);
+ sd_bus_unref(cfg->sd_bus);
cfg->sd_bus = NULL;
}
-static sd_bus *
-get_bus()
+static sd_bus *get_bus()
{
int r;
@@ -82,7 +77,8 @@ get_bus()
if (!cfg->sd_bus) {
r = sd_bus_open_user(&cfg->sd_bus);
if (r < 0) {
- error("failed to connect to user system bus: %s", strerror(-r));
+ error("failed to connect to user system bus: %s",
+ strerror(-r));
cfg->sd_bus_failed = true;
return NULL;
}
@@ -94,37 +90,36 @@ get_bus()
/*
* Check if a systemd service is running.
*
- * This is equivalent to (assuming service minecraft@world1):
- * gdbus call --session
- * --dest org.freedesktop.systemd1
- * --object-path /org/freedesktop/systemd1/unit/minecraft_40world1_2eservice
+ * This is equivalent to (assuming service mc@world1):
+ * gdbus call --session
+ * --dest org.freedesktop.systemd1
+ * --object-path /org/freedesktop/systemd1/unit/mc_40world1_2eservice
* --method org.freedesktop.DBus.Properties.Get
- * "org.freedesktop.systemd1.Unit"
+ * "org.freedesktop.systemd1.Unit"
* "ActiveState"
*/
-bool
-systemd_service_running(struct server *server)
+bool systemd_service_running(struct server *server)
{
sd_bus *bus = get_bus();
- sd_bus_error error = SD_BUS_ERROR_NULL;
+ sd_bus_error error = SD_BUS_ERROR_NULL;
char *status = NULL;
bool running = false;
int r;
- assert_return(server && bus && server->systemd_service && server->systemd_obj, false);
+ assert_return(server && bus && server->systemd_service &&
+ server->systemd_obj,
+ false);
- r = sd_bus_get_property_string(bus,
- SYSTEMD_DBUS_SERVICE,
+ r = sd_bus_get_property_string(bus, SYSTEMD_DBUS_SERVICE,
server->systemd_obj,
- SYSTEMD_DBUS_INTERFACE,
- "ActiveState",
- &error,
- &status);
- if (r < 0) {
- error("failed to get status for service %s (%s): %s",
- server->systemd_service, server->systemd_obj, error.message);
+ SYSTEMD_DBUS_INTERFACE, "ActiveState",
+ &error, &status);
+ if (r < 0) {
+ error("failed to get status for service %s (%s): %s",
+ server->systemd_service, server->systemd_obj,
+ error.message);
goto out;
- }
+ }
if (streq(status, "active")) {
running = true;
@@ -136,64 +131,58 @@ systemd_service_running(struct server *server)
out:
free(status);
- sd_bus_error_free(&error);
+ sd_bus_error_free(&error);
return running;
}
-static bool
-systemd_service_action(struct server *server, const char *action)
+static bool systemd_service_action(struct server *server, const char *action)
{
- sd_bus_error error = SD_BUS_ERROR_NULL;
- sd_bus_message *m = NULL;
+ sd_bus_error error = SD_BUS_ERROR_NULL;
+ sd_bus_message *m = NULL;
sd_bus *bus = get_bus();
const char *path;
bool performed = false;
int r;
- assert_return(server && bus && server->systemd_service && server->systemd_obj && action, false);
+ assert_return(server && bus && server->systemd_service &&
+ server->systemd_obj && action,
+ false);
- r = sd_bus_call_method(bus,
- SYSTEMD_DBUS_SERVICE,
- server->systemd_obj,
- SYSTEMD_DBUS_INTERFACE,
- action,
- &error,
- &m,
- "s",
+ r = sd_bus_call_method(bus, SYSTEMD_DBUS_SERVICE, server->systemd_obj,
+ SYSTEMD_DBUS_INTERFACE, action, &error, &m, "s",
"fail");
- if (r < 0) {
- error("failed to perform action %s on systemd service %s: %s",
+ if (r < 0) {
+ error("failed to perform action %s on systemd service %s: %s",
action, server->systemd_service, error.message);
goto out;
- }
+ }
- r = sd_bus_message_read(m, "o", &path);
- if (r < 0) {
- error("failed to parse response message: %s", strerror(-r));
+ r = sd_bus_message_read(m, "o", &path);
+ if (r < 0) {
+ error("failed to parse response message: %s", strerror(-r));
goto out;
- }
+ }
- verbose("action %s queued for service %s",
- action, server->systemd_service);
+ verbose("action %s queued for service %s", action,
+ server->systemd_service);
performed = true;
out:
- sd_bus_error_free(&error);
- sd_bus_message_unref(m);
+ sd_bus_error_free(&error);
+ sd_bus_message_unref(m);
return performed;
}
/*
* Stop systemd service.
*
- * This is equivalent to (assuming service minecraft@world1):
- * gdbus call --session
- * --dest org.freedesktop.systemd1
- * --object-path /org/freedesktop/systemd1/unit/minecraft_40world1_2eservice
+ * This is equivalent to (assuming service mc@world1):
+ * gdbus call --session
+ * --dest org.freedesktop.systemd1
+ * --object-path /org/freedesktop/systemd1/unit/mc_40world1_2eservice
* --method org.freedesktop.systemd1.Unit.Stop "fail"
*/
-bool
-systemd_service_stop(struct server *server)
+bool systemd_service_stop(struct server *server)
{
assert_return(server, false);
@@ -203,17 +192,15 @@ systemd_service_stop(struct server *server)
/*
* Start systemd service.
*
- * This is equivalent to (assuming service minecraft@world1):
- * gdbus call --session
- * --dest org.freedesktop.systemd1
- * --object-path /org/freedesktop/systemd1/unit/minecraft_40world1_2eservice
+ * This is equivalent to (assuming service mc@world1):
+ * gdbus call --session
+ * --dest org.freedesktop.systemd1
+ * --object-path /org/freedesktop/systemd1/unit/mc_40world1_2eservice
* --method org.freedesktop.systemd1.Unit.Start "fail"
*/
-bool
-systemd_service_start(struct server *server)
+bool systemd_service_start(struct server *server)
{
assert_return(server, false);
return systemd_service_action(server, "Start");
}
-