From 6a854d3add7da9985560c371bfe02f63c1a552a1 Mon Sep 17 00:00:00 2001 From: Davin McCall Date: Tue, 1 Oct 2024 19:29:33 +1000 Subject: [PATCH] dinitctl: wait for service state via v5 or original service event Respond to both SERVICEEVENT5 (protocol v5) or original SERVICEEVENT when waiting for a service to reach a started/stopped state. The v5 info packet should arrive first (assuming new dinit daemon) and has more information, so will display better status info. --- src/dinitctl.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dinitctl.cc b/src/dinitctl.cc index 36589da6..56086141 100644 --- a/src/dinitctl.cc +++ b/src/dinitctl.cc @@ -917,7 +917,7 @@ static int wait_service_state(int socknum, cpbuffer_t &rbuffer, handle_t handle, unsigned pktlen = (unsigned char) rbuffer[1]; fill_buffer_to(rbuffer, socknum, pktlen); - if (rbuffer[0] == (char)cp_info::SERVICEEVENT) { + if (value((cp_info)rbuffer[0]).is_in(cp_info::SERVICEEVENT, cp_info::SERVICEEVENT5)) { int ret = process_service_event(rbuffer, pktlen, handle, service_name, do_stop, verbose); if (ret >= 0) { return ret;