From: Christian Brauner Date: Wed, 24 Feb 2021 14:31:12 +0000 (+0100) Subject: commands: extend rsp_one_fd() to also handle additional data X-Git-Tag: lxc-5.0.0~269^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=124b60ec3e4253341a39b2385aa559453f0cbfa9;p=thirdparty%2Flxc.git commands: extend rsp_one_fd() to also handle additional data Signed-off-by: Christian Brauner --- diff --git a/src/lxc/commands.c b/src/lxc/commands.c index 95d676ed7..15d6221e9 100644 --- a/src/lxc/commands.c +++ b/src/lxc/commands.c @@ -298,12 +298,18 @@ static inline int lxc_cmd_rsp_send_keep(int fd, struct lxc_cmd_rsp *rsp) static inline int rsp_one_fd(int fd, int fd_send, struct lxc_cmd_rsp *rsp) { - int ret; + ssize_t ret; ret = lxc_abstract_unix_send_fds(fd, &fd_send, 1, rsp, sizeof(*rsp)); if (ret < 0) return ret; + if (rsp->data && rsp->datalen > 0) { + ret = lxc_send_nointr(fd, rsp->data, rsp->datalen, MSG_NOSIGNAL); + if (ret < 0 || ret != (ssize_t)rsp->datalen) + return syswarn(-errno, "Failed to send command response %zd", ret); + } + return LXC_CMD_REAP_CLIENT_FD; }