aboutsummaryrefslogtreecommitdiff
path: root/runit
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2009-07-15 00:21:49 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2009-07-15 00:21:49 +0200
commite46601d8a300796b1a84a417e58ca763ec2282b7 (patch)
treea6018de08e14876757836ef8950be21973785285 /runit
parent8e96b5b5314c3f2c3fdb6fd04abfa3e73ac27a5a (diff)
downloadbusybox-w32-e46601d8a300796b1a84a417e58ca763ec2282b7.tar.gz
busybox-w32-e46601d8a300796b1a84a417e58ca763ec2282b7.tar.bz2
busybox-w32-e46601d8a300796b1a84a417e58ca763ec2282b7.zip
runsv: rename field in a struct to not collide with other name
no code changes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'runit')
-rw-r--r--runit/runit_lib.h2
-rw-r--r--runit/runsv.c37
2 files changed, 20 insertions, 19 deletions
diff --git a/runit/runit_lib.h b/runit/runit_lib.h
index fd94db9d7..28769e5fa 100644
--- a/runit/runit_lib.h
+++ b/runit/runit_lib.h
@@ -90,7 +90,7 @@ typedef struct svstatus_t {
90 uint32_t time_nsec_be32 PACKED; 90 uint32_t time_nsec_be32 PACKED;
91 uint32_t pid_le32 PACKED; 91 uint32_t pid_le32 PACKED;
92 uint8_t paused; 92 uint8_t paused;
93 uint8_t want; 93 uint8_t want; /* 'u' or 'd' */
94 uint8_t got_term; 94 uint8_t got_term;
95 uint8_t run_or_finish; 95 uint8_t run_or_finish;
96} svstatus_t; 96} svstatus_t;
diff --git a/runit/runsv.c b/runit/runsv.c
index 5cb5d2f13..e93e25a4d 100644
--- a/runit/runsv.c
+++ b/runit/runsv.c
@@ -78,7 +78,7 @@ struct svdir {
78 int pid; 78 int pid;
79 smallint state; 79 smallint state;
80 smallint ctrl; 80 smallint ctrl;
81 smallint want; 81 smallint sd_want;
82 smallint islog; 82 smallint islog;
83 struct timespec start; 83 struct timespec start;
84 int fdlock; 84 int fdlock;
@@ -201,7 +201,7 @@ static void update_status(struct svdir *s)
201 if (s->ctrl & C_PAUSE) p = add_str(p, ", paused"); 201 if (s->ctrl & C_PAUSE) p = add_str(p, ", paused");
202 if (s->ctrl & C_TERM) p = add_str(p, ", got TERM"); 202 if (s->ctrl & C_TERM) p = add_str(p, ", got TERM");
203 if (s->state != S_DOWN) 203 if (s->state != S_DOWN)
204 switch (s->want) { 204 switch (s->sd_want) {
205 case W_DOWN: 205 case W_DOWN:
206 p = add_str(p, ", want down"); 206 p = add_str(p, ", want down");
207 break; 207 break;
@@ -224,7 +224,7 @@ static void update_status(struct svdir *s)
224 status.pid_le32 = SWAP_LE32(s->pid); 224 status.pid_le32 = SWAP_LE32(s->pid);
225 if (s->ctrl & C_PAUSE) 225 if (s->ctrl & C_PAUSE)
226 status.paused = 1; 226 status.paused = 1;
227 if (s->want == W_UP) 227 if (s->sd_want == W_UP)
228 status.want = 'u'; 228 status.want = 'u';
229 else 229 else
230 status.want = 'd'; 230 status.want = 'd';
@@ -291,12 +291,12 @@ static void stopservice(struct svdir *s)
291 s->ctrl |= C_TERM; 291 s->ctrl |= C_TERM;
292 update_status(s); 292 update_status(s);
293 } 293 }
294 if (s->want == W_DOWN) { 294 if (s->sd_want == W_DOWN) {
295 kill(s->pid, SIGCONT); 295 kill(s->pid, SIGCONT);
296 custom(s, 'd'); 296 custom(s, 'd');
297 return; 297 return;
298 } 298 }
299 if (s->want == W_EXIT) { 299 if (s->sd_want == W_EXIT) {
300 kill(s->pid, SIGCONT); 300 kill(s->pid, SIGCONT);
301 custom(s, 'x'); 301 custom(s, 'x');
302 } 302 }
@@ -360,13 +360,13 @@ static int ctrl(struct svdir *s, char c)
360 360
361 switch (c) { 361 switch (c) {
362 case 'd': /* down */ 362 case 'd': /* down */
363 s->want = W_DOWN; 363 s->sd_want = W_DOWN;
364 update_status(s); 364 update_status(s);
365 if (s->pid && s->state != S_FINISH) 365 if (s->pid && s->state != S_FINISH)
366 stopservice(s); 366 stopservice(s);
367 break; 367 break;
368 case 'u': /* up */ 368 case 'u': /* up */
369 s->want = W_UP; 369 s->sd_want = W_UP;
370 update_status(s); 370 update_status(s);
371 if (s->pid == 0) 371 if (s->pid == 0)
372 startservice(s); 372 startservice(s);
@@ -374,7 +374,7 @@ static int ctrl(struct svdir *s, char c)
374 case 'x': /* exit */ 374 case 'x': /* exit */
375 if (s->islog) 375 if (s->islog)
376 break; 376 break;
377 s->want = W_EXIT; 377 s->sd_want = W_EXIT;
378 update_status(s); 378 update_status(s);
379 /* FALLTHROUGH */ 379 /* FALLTHROUGH */
380 case 't': /* sig term */ 380 case 't': /* sig term */
@@ -399,7 +399,7 @@ static int ctrl(struct svdir *s, char c)
399 update_status(s); 399 update_status(s);
400 break; 400 break;
401 case 'o': /* once */ 401 case 'o': /* once */
402 s->want = W_DOWN; 402 s->sd_want = W_DOWN;
403 update_status(s); 403 update_status(s);
404 if (!s->pid) 404 if (!s->pid)
405 startservice(s); 405 startservice(s);
@@ -459,11 +459,12 @@ int runsv_main(int argc UNUSED_PARAM, char **argv)
459 /* bss: svd[0].pid = 0; */ 459 /* bss: svd[0].pid = 0; */
460 if (S_DOWN) svd[0].state = S_DOWN; /* otherwise already 0 (bss) */ 460 if (S_DOWN) svd[0].state = S_DOWN; /* otherwise already 0 (bss) */
461 if (C_NOOP) svd[0].ctrl = C_NOOP; 461 if (C_NOOP) svd[0].ctrl = C_NOOP;
462 if (W_UP) svd[0].want = W_UP; 462 if (W_UP) svd[0].sd_want = W_UP;
463 /* bss: svd[0].islog = 0; */ 463 /* bss: svd[0].islog = 0; */
464 /* bss: svd[1].pid = 0; */ 464 /* bss: svd[1].pid = 0; */
465 gettimeofday_ns(&svd[0].start); 465 gettimeofday_ns(&svd[0].start);
466 if (stat("down", &s) != -1) svd[0].want = W_DOWN; 466 if (stat("down", &s) != -1)
467 svd[0].sd_want = W_DOWN;
467 468
468 if (stat("log", &s) == -1) { 469 if (stat("log", &s) == -1) {
469 if (errno != ENOENT) 470 if (errno != ENOENT)
@@ -476,11 +477,11 @@ int runsv_main(int argc UNUSED_PARAM, char **argv)
476 haslog = 1; 477 haslog = 1;
477 svd[1].state = S_DOWN; 478 svd[1].state = S_DOWN;
478 svd[1].ctrl = C_NOOP; 479 svd[1].ctrl = C_NOOP;
479 svd[1].want = W_UP; 480 svd[1].sd_want = W_UP;
480 svd[1].islog = 1; 481 svd[1].islog = 1;
481 gettimeofday_ns(&svd[1].start); 482 gettimeofday_ns(&svd[1].start);
482 if (stat("log/down", &s) != -1) 483 if (stat("log/down", &s) != -1)
483 svd[1].want = W_DOWN; 484 svd[1].sd_want = W_DOWN;
484 xpiped_pair(logpipe); 485 xpiped_pair(logpipe);
485 close_on_exec_on(logpipe.rd); 486 close_on_exec_on(logpipe.rd);
486 close_on_exec_on(logpipe.wr); 487 close_on_exec_on(logpipe.wr);
@@ -558,10 +559,10 @@ int runsv_main(int argc UNUSED_PARAM, char **argv)
558 char ch; 559 char ch;
559 560
560 if (haslog) 561 if (haslog)
561 if (!svd[1].pid && svd[1].want == W_UP) 562 if (!svd[1].pid && svd[1].sd_want == W_UP)
562 startservice(&svd[1]); 563 startservice(&svd[1]);
563 if (!svd[0].pid) 564 if (!svd[0].pid)
564 if (svd[0].want == W_UP || svd[0].state == S_FINISH) 565 if (svd[0].sd_want == W_UP || svd[0].state == S_FINISH)
565 startservice(&svd[0]); 566 startservice(&svd[0]);
566 567
567 x[0].fd = selfpipe.rd; 568 x[0].fd = selfpipe.rd;
@@ -634,11 +635,11 @@ int runsv_main(int argc UNUSED_PARAM, char **argv)
634 sigterm = 0; 635 sigterm = 0;
635 } 636 }
636 637
637 if (svd[0].want == W_EXIT && svd[0].state == S_DOWN) { 638 if (svd[0].sd_want == W_EXIT && svd[0].state == S_DOWN) {
638 if (svd[1].pid == 0) 639 if (svd[1].pid == 0)
639 _exit(EXIT_SUCCESS); 640 _exit(EXIT_SUCCESS);
640 if (svd[1].want != W_EXIT) { 641 if (svd[1].sd_want != W_EXIT) {
641 svd[1].want = W_EXIT; 642 svd[1].sd_want = W_EXIT;
642 /* stopservice(&svd[1]); */ 643 /* stopservice(&svd[1]); */
643 update_status(&svd[1]); 644 update_status(&svd[1]);
644 close(logpipe.wr); 645 close(logpipe.wr);