servers/jabberd14.lua: Detect 1.4.x/1.6.x/jadc2s

Mon, 04 Oct 2010 02:37:42 +0100

author
Matthew Wild <mwild1@gmail.com>
date
Mon, 04 Oct 2010 02:37:42 +0100
changeset 10
1ccc729780b7
parent 9
65f1e0f9338f
child 11
c77c5ac57156

servers/jabberd14.lua: Detect 1.4.x/1.6.x/jadc2s

servers/jabberd14.lua file | annotate | diff | comparison | revisions
--- a/servers/jabberd14.lua	Mon Oct 04 02:37:10 2010 +0100
+++ b/servers/jabberd14.lua	Mon Oct 04 02:37:42 2010 +0100
@@ -1,19 +1,15 @@
--- The jabberd14/jabberd2 split is a complete mess. There are
--- servers that report as jabberd14 that return the same fingerprint
--- as jabberd2 servers. A jabberd14 1.6.1.1 server on Debian was
--- more similar to jabberd14 1.4.x, so I am assuming it to be the
--- correct one, even though I can't find another one like it...
-
 function testers.jabberd14()
-	if test(q_invalid_xml, literal ">Invalid XML<") then
+	if test(q_invalid_xml, literal ">Invalid XML<")
+	or (test(q_invalid_xml, literal ">syntax error</text>")
+	    and not test(q_invalid_host, literal " id='")) then
 		server_name = "jabberd14";
 		
-		if test(q_invalid_xml, "^<%?xml")
-		and test(q_empty_message_tag, literal ">Did not specify a valid to argument<") then
-			server_min_version = "1.6.0";
-			server_comment "Likely Debian's package, other 1.6.x jabberd's report as jabberd2";
-		elseif test(q_invalid_xml, "^<stream:error>") then
-			server_max_version = "1.4.x";
+		if test(q_invalid_xml, "^<stream:error>") then
+			server_min_version = "1.4.x";
+		elseif test(q_empty_message_tag, literal "<improper-addressing ") then
+			server_min_version = "1.6.0"
+		elseif test(q_empty_message_tag, literal "<bad-format ") then
+			server_comment "Using jadc2s connection manager, jabberd14 version unknown";
 		end
 	end
 end

mercurial