| 238 | | when /linux/ |
|---|
| 239 | | # 9 is currently TCP_DEFER_ACCEPT |
|---|
| 240 | | $tcp_defer_accept_opts = [Socket::SOL_TCP, 9, 1] |
|---|
| 241 | | $tcp_cork_opts = [Socket::SOL_TCP, 3, 1] |
|---|
| 242 | | end |
|---|
| 243 | | end |
|---|
| 244 | | |
|---|
| | 238 | when /linux/ |
|---|
| | 239 | # 9 is currently TCP_DEFER_ACCEPT |
|---|
| | 240 | $tcp_defer_accept_opts = [Socket::SOL_TCP, 9, 1] |
|---|
| | 241 | $tcp_cork_opts = [Socket::SOL_TCP, 3, 1] |
|---|
| | 242 | when /freebsd(([1-4]\..{1,2})|5\.[0-4])/ |
|---|
| | 243 | # Do nothing, just closing a bug when freebsd <= 5.4 |
|---|
| | 244 | when /freebsd/ |
|---|
| | 245 | # Use the HTTP accept filter if available. |
|---|
| | 246 | # The struct made by pack() is defined in /usr/include/sys/socket.h as accept_filter_arg |
|---|
| | 247 | unless `/sbin/sysctl -nq net.inet.accf.http`.empty? |
|---|
| | 248 | $tcp_defer_accept_opts = [Socket::SOL_SOCKET, Socket::SO_ACCEPTFILTER, ['httpready', nil].pack('a16a240')] |
|---|
| | 249 | end |
|---|
| | 250 | end |
|---|
| | 251 | end |
|---|
| | 252 | |
|---|