diff options
| author | Laurent Bercot <ska-skaware@skarnet.org> | 2025-07-03 02:10:16 +0000 |
|---|---|---|
| committer | Laurent Bercot <ska@appnovation.com> | 2025-07-03 02:10:16 +0000 |
| commit | ac8594589a19d7e6cfc03a0f2fc9f834a65e5241 (patch) | |
| tree | 12dd1ba7bec8063262e42adf630e7096e670bb65 /src/libs6rc/s6rc_repo_lock.c | |
| parent | 70e16828479e7d715b0fa235b5b0e26402fdc9f7 (diff) | |
| download | s6-rc-ac8594589a19d7e6cfc03a0f2fc9f834a65e5241.tar.gz | |
s6-rc-set-new, refactors, additions, etc.
Signed-off-by: Laurent Bercot <ska@appnovation.com>
Diffstat (limited to 'src/libs6rc/s6rc_repo_lock.c')
| -rw-r--r-- | src/libs6rc/s6rc_repo_lock.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/libs6rc/s6rc_repo_lock.c b/src/libs6rc/s6rc_repo_lock.c new file mode 100644 index 0000000..472ff15 --- /dev/null +++ b/src/libs6rc/s6rc_repo_lock.c @@ -0,0 +1,20 @@ +/* ISC license. */ + +#include <string.h> + +#include <skalibs/djbunix.h> + +#include <s6-rc/repo.h> + +int s6rc_repo_lock (char const *repo, int w) +{ + int fd ; + size_t repolen = strlen(repo) ; + char fn[repolen + 13] ; + memcpy(fn, repo, repolen) ; + memcpy(fn + repolen, "/lock", 6) ; + fd = openc_write(fn) ; + if (fd == -1) return -1 ; + if (fd_lock(fd, w, 0) < 1) return -1 ; + return fd ; +} |
