diff util/jid.lua @ 14103:27e97e5b2c16 13.0

util.jid: Fix to reject IPv6 literal hosts without brackets From RFC 7622: > Implementation Note: Reuse of the IP-literal rule from [RFC6874] > implies that IPv6 addresses are enclosed within square brackets (i.e., > beginning with '[' and ending with ']'), , which was not the case with > the definition of the XMPP address format in [RFC3920] but which was > changed in [RFC6122].
author Kim Alvefur <zash@zash.se>
date Sat, 14 Mar 2026 01:16:14 +0100
parents 863dd118f8e8
children
line wrap: on
line diff
--- a/util/jid.lua	Wed Mar 11 16:53:48 2026 +0100
+++ b/util/jid.lua	Sat Mar 14 01:16:14 2026 +0100
@@ -52,7 +52,8 @@
 
 local function valid_ip(ip)
 	local v6 = match(ip, "^%[([%x:.]+)%]$");
-	return net.pton(v6 or ip);
+	local v4 = match(ip, "^%d%d?%d?%.%d%d?%d?%.%d%d?%d?%.%d%d?%d?$");
+	return (v6 or v4) and net.pton(v6 or v4);
 end
 
 local function prepped_split(jid, strict)