diff options
| author | Laurent Bercot <ska-skaware@skarnet.org> | 2025-11-07 19:06:54 +0000 |
|---|---|---|
| committer | Laurent Bercot <ska-skaware@skarnet.org> | 2025-11-07 19:06:54 +0000 |
| commit | 43253d337ef7a0b74e482e8bf847cb7c12744da0 (patch) | |
| tree | b2e2e7289d7d99cc9ed87b9fdcf8cace4f7e7b05 /src/libs6 | |
| parent | 1667855c0c05f26b378ed8a011336770485321e5 (diff) | |
| download | s6-43253d337ef7a0b74e482e8bf847cb7c12744da0.tar.gz | |
POSIX guarantees that pid == pgid for session leaders!
Diffstat (limited to 'src/libs6')
| -rw-r--r-- | src/libs6/s6_svstatus_pack.c | 5 | ||||
| -rw-r--r-- | src/libs6/s6_svstatus_unpack.c | 14 |
2 files changed, 9 insertions, 10 deletions
diff --git a/src/libs6/s6_svstatus_pack.c b/src/libs6/s6_svstatus_pack.c index 5e1c7d8..a769c08 100644 --- a/src/libs6/s6_svstatus_pack.c +++ b/src/libs6/s6_svstatus_pack.c @@ -11,9 +11,8 @@ void s6_svstatus_pack (char *pack, s6_svstatus_t const *sv) tain_pack(pack, &sv->stamp) ; tain_pack(pack + 12, &sv->readystamp) ; uint64_pack_big(pack + 24, (uint64_t)sv->pid) ; - uint64_pack_big(pack + 32, (uint64_t)sv->pgid) ; - uint16_pack_big(pack + 40, (uint16_t)sv->wstat) ; - pack[42] = + uint16_pack_big(pack + 32, (uint16_t)sv->wstat) ; + pack[34] = sv->flagpaused | (sv->flagfinishing << 1) | (sv->flagwantup << 2) | diff --git a/src/libs6/s6_svstatus_unpack.c b/src/libs6/s6_svstatus_unpack.c index b9b5d78..59ab4cd 100644 --- a/src/libs6/s6_svstatus_unpack.c +++ b/src/libs6/s6_svstatus_unpack.c @@ -1,9 +1,11 @@ /* ISC license. */ #include <stdint.h> + #include <skalibs/uint16.h> #include <skalibs/uint64.h> #include <skalibs/tai.h> + #include <s6/supervise.h> void s6_svstatus_unpack (char const *pack, s6_svstatus_t *sv) @@ -14,12 +16,10 @@ void s6_svstatus_unpack (char const *pack, s6_svstatus_t *sv) tain_unpack(pack + 12, &sv->readystamp) ; uint64_unpack_big(pack + 24, &pid) ; sv->pid = pid ; - uint64_unpack_big(pack + 32, &pid) ; - sv->pgid = pid ; - uint16_unpack_big(pack + 40, &wstat) ; + uint16_unpack_big(pack + 32, &wstat) ; sv->wstat = wstat ; - sv->flagpaused = pack[42] & 1 ; - sv->flagfinishing = !!(pack[42] & 2) ; - sv->flagwantup = !!(pack[42] & 4) ; - sv->flagready = !!(pack[42] & 8) ; + sv->flagpaused = pack[34] & 1 ; + sv->flagfinishing = !!(pack[34] & 2) ; + sv->flagwantup = !!(pack[34] & 4) ; + sv->flagready = !!(pack[34] & 8) ; } |
