version 1.47, 2015/11/13 19:37:20 |
version 1.48, 2016/03/21 00:49:36 |
|
|
event_add(&ts->ev, NULL); |
event_add(&ts->ev, NULL); |
if (event & EV_TIMEOUT) |
if (event & EV_TIMEOUT) |
return; |
return; |
if ((sock = accept(fd, (struct sockaddr *)&ss, &sslen)) == -1) { |
if ((sock = accept4(fd, (struct sockaddr *)&ss, &sslen, SOCK_NONBLOCK)) |
|
== -1) { |
/* |
/* |
* Pause accept if we are out of file descriptors, or |
* Pause accept if we are out of file descriptors, or |
* libevent will haunt us here too. |
* libevent will haunt us here too. |
|
|
} |
} |
saddr_ntop((struct sockaddr *)&ss, sslen, |
saddr_ntop((struct sockaddr *)&ss, sslen, |
tmp, sizeof(tmp)); |
tmp, sizeof(tmp)); |
if ((r = fcntl(sock, F_GETFL, 0)) == -1) |
|
err(1, "fcntl(F_GETFL)"); |
|
r |= O_NONBLOCK; |
|
if (fcntl(sock, F_SETFL, r) == -1) |
|
err(1, "fcntl(F_SETFL, O_NONBLOCK)"); |
|
if (ptb->Tflag != -1 && ss.ss_family == AF_INET) { |
if (ptb->Tflag != -1 && ss.ss_family == AF_INET) { |
if (setsockopt(sock, IPPROTO_IP, IP_TOS, |
if (setsockopt(sock, IPPROTO_IP, IP_TOS, |
&ptb->Tflag, sizeof(ptb->Tflag))) |
&ptb->Tflag, sizeof(ptb->Tflag))) |