Signed-off-by: Felix Fietkau <nbd@nbd.name>
pfd = (int *)CMSG_DATA(cmsg);
msg.msg_controllen = cmsg->cmsg_len;
pfd = (int *)CMSG_DATA(cmsg);
msg.msg_controllen = cmsg->cmsg_len;
if (fd->eof) {
client_free(cl);
return;
}
if (fd->eof) {
client_free(cl);
return;
}
iov.iov_base = &cl->rx_buf;
iov.iov_len = min_sz;
if (!cl->rx_ofs) {
iov.iov_base = &cl->rx_buf;
iov.iov_len = min_sz;
if (!cl->rx_ofs) {
len = recvmsg(fd->fd, &msg, 0);
if (len < 0)
return;
len = recvmsg(fd->fd, &msg, 0);
if (len < 0)
return;
+ if (!len)
+ fd->eof = true;
cl->rx_ofs = len;
cl->rx_fd = *pfd;
cl->rx_ofs = len;
cl->rx_fd = *pfd;