- if(i->type == CH_SOCKET) {
- if(i->fd < 0)
- i->fd = stdmkchild(i->argv, chinit, idata);
- if(sendreq(i->fd, req, fd)) {
- if((errno == EPIPE) || (errno == ECONNRESET)) {
+ void stdinit(void *data)
+ {
+ int i;
+
+ for(i = 0; sd->envp[i]; i += 2)
+ putenv(sprintf2("%s=%s", sd->envp[i], sd->envp[i + 1]));
+ if(chinit != NULL)
+ chinit(data);
+ }
+
+ if(sd->type == CH_SOCKET) {
+ if(sd->fd < 0)
+ sd->fd = stdmkchild(sd->argv, stdinit, idata);
+ if(sendreq2(sd->fd, req, fd, MSG_NOSIGNAL | MSG_DONTWAIT)) {
+ serr = errno;
+ if((serr == EPIPE) || (serr == ECONNRESET)) {