aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGES1
-rw-r--r--net/server_epoll.lua6
2 files changed, 7 insertions, 0 deletions
diff --git a/CHANGES b/CHANGES
index f47dc1a9..e34ea88e 100644
--- a/CHANGES
+++ b/CHANGES
@@ -12,6 +12,7 @@ TRUNK
- Honour 'weight' parameter during SRV record selection
- Support for RFC 8305 "Happy Eyeballs" to improve IPv4/IPv6 connectivity
- Support for TCP Fast Open in server_epoll (pending LuaSocket support)
+- Support for deferred accept in server_epoll (pending LuaSocket support)
0.12.0
======
diff --git a/net/server_epoll.lua b/net/server_epoll.lua
index 0d04f6ee..d0ca3125 100644
--- a/net/server_epoll.lua
+++ b/net/server_epoll.lua
@@ -95,6 +95,9 @@ local default_config = { __index = {
-- TCP Fast Open
tcp_fastopen = false;
+
+ -- Defer accept until incoming data is available
+ tcp_defer_accept = false;
}};
local cfg = default_config.__index;
@@ -912,6 +915,9 @@ local function wrapserver(conn, addr, port, listeners, config)
if cfg.tcp_fastopen then
server:setoption("tcp-fastopen", cfg.tcp_fastopen);
end
+ if type(cfg.tcp_defer_accept) == "number" then
+ server:setoption("tcp-defer-accept", cfg.tcp_defer_accept);
+ end
server:add(true, false);
return server;
end