version 1.41, 2010/09/26 20:43:30 |
version 1.42, 2010/10/16 08:31:55 |
|
|
fatal("fcntl failed"); |
fatal("fcntl failed"); |
if (fcntl(fd, F_SETFL, mode|O_NONBLOCK) == -1) |
if (fcntl(fd, F_SETFL, mode|O_NONBLOCK) == -1) |
fatal("fcntl failed"); |
fatal("fcntl failed"); |
if (fcntl(fd, F_SETFD, FD_CLOEXEC) == -1) |
|
fatal("fcntl failed"); |
|
|
|
c = xcalloc(1, sizeof *c); |
c = xcalloc(1, sizeof *c); |
c->references = 0; |
c->references = 0; |
|
|
|
|
if ((mode = fcntl(c->stdin_fd, F_GETFL)) != -1) |
if ((mode = fcntl(c->stdin_fd, F_GETFL)) != -1) |
fcntl(c->stdin_fd, F_SETFL, mode|O_NONBLOCK); |
fcntl(c->stdin_fd, F_SETFL, mode|O_NONBLOCK); |
if (fcntl(c->stdin_fd, F_SETFD, FD_CLOEXEC) == -1) |
|
fatal("fcntl failed"); |
|
|
|
server_client_msg_identify(c, &identifydata, imsg.fd); |
server_client_msg_identify(c, &identifydata, imsg.fd); |
break; |
break; |
|
|
|
|
if ((mode = fcntl(c->stdout_fd, F_GETFL)) != -1) |
if ((mode = fcntl(c->stdout_fd, F_GETFL)) != -1) |
fcntl(c->stdout_fd, F_SETFL, mode|O_NONBLOCK); |
fcntl(c->stdout_fd, F_SETFL, mode|O_NONBLOCK); |
if (fcntl(c->stdout_fd, F_SETFD, FD_CLOEXEC) == -1) |
|
fatal("fcntl failed"); |
|
break; |
break; |
case MSG_STDERR: |
case MSG_STDERR: |
if (datalen != 0) |
if (datalen != 0) |
|
|
|
|
if ((mode = fcntl(c->stderr_fd, F_GETFL)) != -1) |
if ((mode = fcntl(c->stderr_fd, F_GETFL)) != -1) |
fcntl(c->stderr_fd, F_SETFL, mode|O_NONBLOCK); |
fcntl(c->stderr_fd, F_SETFL, mode|O_NONBLOCK); |
if (fcntl(c->stderr_fd, F_SETFD, FD_CLOEXEC) == -1) |
|
fatal("fcntl failed"); |
|
break; |
break; |
case MSG_RESIZE: |
case MSG_RESIZE: |
if (datalen != 0) |
if (datalen != 0) |