servers/ejabberd.lua

Thu, 18 Feb 2010 16:02:11 +0000

author
Matthew Wild <mwild1@gmail.com>
date
Thu, 18 Feb 2010 16:02:11 +0000
changeset 0
ba1cc6ad649d
child 1
d9d0f9517ca0
permissions
-rw-r--r--

Initial commit (dedicated to darkrain)

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
ba1cc6ad649d Initial commit (dedicated to darkrain)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19 if not test(stream_open.."<message/>", ":features>$") then -- Oops, not ejabberd
ba1cc6ad649d Initial commit (dedicated to darkrain)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
20 debug("Oops, not ejabberd (please report):", test(stream_open.."<message/>", ".*"));
ba1cc6ad649d Initial commit (dedicated to darkrain)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
21 server_name = nil;
ba1cc6ad649d Initial commit (dedicated to darkrain)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
22 return;
ba1cc6ad649d Initial commit (dedicated to darkrain)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
23 end
ba1cc6ad649d Initial commit (dedicated to darkrain)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
24
ba1cc6ad649d Initial commit (dedicated to darkrain)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
25 if test(q_invalid_xml, " id='%d+'") then
ba1cc6ad649d Initial commit (dedicated to darkrain)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
26 server_min_version = "2.1.x";
ba1cc6ad649d Initial commit (dedicated to darkrain)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
27 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
28 server_min_version = "2.0.x";
ba1cc6ad649d Initial commit (dedicated to darkrain)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
29 elseif test(stream_open, "") then
ba1cc6ad649d Initial commit (dedicated to darkrain)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
30 server_min_version = "1.x.x";
ba1cc6ad649d Initial commit (dedicated to darkrain)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
31 else
ba1cc6ad649d Initial commit (dedicated to darkrain)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
32 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
33 end
ba1cc6ad649d Initial commit (dedicated to darkrain)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
34
ba1cc6ad649d Initial commit (dedicated to darkrain)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
35 end
ba1cc6ad649d Initial commit (dedicated to darkrain)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
36 end
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

mercurial