summary refs log tree commit diff
path: root/daemon.c
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-08-16 23:01:25 -0400
committerJune McEnroe <june@causal.agency>2020-08-16 23:01:25 -0400
commit6302579f2242830d2ab88930194d978707c174a9 (patch)
tree629fa90f37c4927927f616205c22b756c3600031 /daemon.c
parentOnly call setgroups as root (diff)
downloadcatsit-6302579f2242830d2ab88930194d978707c174a9.tar.gz
catsit-6302579f2242830d2ab88930194d978707c174a9.zip
Add drop command
Diffstat (limited to '')
-rw-r--r--daemon.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/daemon.c b/daemon.c
index 0e15c12..969675f 100644
--- a/daemon.c
+++ b/daemon.c
@@ -126,6 +126,7 @@ static void parseControl(char *command) {
 		return;
 	}
 
+	bool drop = false;
 	Action *fn = NULL;
 	int signal = 0;
 	if (!strcmp(action, "start")) {
@@ -136,6 +137,8 @@ static void parseControl(char *command) {
 		fn = serviceRestart;
 	} else if (!strcmp(action, "status")) {
 		fn = serviceStatus;
+	} else if (!strcmp(action, "drop")) {
+		drop = true;
 	} else {
 		for (int i = 1; i < NSIG; ++i) {
 			if (strcasecmp(action, sys_signame[i])) continue;
@@ -143,7 +146,7 @@ static void parseControl(char *command) {
 			break;
 		}
 	}
-	if (!fn && !signal) {
+	if (!drop && !fn && !signal) {
 		syslog(LOG_NOTICE, "unknown action or signal %s", action);
 		return;
 	}
@@ -151,10 +154,12 @@ static void parseControl(char *command) {
 	while (command) {
 		bool found = false;
 		char *pattern = strsep(&command, WS);
-		for (size_t i = 0; i < services.len; ++i) {
+		for (size_t i = services.len - 1; i < services.len; --i) {
 			struct Service *service = &services.ptr[i];
 			if (fnmatch(pattern, service->name, 0)) continue;
-			if (signal) {
+			if (drop) {
+				serviceDrop(i);
+			} else if (signal) {
 				serviceSignal(service, signal);
 			} else {
 				fn(service);
ref='/src/commit/bin/htagml.c?id=911b4761e465ec084acc7e14ca18dfe5e9b8a00a&follow=1'>Split fields by tab onlyJune McEnroe 2021-01-12List both Makefile and html.sh under README.7June McEnroe 2021-01-12Add htagml exampleJune McEnroe 2021-01-12Use mandoc and htagml for bin htmlJune McEnroe 2021-01-12Add htagmlJune McEnroe 2021-01-12Replace causal.agency with a simple mdoc pageJune McEnroe 2021-01-11Publish "Using vi"June McEnroe 2021-01-11Enable diff.colorMovedJune McEnroe 2021-01-10Set less search case-insensitiveJune McEnroe 2021-01-10Set EXINITJune McEnroe 2021-01-09Add c -t flag to print expression typeJune McEnroe 2021-01-05Update taglineJune McEnroe