summaryrefslogtreecommitdiff
path: root/src/libs6/s6_svc_writectl.c
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2015-07-20 20:20:54 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2015-07-20 20:20:54 +0000
commita3cdeecf0033919e3b5a79c17c19b5ac98719256 (patch)
tree92a930930f18a4f8ae897b1a69c39358137ce1e2 /src/libs6/s6_svc_writectl.c
parentbd34de9054cec794d96b0fde1eee9100e1d34215 (diff)
downloads6-a3cdeecf0033919e3b5a79c17c19b5ac98719256.tar.xz
- Add timeout-finish support and "down-readiness"
- LOTS of refactoring to make this work - Remove s6-notifywhenup - s6-supervise now rocks the casbah - rc for 2.2.0.0
Diffstat (limited to 'src/libs6/s6_svc_writectl.c')
-rw-r--r--src/libs6/s6_svc_writectl.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/libs6/s6_svc_writectl.c b/src/libs6/s6_svc_writectl.c
new file mode 100644
index 0000000..2e308b9
--- /dev/null
+++ b/src/libs6/s6_svc_writectl.c
@@ -0,0 +1,16 @@
+/* ISC license. */
+
+#include <skalibs/bytestr.h>
+#include <s6/s6-supervise.h>
+
+int s6_svc_writectl (char const *service, char const *subdir, char const *s, unsigned int len)
+{
+ unsigned int svlen = str_len(service) ;
+ unsigned int sublen = str_len(subdir) ;
+ char fn[svlen + sublen + 10] ;
+ byte_copy(fn, svlen, service) ;
+ fn[svlen] = '/' ;
+ byte_copy(fn + svlen + 1, sublen, subdir) ;
+ byte_copy(fn + svlen + 1 + sublen, 9, "/control") ;
+ return s6_svc_write(fn, s, len) ;
+}