dinitctl: update restart handling.
authorDavin McCall <davmac@davmac.org>
Wed, 7 Aug 2019 11:39:21 +0000 (21:39 +1000)
committerDavin McCall <davmac@davmac.org>
Wed, 7 Aug 2019 11:51:40 +0000 (21:51 +1000)
As per changes in dinit daemon/control protocol.

src/dinitctl.cc
src/igr-tests/force-stop/expected-2.err

index f260bf0a9d0aa5d1a4f4708357b010e7845b8f31..e2c867fe2ca3d001fdd56e4809e7258e0f8e3a6b 100644 (file)
@@ -552,8 +552,10 @@ static int start_stop_service(int socknum, cpbuffer_t &rbuffer, const char *serv
             return 0; // success!
         }
         if (reply_pkt_h == DINIT_RP_DEPENDENTS && pcommand == DINIT_CP_STOPSERVICE) {
-            cerr << "dinitctl: Cannot stop service due to the following dependents:\n"
-                    "(Only direct dependents are listed. Exercise caution before using '--force' !!)\n";
+            cerr << "dinitctl: cannot stop service due to the following dependents:\n";
+            if (command != command_t::RESTART_SERVICE) {
+                cerr << "(Only direct dependents are listed. Exercise caution before using '--force' !!)\n";
+            }
             // size_t number, N * handle_t handles
             size_t number;
             rbuffer.fill_to(socknum, sizeof(number));
@@ -576,6 +578,10 @@ static int start_stop_service(int socknum, cpbuffer_t &rbuffer, const char *serv
             cerr << "\n";
             return 1;
         }
+        if (reply_pkt_h == DINIT_RP_NAK && command == command_t::RESTART_SERVICE) {
+            cerr << "dinitctl: cannot restart service; service not started.\n";
+            return 1;
+        }
         if (reply_pkt_h != DINIT_RP_ACK && reply_pkt_h != DINIT_RP_ALREADYSS) {
             cerr << "dinitctl: protocol error." << endl;
             return 1;
index 561b7d228716ba778c72acfd25538d9db63ce85a..b643b27d4cfa463c40153edde32cafe2025ea3f0 100644 (file)
@@ -1,3 +1,3 @@
-dinitctl: Cannot stop service due to the following dependents:
+dinitctl: cannot stop service due to the following dependents:
 (Only direct dependents are listed. Exercise caution before using '--force' !!)
   intermediary boot