/* ISC license. */ #include #include #include #include #include "skaclient-internal.h" int skaclient_startf ( skaclient_t *a, char *bufss, unsigned int bufsn, char *auxbufss, unsigned int auxbufsn, char *bufas, unsigned int bufan, char *auxbufas, unsigned int auxbufan, kolbak_closure_t *q, unsigned int qlen, char const *prog, char const *const *argv, char const *const *envp, uint32 options, char const *before, unsigned int beforelen, char const *after, unsigned int afterlen, tain_t const *deadline, tain_t *stamp) { skaclient_cbdata_t blah ; unixmessage_t m ; register int r ; if (!skaclient_startf_async(a, bufss, bufsn, auxbufss, auxbufsn, bufas, bufan, auxbufas, auxbufan, q, qlen, prog, argv, envp, options, before, beforelen, after, afterlen, &blah)) return 0 ; if (!skaclient_timed_flush(a, deadline, stamp)) { register int e = errno ; skaclient_end(a) ; errno = e ; return 0 ; } r = unixmessage_timed_receive(&a->syncin, &m, deadline, stamp) ; if (r < 1) { int e = errno ; if (!r) e = EPIPE ; skaclient_end(a) ; errno = e ; return 0 ; } return kolbak_call(&m, &a->kq) ; }