Thu, 18 Feb 2010 16:02:11 +0000
Initial commit (dedicated to darkrain)
function testers.ejabberd() if (test(q_invalid_xml, [=[ id=["']none['"]]=]) or test(q_invalid_xml, " id='%d+'")) and (not test(q_invalid_xml, literal " xml:lang=")) then server_name = "ejabberd"; -- Facebook curiosity if test(q_invalid_xml, " id=(.)") == '"' then server_comment "Appears to be Facebook's variant of ejabberd"; end local hostname = test(q_invalid_xml, [=[from=["']([^"']+)]=]); if not hostname then server_comment "The server did not return a hostname, odd."; else local stream_open = [[<stream:stream xmlns=']]..default_namespace..[[' xmlns:stream='http://etherx.jabber.org/streams' version='1.0' id='abc' to=']]..hostname..[['>]]; if not test(stream_open.."<message/>", ":features>$") then -- Oops, not ejabberd debug("Oops, not ejabberd (please report):", test(stream_open.."<message/>", ".*")); server_name = nil; return; end if test(q_invalid_xml, " id='%d+'") then server_min_version = "2.1.x"; elseif test(stream_open, literal "<compression ") then -- Only in 2.x server_min_version = "2.0.x"; elseif test(stream_open, "") then server_min_version = "1.x.x"; else server_comment "The server did not reply when we tried to open a stream"; end end end end