Mercurial > prosody-modules
comparison mod_onions/mod_onions.lua @ 1061:f4031e7ccec1
mod_onions: The SOCKS5 port is now a string, as it should be. Added a boolean option onions_tor_all to pass all s2s traffic through Tor.
| author | Thijs Alkemade <me@thijsalkema.de> |
|---|---|
| date | Mon, 10 Jun 2013 21:39:48 +0200 |
| parents | 25b83ed7838a |
| children | 8f59b45fe6a7 |
comparison
equal
deleted
inserted
replaced
| 1060:25b83ed7838a | 1061:f4031e7ccec1 |
|---|---|
| 6 local portmanager = require "core.portmanager"; | 6 local portmanager = require "core.portmanager"; |
| 7 local byte = string.byte; | 7 local byte = string.byte; |
| 8 local c = string.char; | 8 local c = string.char; |
| 9 | 9 |
| 10 local proxy_ip = module:get_option("onions_socks5_host") or "127.0.0.1"; | 10 local proxy_ip = module:get_option("onions_socks5_host") or "127.0.0.1"; |
| 11 local proxy_port = module:get_option("onions_socks5_port") or "9050"; | 11 local proxy_port = module:get_option("onions_socks5_port") or 9050; |
| 12 local forbid_else = module:get_option("onions_only") or false; | 12 local forbid_else = module:get_option("onions_only") or false; |
| 13 local torify_all = module:get_option("onions_tor_all") or false; | |
| 13 | 14 |
| 14 local sessions = module:shared("sessions"); | 15 local sessions = module:shared("sessions"); |
| 15 | 16 |
| 16 -- The socks5listener handles connection while still connecting to the proxy, | 17 -- The socks5listener handles connection while still connecting to the proxy, |
| 17 -- then it hands them over to the normal listener (in mod_s2s) | 18 -- then it hands them over to the normal listener (in mod_s2s) |
| 18 local socks5listener = { default_port = tonumber(proxy_port), default_mode = "*a", default_interface = "*" }; | 19 local socks5listener = { default_port = proxy_port, default_mode = "*a", default_interface = "*" }; |
| 19 | 20 |
| 20 local function socks5_connect_sent(conn, data) | 21 local function socks5_connect_sent(conn, data) |
| 21 | 22 |
| 22 local session = sessions[conn]; | 23 local session = sessions[conn]; |
| 23 | 24 |
| 213 | 214 |
| 214 if not event.to_host:find(".onion(.?)$") then | 215 if not event.to_host:find(".onion(.?)$") then |
| 215 if forbid_else then | 216 if forbid_else then |
| 216 module:log("debug", event.to_host .. " is not an onion. Blocking it."); | 217 module:log("debug", event.to_host .. " is not an onion. Blocking it."); |
| 217 return false; | 218 return false; |
| 218 else | 219 elseif not torify_all then |
| 219 return; | 220 return; |
| 220 end | 221 end |
| 221 end | 222 end |
| 222 | 223 |
| 223 module:log("debug", "Onion routing something to ".. event.to_host); | 224 module:log("debug", "Onion routing something to ".. event.to_host); |
