/* ISC license. */ #include #include #include #include #include int s6rc_servicedir_unblock (char const *dir, int h) { if (h) { size_t dirlen = strlen(dir) ; char fn[dirlen + 6] ; memcpy(fn, dir, dirlen) ; memcpy(fn + dirlen, "/down", 6) ; if (unlink(fn) < 0 && errno != ENOENT) return -1 ; if (s6_svc_writectl(dir, S6_SUPERVISE_CTLDIR, "u", 1) < 0) return -1 ; } return 0 ; }