diff options
author | Matthew Wild <mwild1@gmail.com> | 2024-12-20 14:22:25 +0000 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2024-12-20 14:22:25 +0000 |
commit | a2b2d01c3e5c84da11a675b3848c5d28d7c919fa (patch) | |
tree | 494891a9e7777cb5b7dc1a2c8d1fb955776ca3b4 | |
parent | a2197df83202436ac7db20aed58060d018970942 (diff) | |
parent | bca60e609d6a5433acaedafbe3b9cc3fd6661ff1 (diff) | |
download | prosody-a2b2d01c3e5c84da11a675b3848c5d28d7c919fa.tar.gz prosody-a2b2d01c3e5c84da11a675b3848c5d28d7c919fa.zip |
Merge 0.12->trunk
-rw-r--r-- | util/prosodyctl/check.lua | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/util/prosodyctl/check.lua b/util/prosodyctl/check.lua index 8d085c85..ac8cc9c1 100644 --- a/util/prosodyctl/check.lua +++ b/util/prosodyctl/check.lua @@ -70,10 +70,22 @@ local function check_turn_service(turn_service, ping_service) local ip = require "prosody.util.ip"; local stun = require "prosody.net.stun"; + local result = { warnings = {} }; + -- Create UDP socket for communication with the server local sock = assert(require "socket".udp()); - sock:setsockname("*", 0); - sock:setpeername(turn_service.host, turn_service.port); + do + local ok, err = sock:setsockname("*", 0); + if not ok then + result.error = "Unable to perform TURN test: setsockname: "..tostring(err); + return result; + end + ok, err = sock:setpeername(turn_service.host, turn_service.port); + if not ok then + result.error = "Unable to perform TURN test: setpeername: "..tostring(err); + return result; + end + end sock:settimeout(10); -- Helper function to receive a packet @@ -85,8 +97,6 @@ local function check_turn_service(turn_service, ping_service) return stun.new_packet():deserialize(raw_packet); end - local result = { warnings = {} }; - -- Send a "binding" query, i.e. a request for our external IP/port local bind_query = stun.new_packet("binding", "request"); bind_query:add_attribute("software", "prosodyctl check turn"); |