1 |
cardoe 08/12/29 22:57:51 |
2 |
|
3 |
Added: 0004-s-s-d-retry.patch |
4 |
Log: |
5 |
fix s-s-d signals on retry. bug #252621. remove old versions |
6 |
(Portage version: 2.1.6.4/cvs/Linux 2.6.28-gentoo x86_64) |
7 |
|
8 |
Revision Changes Path |
9 |
1.1 sys-apps/openrc/files/0.4.0/0004-s-s-d-retry.patch |
10 |
|
11 |
file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-apps/openrc/files/0.4.0/0004-s-s-d-retry.patch?rev=1.1&view=markup |
12 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-apps/openrc/files/0.4.0/0004-s-s-d-retry.patch?rev=1.1&content-type=text/plain |
13 |
|
14 |
Index: 0004-s-s-d-retry.patch |
15 |
=================================================================== |
16 |
Index: /trunk/src/rc/start-stop-daemon.c |
17 |
=================================================================== |
18 |
--- /trunk/src/rc/start-stop-daemon.c (revision 1453) |
19 |
+++ /trunk/src/rc/start-stop-daemon.c (revision 1460) |
20 |
@@ -627,4 +627,5 @@ |
21 |
char *name = NULL; |
22 |
char *pidfile = NULL; |
23 |
+ char *retry = NULL; |
24 |
int sig = 0; |
25 |
int nicelevel = 0; |
26 |
@@ -695,5 +696,5 @@ |
27 |
|
28 |
case 'R': /* --retry <schedule>|<timeout> */ |
29 |
- parse_schedule(optarg, sig); |
30 |
+ retry = optarg; |
31 |
break; |
32 |
|
33 |
@@ -854,5 +855,7 @@ |
34 |
*--argv = exec; |
35 |
|
36 |
- if (stop || sig) { |
37 |
+ if (stop || sig != 0) { |
38 |
+ if (sig == 0) |
39 |
+ sig = SIGTERM; |
40 |
if (!*argv && !pidfile && !name && !uid) |
41 |
eerrorx("%s: --stop needs --exec, --pidfile," |
42 |
@@ -877,4 +880,5 @@ |
43 |
" with --background", applet); |
44 |
} |
45 |
+ |
46 |
/* Expand ~ */ |
47 |
if (ch_dir && *ch_dir == '~') |
48 |
@@ -956,14 +960,14 @@ |
49 |
|
50 |
if (stop || sig) { |
51 |
- if (!sig) |
52 |
+ if (sig == 0) |
53 |
sig = SIGTERM; |
54 |
if (!stop) |
55 |
oknodo = true; |
56 |
- if (!TAILQ_FIRST(&schedule)) { |
57 |
- if (test || oknodo) |
58 |
- parse_schedule("0", sig); |
59 |
- else |
60 |
- parse_schedule(NULL, sig); |
61 |
- } |
62 |
+ if (retry) |
63 |
+ parse_schedule(retry, sig); |
64 |
+ else if (test || oknodo) |
65 |
+ parse_schedule("0", sig); |
66 |
+ else |
67 |
+ parse_schedule(NULL, sig); |
68 |
i = run_stop_schedule(exec, (const char *const *)margv, |
69 |
pidfile, uid, quiet, verbose, test); |