servers/ejabberd.lua

Sun, 05 Jun 2011 16:32:20 +0100

author
Matthew Wild <mwild1@gmail.com>
date
Sun, 05 Jun 2011 16:32:20 +0100
changeset 14
a8f632e88555
parent 1
d9d0f9517ca0
child 16
872dc69f6039
permissions
-rw-r--r--

servers/ejabberd.lua: Fix for ejabberd's requiring c2s TLS

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
14
a8f632e88555 servers/ejabberd.lua: Fix for ejabberd's requiring c2s TLS
Matthew Wild <mwild1@gmail.com>
parents: 1
diff changeset
19 if not test(stream_open.."<message/>", ":features>$")
a8f632e88555 servers/ejabberd.lua: Fix for ejabberd's requiring c2s TLS
Matthew Wild <mwild1@gmail.com>
parents: 1
diff changeset
20 -- Below for ejabberd requiring STARTTLS
a8f632e88555 servers/ejabberd.lua: Fix for ejabberd's requiring c2s TLS
Matthew Wild <mwild1@gmail.com>
parents: 1
diff changeset
21 and not test(stream_open.."<message/>", literal ":features><stream:error><policy-violation ") 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
22 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
23 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
24 else
d9d0f9517ca0 servers/ejabberd.lua: Support for detection of ejabberd prior to 1.1.4
Matthew Wild <mwild1@gmail.com>
parents: 0
diff changeset
25 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
26 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
27 end
0
ba1cc6ad649d Initial commit (dedicated to darkrain)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
28 return;
ba1cc6ad649d Initial commit (dedicated to darkrain)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
29 end
ba1cc6ad649d Initial commit (dedicated to darkrain)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
30
ba1cc6ad649d Initial commit (dedicated to darkrain)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
31 if test(q_invalid_xml, " id='%d+'") then
ba1cc6ad649d Initial commit (dedicated to darkrain)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
32 server_min_version = "2.1.x";
ba1cc6ad649d Initial commit (dedicated to darkrain)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
33 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
34 server_min_version = "2.0.x";
ba1cc6ad649d Initial commit (dedicated to darkrain)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
35 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
36 server_min_version = "1.1.4";
0
ba1cc6ad649d Initial commit (dedicated to darkrain)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
37 else
ba1cc6ad649d Initial commit (dedicated to darkrain)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
38 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
39 end
ba1cc6ad649d Initial commit (dedicated to darkrain)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
40
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 end
ba1cc6ad649d Initial commit (dedicated to darkrain)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
43 end
ba1cc6ad649d Initial commit (dedicated to darkrain)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
44

mercurial