diff options
author | David Härdeman <david@hardeman.nu> | 2020-06-10 11:22:29 +0200 |
---|---|---|
committer | David Härdeman <david@hardeman.nu> | 2020-06-10 11:22:29 +0200 |
commit | fae819296598100e41646e0bebc7d0bce45614f7 (patch) | |
tree | 4680a7afdc64e278fe2018f6515ad88b8a54f80e /server.h | |
parent | a270b41d55e3ab867e7c9aabf301ce9d9c48929f (diff) |
Add initial systemd integration
Diffstat (limited to 'server.h')
-rw-r--r-- | server.h | 17 |
1 files changed, 14 insertions, 3 deletions
@@ -10,11 +10,13 @@ enum server_type { enum server_stop_method { SERVER_STOP_METHOD_UNDEFINED, SERVER_STOP_METHOD_RCON, + SERVER_STOP_METHOD_SYSTEMD, SERVER_STOP_METHOD_EXEC }; enum server_start_method { SERVER_START_METHOD_UNDEFINED, + SERVER_START_METHOD_SYSTEMD, SERVER_START_METHOD_EXEC }; @@ -31,12 +33,14 @@ struct server { enum server_stop_method stop_method; enum server_start_method start_method; + + /* For calling external start/stop executables */ char *stop_exec; char *start_exec; - /* For config files */ - char buf[4096]; - size_t len; + /* For systemd services */ + char *systemd_service; + char *systemd_obj; /* For rcon connections */ struct rcon *rcon; @@ -52,6 +56,10 @@ struct server { unsigned idle_timeout; unsigned idle_count; + /* For config files */ + char buf[4096]; + size_t len; + struct uring_task exec_task; struct uring_task task; struct list_head list; @@ -81,6 +89,9 @@ bool server_add_rcon(struct cfg *cfg, struct server *scfg, bool server_set_rcon_password(struct cfg *cfg, struct server *scfg, const char *password); +bool server_set_systemd_service(struct cfg *cfg, struct server *scfg, + const char *service); + bool server_set_stop_method(struct cfg *cfg, struct server *scfg, enum server_stop_method stop_method); |