From 2d585e7c7da4b9e6a53cb795f1af5fb43105c94e Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Fri, 7 Jan 2022 00:52:45 +0100 Subject: socket thread: only write data on success --- rvnit.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/rvnit.c b/rvnit.c index fa15889..021ad42 100644 --- a/rvnit.c +++ b/rvnit.c @@ -212,12 +212,11 @@ socket_loop(void* ignored) char buf[63]; - int rd = read(connfd, buf, sizeof buf); + int rd = read(connfd, buf, sizeof buf - 1); if (rd <= 0) { close(connfd); continue; } - write(connfd, "ok\n", 3); char cmd = buf[0]; @@ -248,6 +247,7 @@ socket_loop(void* ignored) pthread_mutex_lock(&services_lock); for (int i = 0; i < MAX_SV; i++) { if (strcmp(services[i].name, buf+1) == 0) { + write(connfd, "ok\n", 3); if (cmd == 'd') { printf("setting %s down\n", services[i].name); @@ -270,16 +270,19 @@ socket_loop(void* ignored) } if (cmd == 'r') { + write(connfd, "ok\n", 3); want_rescandir = 1; want_rescan = 1; pthread_kill(main_thread, SIGCONT); } if (cmd == 'X') { + write(connfd, "ok\n", 3); want_shutdown = 1; pthread_kill(main_thread, SIGCONT); } if (cmd == 'R') { + write(connfd, "ok\n", 3); want_shutdown = 1; want_reboot = 1; pthread_kill(main_thread, SIGCONT); -- cgit 1.4.1