Comparison

util/prosodyctl/check.lua @ 12975:d10957394a3c

util: Prefix module imports with prosody namespace
author Kim Alvefur <zash@zash.se>
date Fri, 17 Mar 2023 16:23:16 +0100
parent 12899:09b101a3b3e1
child 13122:45458ecaacae
comparison
equal deleted inserted replaced
12974:ba409c67353b 12975:d10957394a3c
1 local configmanager = require "core.configmanager"; 1 local configmanager = require "prosody.core.configmanager";
2 local show_usage = require "util.prosodyctl".show_usage; 2 local show_usage = require "prosody.util.prosodyctl".show_usage;
3 local show_warning = require "util.prosodyctl".show_warning; 3 local show_warning = require "prosody.util.prosodyctl".show_warning;
4 local is_prosody_running = require "util.prosodyctl".isrunning; 4 local is_prosody_running = require "prosody.util.prosodyctl".isrunning;
5 local parse_args = require "util.argparse".parse; 5 local parse_args = require "prosody.util.argparse".parse;
6 local dependencies = require "util.dependencies"; 6 local dependencies = require "prosody.util.dependencies";
7 local socket = require "socket"; 7 local socket = require "socket";
8 local socket_url = require "socket.url"; 8 local socket_url = require "socket.url";
9 local jid_split = require "util.jid".prepped_split; 9 local jid_split = require "prosody.util.jid".prepped_split;
10 local modulemanager = require "core.modulemanager"; 10 local modulemanager = require "prosody.core.modulemanager";
11 local async = require "util.async"; 11 local async = require "prosody.util.async";
12 local httputil = require "util.http"; 12 local httputil = require "prosody.util.http";
13 13
14 local function check_ojn(check_type, target_host) 14 local function check_ojn(check_type, target_host)
15 local http = require "net.http"; -- .new({}); 15 local http = require "prosody.net.http"; -- .new({});
16 local json = require "util.json"; 16 local json = require "prosody.util.json";
17 17
18 local response, err = async.wait_for(http.request( 18 local response, err = async.wait_for(http.request(
19 ("https://observe.jabber.network/api/v1/check/%s"):format(httputil.urlencode(check_type)), 19 ("https://observe.jabber.network/api/v1/check/%s"):format(httputil.urlencode(check_type)),
20 { 20 {
21 method="POST", 21 method="POST",
39 local success = decoded_body["success"]; 39 local success = decoded_body["success"];
40 return success == true, nil; 40 return success == true, nil;
41 end 41 end
42 42
43 local function check_probe(base_url, probe_module, target) 43 local function check_probe(base_url, probe_module, target)
44 local http = require "net.http"; -- .new({}); 44 local http = require "prosody.net.http"; -- .new({});
45 local params = httputil.formencode({ module = probe_module; target = target }) 45 local params = httputil.formencode({ module = probe_module; target = target })
46 local response, err = async.wait_for(http.request(base_url .. "?" .. params)); 46 local response, err = async.wait_for(http.request(base_url .. "?" .. params));
47 47
48 if not response then return false, err; end 48 if not response then return false, err; end
49 49
60 end 60 end
61 return false, "Probe endpoint did not return a success status"; 61 return false, "Probe endpoint did not return a success status";
62 end 62 end
63 63
64 local function check_turn_service(turn_service, ping_service) 64 local function check_turn_service(turn_service, ping_service)
65 local ip = require "util.ip"; 65 local ip = require "prosody.util.ip";
66 local stun = require "net.stun"; 66 local stun = require "prosody.net.stun";
67 67
68 -- Create UDP socket for communication with the server 68 -- Create UDP socket for communication with the server
69 local sock = assert(require "socket".udp()); 69 local sock = assert(require "socket".udp());
70 sock:setsockname("*", 0); 70 sock:setsockname("*", 0);
71 sock:setpeername(turn_service.host, turn_service.port); 71 sock:setpeername(turn_service.host, turn_service.port);
302 return 1; 302 return 1;
303 elseif opts_err == "param-not-found" then 303 elseif opts_err == "param-not-found" then
304 print("Error: Unknown parameter: "..opts_info); 304 print("Error: Unknown parameter: "..opts_info);
305 return 1; 305 return 1;
306 end 306 end
307 local array = require "util.array"; 307 local array = require "prosody.util.array";
308 local set = require "util.set"; 308 local set = require "prosody.util.set";
309 local it = require "util.iterators"; 309 local it = require "prosody.util.iterators";
310 local ok = true; 310 local ok = true;
311 local function disabled_hosts(host, conf) return host ~= "*" and conf.enabled ~= false; end 311 local function disabled_hosts(host, conf) return host ~= "*" and conf.enabled ~= false; end
312 local function enabled_hosts() return it.filter(disabled_hosts, pairs(configmanager.getconfig())); end 312 local function enabled_hosts() return it.filter(disabled_hosts, pairs(configmanager.getconfig())); end
313 if not (what == nil or what == "disabled" or what == "config" or what == "dns" or what == "certs" or what == "connectivity" or what == "turn") then 313 if not (what == nil or what == "disabled" or what == "config" or what == "dns" or what == "certs" or what == "connectivity" or what == "turn") then
314 show_warning("Don't know how to check '%s'. Try one of 'config', 'dns', 'certs', 'disabled', 'turn' or 'connectivity'.", what); 314 show_warning("Don't know how to check '%s'. Try one of 'config', 'dns', 'certs', 'disabled', 'turn' or 'connectivity'.", what);
704 end 704 end
705 705
706 print("Done.\n"); 706 print("Done.\n");
707 end 707 end
708 if not what or what == "dns" then 708 if not what or what == "dns" then
709 local dns = require "net.dns"; 709 local dns = require "prosody.net.dns";
710 pcall(function () 710 pcall(function ()
711 local unbound = require"net.unbound"; 711 local unbound = require"prosody.net.unbound";
712 dns = unbound.dns; 712 dns = unbound.dns;
713 end) 713 end)
714 local idna = require "util.encodings".idna; 714 local idna = require "prosody.util.encodings".idna;
715 local ip = require "util.ip"; 715 local ip = require "prosody.util.ip";
716 local c2s_ports = set.new(configmanager.get("*", "c2s_ports") or {5222}); 716 local c2s_ports = set.new(configmanager.get("*", "c2s_ports") or {5222});
717 local s2s_ports = set.new(configmanager.get("*", "s2s_ports") or {5269}); 717 local s2s_ports = set.new(configmanager.get("*", "s2s_ports") or {5269});
718 local c2s_tls_ports = set.new(configmanager.get("*", "c2s_direct_tls_ports") or {}); 718 local c2s_tls_ports = set.new(configmanager.get("*", "c2s_direct_tls_ports") or {});
719 local s2s_tls_ports = set.new(configmanager.get("*", "s2s_direct_tls_ports") or {}); 719 local s2s_tls_ports = set.new(configmanager.get("*", "s2s_direct_tls_ports") or {});
720 720
767 end 767 end
768 end 768 end
769 end 769 end
770 end 770 end
771 771
772 local local_addresses = require"util.net".local_addresses() or {}; 772 local local_addresses = require"prosody.util.net".local_addresses() or {};
773 773
774 for addr in it.values(local_addresses) do 774 for addr in it.values(local_addresses) do
775 if not ip.new_ip(addr).private then 775 if not ip.new_ip(addr).private then
776 external_addresses:add(addr); 776 external_addresses:add(addr);
777 else 777 else
1070 end 1070 end
1071 end 1071 end
1072 if not what or what == "certs" then 1072 if not what or what == "certs" then
1073 local cert_ok; 1073 local cert_ok;
1074 print"Checking certificates..." 1074 print"Checking certificates..."
1075 local x509_verify_identity = require"util.x509".verify_identity; 1075 local x509_verify_identity = require"prosody.util.x509".verify_identity;
1076 local create_context = require "core.certmanager".create_context; 1076 local create_context = require "prosody.core.certmanager".create_context;
1077 local ssl = dependencies.softreq"ssl"; 1077 local ssl = dependencies.softreq"ssl";
1078 -- local datetime_parse = require"util.datetime".parse_x509; 1078 -- local datetime_parse = require"util.datetime".parse_x509;
1079 local load_cert = ssl and ssl.loadcertificate; 1079 local load_cert = ssl and ssl.loadcertificate;
1080 -- or ssl.cert_from_pem 1080 -- or ssl.cert_from_pem
1081 if not ssl then 1081 if not ssl then