summary refs log tree commit diff
diff options
context:
space:
mode:
authorLeah Neukirchen <leah@vuxu.org>2022-01-06 17:12:18 +0100
committerLeah Neukirchen <leah@vuxu.org>2022-01-06 17:12:18 +0100
commit8ec47e56be97a6f6ba3d43a4b34c06dcdd466aad (patch)
tree83d9e282c55eca30f5b57cd3cccfc6f5ba2847e3
parent6106009cad530b62b6c526f4dcce5e9dc47a0853 (diff)
downloadrvnit-8ec47e56be97a6f6ba3d43a4b34c06dcdd466aad.tar.gz
rvnit-8ec47e56be97a6f6ba3d43a4b34c06dcdd466aad.tar.xz
rvnit-8ec47e56be97a6f6ba3d43a4b34c06dcdd466aad.zip
simplify logging
-rw-r--r--rvnit.c59
1 files changed, 16 insertions, 43 deletions
diff --git a/rvnit.c b/rvnit.c
index a93d2d0..4c582d9 100644
--- a/rvnit.c
+++ b/rvnit.c
@@ -21,6 +21,9 @@
 
 #define MAX_SV 512
 
+// ## not truly portable :/
+#define LOG(fmt, ...) dprintf(selflogfd[1], fmt "\n", ## __VA_ARGS__);
+
 struct entry {
 	char level;
 	char name[62];
@@ -310,7 +313,7 @@ reap(pid_t pid, int status)
 		services[i].pid = 0;
 		services[i].status = status;
 
-		dprintf(2, "reaped %s[%d] with status %d during level=%d\n",
+		LOG("reaped %s[%d] with status %d during level=%d",
 		    services[i].name, pid, status, level);
 
 		return i;
@@ -352,7 +355,7 @@ main()
 
 		services[i].level = 10 * (ent->d_name[0] - '0') +
 		    (ent->d_name[1] - '0');
-		(void)snprintf(services[i].name, sizeof services[i].name,
+		snprintf(services[i].name, sizeof services[i].name,
 		    "%s", ent->d_name);
 		// follow symlinks
 		services[i].state = access(ent->d_name, X_OK) == 0 ? UP : DOWN;
@@ -364,7 +367,7 @@ main()
 
 	closedir(dir);
 
-	dprintf(selflogfd[1], "booting\n");
+	LOG("booting");
 
 	for (level = 0; level < 100; level++) {
 		/* spawn all of level */
@@ -425,7 +428,7 @@ main()
 	sigaction(SIGPWR, &(struct sigaction){.sa_handler=on_sigint}, 0);
 	sigaction(SIGUSR1, &(struct sigaction){.sa_handler=on_sigusr1}, 0);
 
-	dprintf(selflogfd[1], "system up\n");
+	LOG("system up");
 
 	while (1) {
 		if (got_intr)
@@ -465,15 +468,15 @@ main()
 
 		if (services[i].name[2] == 'D' ||
 		    services[i].name[2] == 'L') {
-			dprintf(selflogfd[1], "%s terminated with status %d\n", services[i].name, services[i].status);
+			LOG("%s terminated with status %d", services[i].name, services[i].status);
 			if (services[i].state == UP) {
-				dprintf(selflogfd[1], "restarting %s\n", services[i].name);
+				LOG("restarting %s", services[i].name);
 				restart(i);
 			}
 		}
 	}
 
-	dprintf(selflogfd[1], "shutting down\n");
+	LOG("shutting down");
 
 //	sigaction(SIGINT, &(struct sigaction){.sa_handler=SIG_DFL}, 0);
 
@@ -483,32 +486,6 @@ main()
 	sigemptyset(&childset);
 	sigaddset(&childset, SIGCHLD);
 
-
-	for (level = 99; level >= 0; level--) {
-		/* kill all of level */
-		int oneshot = 0;
-		int daemons = 0;
-
-		for (i = 0; i < MAX_SV; i++) {
-			if (services[i].level != level)
-				continue;
-
-			if (services[i].name[2] == 'K' &&
-			    services[i].state == UP) {
-				dprintf(2, "todo: shutdown oneshot %s\n", services[i].name);
-				oneshot++;
-			}
-			if (services[i].name[2] == 'D' &&
-			    services[i].pid > 0) {
-				dprintf(2, "todo: sending sigterm to %s\n", services[i].name);
-				daemons++;
-			}
-		}
-
-		dprintf(2, "level=%d oneshot=%d daemons=%d\n",
-		    level, oneshot, daemons);
-	}
-
 	for (level = 99; level >= 0; level--) {
 		/* kill all of level */
 		int oneshot = 0;
@@ -520,23 +497,19 @@ main()
 
 			if (services[i].name[2] == 'K' &&
 			    services[i].state == UP) {
-				dprintf(selflogfd[1], "starting shutdown oneshot %s\n", services[i].name);
+				LOG("starting shutdown oneshot %s", services[i].name);
 				restart(i);
 				oneshot++;
 			}
 			if (services[i].name[2] == 'D' &&
 			    services[i].pid > 0) {
-				dprintf(selflogfd[1], "sending sigterm to %s\n", services[i].name);
+				LOG("sending sigterm to %s", services[i].name);
 				kill(services[i].pid, SIGTERM);
 				kill(services[i].pid, SIGCONT);
 				daemons++;
 			}
 		}
 
-		dprintf(2, "level=%d oneshot=%d daemons=%d\n",
-		    level, oneshot, daemons);
-		usleep(100000);
-
 		// XXX figure out logger shutdown
 
 		while (oneshot) {
@@ -554,10 +527,10 @@ main()
 				continue;
 
 			if (services[i].name[2] == 'K') {
-				dprintf(selflogfd[1], "oneshot %s exited with status %d\n", services[i].name, services[i].status);
+				LOG("oneshot %s exited with status %d", services[i].name, services[i].status);
 				oneshot--;
 			} else if (services[i].name[2] == 'D') {
-				dprintf(selflogfd[1], "daemon %s exited with status %d\n", services[i].name, services[i].status);
+				LOG("daemon %s exited with status %d", services[i].name, services[i].status);
 //				if (services[i].logged)
 //					close(services[i].logfd[1]);
 				daemons--;
@@ -605,10 +578,10 @@ main()
 
 			if (services[i].name[2] == 'K') {
 				// can't happen
-				dprintf(selflogfd[1], "oneshot %s exited with status %d\n", services[i].name, services[i].status);
+				LOG("oneshot %s exited with status %d", services[i].name, services[i].status);
 				oneshot--;
 			} else if (services[i].name[2] == 'D') {
-				dprintf(selflogfd[1], "daemon %s exited with status %d\n", services[i].name, services[i].status);
+				LOG("daemon %s exited with status %d", services[i].name, services[i].status);
 //				if (services[i].logged)
 //					close(services[i].logfd[1]);
 				daemons--;