servers/ejabberd.lua

Wed, 21 Apr 2010 17:03:44 +0100

author
Matthew Wild <mwild1@gmail.com>
date
Wed, 21 Apr 2010 17:03:44 +0100
changeset 1
d9d0f9517ca0
parent 0
ba1cc6ad649d
child 14
a8f632e88555
permissions
-rw-r--r--

servers/ejabberd.lua: Support for detection of ejabberd prior to 1.1.4

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

mercurial