Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/ngx_stream_lua_util.c
Original file line number Diff line number Diff line change
Expand Up @@ -3720,7 +3720,7 @@ ngx_stream_lua_parse_addr(lua_State *L, u_char *text, size_t len,
#endif

if (len == 7 && memcmp(text, "0.0.0.0", 7) == 0) {
inaddr = INADDR_NONE;
inaddr = INADDR_ANY;
socklen = sizeof(struct sockaddr_in);
family = AF_INET;

Expand Down
39 changes: 39 additions & 0 deletions t/141-tcp-socket-bind.t
Original file line number Diff line number Diff line change
Expand Up @@ -224,3 +224,42 @@ server {
127.0.0.1
--- no_error_log
[error]



=== TEST 6: upstream sockets bind 0.0.0.0 (wildcard, regression for INADDR_NONE bug)
--- stream_config
server {
listen 127.0.1.2:2986;
content_by_lua_block {
ngx.say(ngx.var.remote_addr)
}
}
--- stream_server_config
content_by_lua_block {
local sock = ngx.socket.tcp()

local ok, err = sock:bind("0.0.0.0")
if not ok then
ngx.log(ngx.ERR, "bind failed: ", err)
return
end

local ok, err = sock:connect("127.0.1.2", 2986)
if not ok then
ngx.log(ngx.ERR, "connect failed: ", err)
return
end

local line, err, part = sock:receive()
if line then
ngx.say(line)
else
ngx.log(ngx.ERR, err)
end
}

--- stream_response
127.0.0.1
--- no_error_log
[error]
37 changes: 37 additions & 0 deletions t/142-udp-socket-bind.t
Original file line number Diff line number Diff line change
Expand Up @@ -272,3 +272,40 @@ server {

--- no_error_log
[error]



=== TEST 6: upstream sockets bind 0.0.0.0 (wildcard, regression for INADDR_NONE bug)
--- stream_config
server {
listen 127.0.1.2:2986 udp;
content_by_lua_block {
ngx.log(ngx.INFO, "udp bind address: " .. ngx.var.remote_addr)
}
}
--- stream_server_config
content_by_lua_block {
local sock = ngx.socket.udp()

local ok, err = sock:bind("0.0.0.0")
if not ok then
ngx.log(ngx.ERR, "bind failed: ", err)
return
end

local ok, err = sock:setpeername("127.0.1.2", 2986)
if not ok then
ngx.log(ngx.ERR, "setpeername failed: ", err)
return
end

local ok, err = sock:send("trigger")
if not ok then
ngx.log(ngx.ERR, err)
end
}

--- no_error_log
[error]
--- error_log
udp bind address: 127.0.0.1
Loading