Fri, 10 Aug 2012 13:03:06 +0100
Add Facebook fingerprints (and move test for FBv1 from the ejabberd fingerprint)
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=")) and not test(q_invalid_xml, " id=(.)") == '"' then server_name = "ejabberd"; 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>$") -- Below for ejabberd requiring STARTTLS and not test(stream_open.."<message/>", literal ":features><stream:error><policy-violation ") then if test(stream_open, literal " from='dummyhost'") then server_min_version = "1.x.x"; else debug("Oops, not ejabberd (please report):", test(stream_open.."<message/>", ".*")); server_name = nil; end 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.1.4"; else server_comment "The server did not reply when we tried to open a stream"; end end end end