servers/ejabberd.lua

changeset 0
ba1cc6ad649d
child 1
d9d0f9517ca0
equal deleted inserted replaced
-1:000000000000 0:ba1cc6ad649d
1 function testers.ejabberd()
2 if (test(q_invalid_xml, [=[ id=["']none['"]]=]) or test(q_invalid_xml, " id='%d+'"))
3 and (not test(q_invalid_xml, literal " xml:lang=")) then
4
5 server_name = "ejabberd";
6
7 -- Facebook curiosity
8 if test(q_invalid_xml, " id=(.)") == '"' then
9 server_comment "Appears to be Facebook's variant of ejabberd";
10 end
11
12 local hostname = test(q_invalid_xml, [=[from=["']([^"']+)]=]);
13 if not hostname then
14 server_comment "The server did not return a hostname, odd.";
15 else
16 local stream_open = [[<stream:stream xmlns=']]..default_namespace..[['
17 xmlns:stream='http://etherx.jabber.org/streams' version='1.0' id='abc' to=']]..hostname..[['>]];
18
19 if not test(stream_open.."<message/>", ":features>$") then -- Oops, not ejabberd
20 debug("Oops, not ejabberd (please report):", test(stream_open.."<message/>", ".*"));
21 server_name = nil;
22 return;
23 end
24
25 if test(q_invalid_xml, " id='%d+'") then
26 server_min_version = "2.1.x";
27 elseif test(stream_open, literal "<compression ") then -- Only in 2.x
28 server_min_version = "2.0.x";
29 elseif test(stream_open, "") then
30 server_min_version = "1.x.x";
31 else
32 server_comment "The server did not reply when we tried to open a stream";
33 end
34
35 end
36 end
37 end
38

mercurial