annotate mod_tcpproxy/mod_tcpproxy.lua @ 234:abcb59ab355c

Add new motd_sequential module. This module lets you define numbered messages shown to each user in order, but only once per user, and persistent across server restarts. Useful for notifying users of added features and changes in an incremental fashion.
author Jeff Mitchell <jeffrey.mitchell@gmail.com>
date Wed, 04 Aug 2010 22:29:51 +0000
parents 31e24026e4fd
children 07c1c3eaf0c4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
147
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 local st = require "util.stanza";
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3 local xmlns_ibb = "http://jabber.org/protocol/ibb";
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4 local xmlns_tcp = "http://prosody.im/protocol/tcpproxy";
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6 local host_attr, port_attr = xmlns_tcp.."\1host", xmlns_tcp.."\1port";
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8 local base64 = require "util.encodings".base64;
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9 local b64, unb64 = base64.encode, base64.decode;
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11 local host = module.host;
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13 local open_connections = {};
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15 local function new_session(jid, sid, conn)
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16 if not open_connections[jid] then
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17 open_connections[jid] = {};
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18 end
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19 open_connections[jid][sid] = conn;
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
20 end
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
21 local function close_session(jid, sid)
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
22 if open_connections[jid] then
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
23 open_connections[jid][sid] = nil;
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
24 if next(open_connections[jid]) == nil then
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
25 open_connections[jid] = nil;
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
26 end
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
27 return true;
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
28 end
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
29 end
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
30
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
31 function proxy_component(origin, stanza)
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
32 local ibb_tag = stanza.tags[1];
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
33 if (not (stanza.name == "iq" and stanza.attr.type == "set")
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
34 and stanza.name ~= "message")
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
35 or
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
36 (not (ibb_tag)
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
37 or ibb_tag.attr.xmlns ~= xmlns_ibb) then
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
38 if stanza.attr.type ~= "error" then
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
39 origin.send(st.error_reply(stanza, "cancel", "service-unavailable"));
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
40 end
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
41 return;
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
42 end
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
43
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
44 if ibb_tag.name == "open" then
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
45 -- Starting a new stream
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
46 local to_host, to_port = ibb_tag.attr[host_attr], ibb_tag.attr[port_attr];
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
47 local jid, sid = stanza.attr.from, ibb_tag.attr.sid;
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
48 if not (to_host and to_port) then
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
49 return origin.send(st.error_reply(stanza, "modify", "bad-request", "No host/port specified"));
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
50 elseif not sid or sid == "" then
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
51 return origin.send(st.error_reply(stanza, "modify", "bad-request", "No sid specified"));
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
52 elseif ibb_tag.attr.stanza ~= "message" then
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
53 return origin.send(st.error_reply(stanza, "modify", "bad-request", "Only 'message' stanza transport is supported"));
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
54 end
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
55 local conn, err = socket.tcp();
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
56 if not conn then
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
57 return origin.send(st.error_reply(stanza, "wait", "resource-constraint", err));
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
58 end
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
59 conn:settimeout(0);
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
60
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
61 local success, err = conn:connect(to_host, to_port);
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
62 if not success and err ~= "timeout" then
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
63 return origin.send(st.error_reply(stanza, "wait", "remote-server-not-found", err));
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
64 end
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
65
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
66 local listener,seq = {}, 0;
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
67 function listener.onconnect(conn)
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
68 origin.send(st.reply(stanza));
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
69 end
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
70 function listener.onincoming(conn, data)
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
71 origin.send(st.message({to=jid,from=host})
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
72 :tag("data", {xmlns=xmlns_ibb,seq=seq,sid=sid})
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
73 :text(b64(data)));
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
74 seq = seq + 1;
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
75 end
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
76 function listener.ondisconnect(conn, err)
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
77 origin.send(st.message({to=jid,from=host})
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
78 :tag("close", {xmlns=xmlns_ibb,sid=sid}));
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
79 close_session(jid, sid);
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
80 end
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
81
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
82 conn = server.wrapclient(conn, to_host, to_port, listener, "*a" );
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
83 new_session(jid, sid, conn);
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
84 elseif ibb_tag.name == "data" then
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
85 local conn = open_connections[stanza.attr.from][ibb_tag.attr.sid];
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
86 if conn then
153
31e24026e4fd mod_tcpproxy: Handle gracefully invalid base64 data, fixes #2 (thanks dersd)
Matthew Wild <mwild1@gmail.com>
parents: 147
diff changeset
87 local data = unb64(ibb_tag:get_text());
31e24026e4fd mod_tcpproxy: Handle gracefully invalid base64 data, fixes #2 (thanks dersd)
Matthew Wild <mwild1@gmail.com>
parents: 147
diff changeset
88 if data then
31e24026e4fd mod_tcpproxy: Handle gracefully invalid base64 data, fixes #2 (thanks dersd)
Matthew Wild <mwild1@gmail.com>
parents: 147
diff changeset
89 conn:write(data);
31e24026e4fd mod_tcpproxy: Handle gracefully invalid base64 data, fixes #2 (thanks dersd)
Matthew Wild <mwild1@gmail.com>
parents: 147
diff changeset
90 else
31e24026e4fd mod_tcpproxy: Handle gracefully invalid base64 data, fixes #2 (thanks dersd)
Matthew Wild <mwild1@gmail.com>
parents: 147
diff changeset
91 return origin.send(
31e24026e4fd mod_tcpproxy: Handle gracefully invalid base64 data, fixes #2 (thanks dersd)
Matthew Wild <mwild1@gmail.com>
parents: 147
diff changeset
92 st.error_reply(stanza, "modify", "bad-request", "Invalid data (base64?)")
31e24026e4fd mod_tcpproxy: Handle gracefully invalid base64 data, fixes #2 (thanks dersd)
Matthew Wild <mwild1@gmail.com>
parents: 147
diff changeset
93 );
31e24026e4fd mod_tcpproxy: Handle gracefully invalid base64 data, fixes #2 (thanks dersd)
Matthew Wild <mwild1@gmail.com>
parents: 147
diff changeset
94 end
147
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
95 else
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
96 return origin.send(st.error_reply(stanza, "cancel", "item-not-found"));
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
97 end
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
98 elseif ibb_tag.name == "close" then
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
99 if close_session(stanza.attr.from, ibb_tag.attr.sid) then
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
100 origin.send(st.reply(stanza));
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
101 else
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
102 return origin.send(st.error_reply(stanza, "cancel", "item-not-found"));
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
103 end
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
104 end
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
105 end
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
106
4db80a46b064 mod_tcpproxy: Initial commit. The moment you didn't know you've been waiting for is here... the dawn of TCP over XMPP.
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
107 require "core.componentmanager".register_component(host, proxy_component);