Ver código fonte

s-s-d: Refactor do_stop_summary() out from do_stop()

Guillem Jover 15 anos atrás
pai
commit
8dba2f8064
1 arquivos alterados com 23 adições e 13 exclusões
  1. 23 13
      utils/start-stop-daemon.c

+ 23 - 13
utils/start-stop-daemon.c

@@ -1264,7 +1264,7 @@ do_findprocs(void)
 }
 
 static void
-do_stop(int sig_num, int quiet, int *n_killed, int *n_notkilled, int retry_nr)
+do_stop(int sig_num, int quiet, int *n_killed, int *n_notkilled)
 {
 	struct pid_list *p;
 
@@ -1294,15 +1294,23 @@ do_stop(int sig_num, int quiet, int *n_killed, int *n_notkilled, int retry_nr)
 			(*n_notkilled)++;
 		}
 	}
-	if (quietmode < 0 && killed) {
-		printf("Stopped %s (pid", what_stop);
-		for (p = killed; p; p = p->next)
-			printf(" %d", p->pid);
-		putchar(')');
-		if (retry_nr > 0)
-			printf(", retry #%d", retry_nr);
-		printf(".\n");
-	}
+}
+
+static void
+do_stop_summary(int retry_nr)
+{
+	struct pid_list *p;
+
+	if (quietmode >= 0 || !killed)
+		return;
+
+	printf("Stopped %s (pid", what_stop);
+	for (p = killed; p; p = p->next)
+		printf(" %d", p->pid);
+	putchar(')');
+	if (retry_nr > 0)
+		printf(", retry #%d", retry_nr);
+	printf(".\n");
 }
 
 static void
@@ -1346,7 +1354,7 @@ do_stop_timeout(int timeout, int *n_killed, int *n_notkilled)
 		if (timercmp(&before, &stopat, >))
 			return false;
 
-		do_stop(0, 1, n_killed, n_notkilled, 0);
+		do_stop(0, 1, n_killed, n_notkilled);
 		if (!*n_killed)
 			return true;
 
@@ -1419,7 +1427,8 @@ run_stop_schedule(void)
 	retry_nr = 0;
 
 	if (schedule == NULL) {
-		do_stop(signal_nr, quietmode, &n_killed, &n_notkilled, 0);
+		do_stop(signal_nr, quietmode, &n_killed, &n_notkilled);
+		do_stop_summary(0);
 		if (n_notkilled > 0 && quietmode <= 0)
 			printf("%d pids were not killed\n", n_notkilled);
 		if (n_killed)
@@ -1437,7 +1446,8 @@ run_stop_schedule(void)
 			position = value;
 			goto reposition;
 		case sched_signal:
-			do_stop(value, quietmode, &n_killed, &n_notkilled, retry_nr++);
+			do_stop(value, quietmode, &n_killed, &n_notkilled);
+			do_stop_summary(retry_nr++);
 			if (!n_killed)
 				return finish_stop_schedule(anykilled);
 			else