Mercurial > prosody-modules
comparison mod_net_proxy/mod_net_proxy.lua @ 3562:b33b2fbdc713
mod_net_proxy: Ensure port numbers are coerced into numbers
LuaSocket likes to use strings for port numbers for some reason, so this
might help with some type related problems.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Fri, 12 Apr 2019 21:44:29 +0200 |
| parents | 97b30fec709c |
| children | 9d65eb3fcb15 |
comparison
equal
deleted
inserted
replaced
| 3561:deb5ece56c49 | 3562:b33b2fbdc713 |
|---|---|
| 287 end | 287 end |
| 288 conn.clientport = conn.port; | 288 conn.clientport = conn.port; |
| 289 end | 289 end |
| 290 | 290 |
| 291 -- Attempt to find service by processing port<>service mappings | 291 -- Attempt to find service by processing port<>service mappings |
| 292 local mapping = mappings[conn:serverport()]; | 292 local mapping = mappings[tonumber(conn:serverport())]; |
| 293 if mapping == nil then | 293 if mapping == nil then |
| 294 conn:close(); | 294 conn:close(); |
| 295 module:log("warn", "Connection %s@%s terminated: Could not find mapping for port %d", | 295 module:log("warn", "Connection %s@%s terminated: Could not find mapping for port %d", |
| 296 conn:ip(), conn:proxyip(), conn:serverport()); | 296 conn:ip(), conn:proxyip(), conn:serverport()); |
| 297 return; | 297 return; |
| 441 end | 441 end |
| 442 | 442 |
| 443 -- Process all configured port mappings and generate a list of mapped ports | 443 -- Process all configured port mappings and generate a list of mapped ports |
| 444 local mapped_ports = {}; | 444 local mapped_ports = {}; |
| 445 for port, mapping in pairs(config_mappings) do | 445 for port, mapping in pairs(config_mappings) do |
| 446 port = tonumber(port); | |
| 446 table.insert(mapped_ports, port); | 447 table.insert(mapped_ports, port); |
| 447 mappings[port] = { | 448 mappings[port] = { |
| 448 service_name = mapping, | 449 service_name = mapping, |
| 449 service = nil, | 450 service = nil, |
| 450 }; | 451 }; |
