X-Git-Url: http://www.dolda2000.com/gitweb/?p=ashd.git;a=blobdiff_plain;f=lib%2Fproc.c;fp=lib%2Fproc.c;h=ac777d4bfe8299769643236cbed649fde1440f65;hp=2c05608eb098eb313dcc085630d2cdd1d7a675dd;hb=bcad6b0c48d516ddc920b52f06083ceaa242e1ca;hpb=589987f8218c9aa61d65f582a3b3e1bbd32bda81 diff --git a/lib/proc.c b/lib/proc.c index 2c05608..ac777d4 100644 --- a/lib/proc.c +++ b/lib/proc.c @@ -56,7 +56,7 @@ int stdmkchild(char **argv, void (*chinit)(void *), void *idata) return(fd[1]); } -int sendfd(int sock, int fd, char *data, size_t datalen) +int sendfd2(int sock, int fd, char *data, size_t datalen, int flags) { struct msghdr msg; struct cmsghdr *cmsg; @@ -78,7 +78,12 @@ int sendfd(int sock, int fd, char *data, size_t datalen) *((int *)CMSG_DATA(cmsg)) = fd; msg.msg_controllen = cmsg->cmsg_len; - return(sendmsg(sock, &msg, MSG_NOSIGNAL | MSG_DONTWAIT)); + return(sendmsg(sock, &msg, flags)); +} + +int sendfd(int sock, int fd, char *data, size_t datalen) +{ + return(sendfd2(sock, fd, data, datalen, MSG_NOSIGNAL)); } int recvfd(int sock, char **data, size_t *datalen)