Comparison

util/prosodyctl/check.lua @ 13466:5d9ec2e55d74

Merge 0.12->trunk
author Matthew Wild <mwild1@gmail.com>
date Wed, 27 Mar 2024 15:39:03 +0000
parent 13327:f0fc6e7cc4de
parent 13465:54a936345aaa
child 13581:c71feb7686c0
comparison
equal deleted inserted replaced
13464:2dbc169aae6a 13466:5d9ec2e55d74
733 print(" VirtualHost. Alternatively, you can explicitly link them using the disco_items option."); 733 print(" VirtualHost. Alternatively, you can explicitly link them using the disco_items option.");
734 print(" For more information see https://prosody.im/doc/modules/mod_disco#items"); 734 print(" For more information see https://prosody.im/doc/modules/mod_disco#items");
735 end 735 end
736 end 736 end
737 737
738 -- Check hostname validity
739 do
740 local idna = require "prosody.util.encodings".idna;
741 local invalid_hosts = {};
742 local alabel_hosts = {};
743 for host in it.filter("*", pairs(configmanager.getconfig())) do
744 local _, h, _ = jid_split(host);
745 if not h or not idna.to_ascii(h) then
746 table.insert(invalid_hosts, host);
747 else
748 for label in h:gmatch("[^%.]+") do
749 if label:match("^xn%-%-") then
750 table.insert(alabel_hosts, host);
751 break;
752 end
753 end
754 end
755 end
756
757 if #invalid_hosts > 0 then
758 table.sort(invalid_hosts);
759 print("");
760 print(" Your configuration contains invalid host names:");
761 print(" "..table.concat(invalid_hosts, "\n "));
762 print("");
763 print(" Clients may not be able to log in to these hosts, or you may not be able to");
764 print(" communicate with remote servers.");
765 print(" Use a valid domain name to correct this issue.");
766 end
767
768 if #alabel_hosts > 0 then
769 table.sort(alabel_hosts);
770 print("");
771 print(" Your configuration contains incorrectly-encoded hostnames:");
772 for _, ahost in ipairs(alabel_hosts) do
773 print((" '%s' (should be '%s')"):format(ahost, idna.to_unicode(ahost)));
774 end
775 print("");
776 print(" Clients may not be able to log in to these hosts, or you may not be able to");
777 print(" communicate with remote servers.");
778 print(" To correct this issue, use the Unicode version of the domain in Prosody's config file.");
779 end
780
781 if #invalid_hosts > 0 or #alabel_hosts > 0 then
782 print("");
783 print("WARNING: Changing the name of a VirtualHost in Prosody's config file");
784 print(" WILL NOT migrate any existing data (user accounts, etc.) to the new name.");
785 ok = false;
786 end
787 end
788
738 print("Done.\n"); 789 print("Done.\n");
739 end 790 end
740 function checks.dns() 791 function checks.dns()
741 local dns = require "prosody.net.dns"; 792 local dns = require "prosody.net.dns";
742 pcall(function () 793 pcall(function ()