Software / code / prosody
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 () |