X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=daemon%2Fnet.c;h=0fc9e45f02b53349ee6ccc43299f32999af92ebb;hb=0f6981ce0fd93e10fae113f8ffac1f557d7106d1;hp=d90146d97e5ce1f58e9108063909d3e6a1e9b925;hpb=9e5f2b29cf819c9f79113bf3ae7edcb484d8ee14;p=doldaconnect.git diff --git a/daemon/net.c b/daemon/net.c index d90146d..0fc9e45 100644 --- a/daemon/net.c +++ b/daemon/net.c @@ -360,7 +360,6 @@ static void recvcmsg(struct socket *sk, struct msghdr *msg) { cred = (struct ucred *)CMSG_DATA(cmsg); memcpy(&sk->ucred, cred, sizeof(*cred)); - flog(LOG_INFO, "received Unix creds: pid %i, uid %i, gid %i", cred->pid, cred->uid, cred->gid); } } } @@ -398,12 +397,16 @@ static void sockrecv(struct socket *sk) if(inq > 65536) inq = 65536; sizebuf(&sk->inbuf.s.buf, &sk->inbuf.s.bufsize, sk->inbuf.s.datasize + inq, 1, 1); - /* - ret = read(sk->fd, sk->inbuf.s.buf + sk->inbuf.s.datasize, inq); - */ - bufvec.iov_base = sk->inbuf.s.buf + sk->inbuf.s.datasize; - bufvec.iov_len = inq; - ret = recvmsg(sk->fd, &msg, 0); + if(sk->isrealsocket) + { + bufvec.iov_base = sk->inbuf.s.buf + sk->inbuf.s.datasize; + bufvec.iov_len = inq; + ret = recvmsg(sk->fd, &msg, 0); + } else { + ret = read(sk->fd, sk->inbuf.s.buf + sk->inbuf.s.datasize, inq); + msg.msg_controllen = 0; + msg.msg_flags = 0; + } if(ret < 0) { if((errno == EINTR) || (errno == EAGAIN))