From ea610a311902b56c6466d79332592ab7f3dc501a Mon Sep 17 00:00:00 2001 From: nicm Date: Tue, 26 May 2020 08:41:47 +0000 Subject: Pass the stdout file descriptor from the client as well as stdin and use them for control clients directly instead of passing everything via the client. --- file.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'file.c') diff --git a/file.c b/file.c index 69dbdee4..0d25db03 100644 --- a/file.c +++ b/file.c @@ -242,7 +242,9 @@ file_write(struct client *c, const char *path, int flags, const void *bdata, cf->path = xstrdup("-"); fd = STDOUT_FILENO; - if (c == NULL || c->flags & CLIENT_ATTACHED) { + if (c == NULL || + (c->flags & CLIENT_ATTACHED) || + (c->flags & CLIENT_CONTROL)) { cf->error = EBADF; goto done; } @@ -311,7 +313,9 @@ file_read(struct client *c, const char *path, client_file_cb cb, void *cbdata) cf->path = xstrdup("-"); fd = STDIN_FILENO; - if (c == NULL || c->flags & CLIENT_ATTACHED) { + if (c == NULL || + (c->flags & CLIENT_ATTACHED) || + (c->flags & CLIENT_CONTROL)) { cf->error = EBADF; goto done; } -- cgit