if (errno == EACCES) {
/* We don't care for the peer, just send and close. */
struct lxc_cmd_rsp rsp = {
- .ret = ret,
+ .ret = -EPERM,
};
lxc_cmd_rsp_send(fd, &rsp);
if (ret != sizeof(req)) {
WARN("Failed to receive full command request. Ignoring request for \"%s\"", lxc_cmd_str(req.cmd));
- ret = -1;
goto out_close;
}
if ((req.datalen > LXC_CMD_DATA_MAX) && (req.cmd != LXC_CMD_CONSOLE_LOG)) {
ERROR("Received command data length %d is too large for command \"%s\"", req.datalen, lxc_cmd_str(req.cmd));
- errno = EFBIG;
- ret = -EFBIG;
goto out_close;
}
ret = lxc_recv_nointr(fd, reqdata, req.datalen, 0);
if (ret != req.datalen) {
WARN("Failed to receive full command request. Ignoring request for \"%s\"", lxc_cmd_str(req.cmd));
- ret = LXC_MAINLOOP_ERROR;
goto out_close;
}
ret = lxc_cmd_process(fd, &req, handler, descr);
if (ret) {
/* This is not an error, but only a request to close fd. */
- ret = LXC_MAINLOOP_CONTINUE;
goto out_close;
}
out:
- return ret;
+ return LXC_MAINLOOP_CONTINUE;
out_close:
lxc_cmd_fd_cleanup(fd, handler, descr, req.cmd);
return log_error(LXC_MAINLOOP_ERROR, "Failed to read signal info from signal file descriptor %d", fd);
if (ret != sizeof(siginfo))
- return log_error(-EINVAL, "Unexpected size for struct signalfd_siginfo");
+ return log_error(LXC_MAINLOOP_ERROR, "Unexpected size for struct signalfd_siginfo");
/* Check whether init is running. */
info.si_pid = 0;