Comparison

mod_tcpproxy/README.md @ 6003:fe081789f7b5

All community modules: Unify file extention of Markdown files to .md
author Menel <menel@snikket.de>
date Tue, 22 Oct 2024 10:26:01 +0200
parent 4853:mod_tcpproxy/README.markdown@3804332c204e
comparison
equal deleted inserted replaced
6002:5a65a632d5b9 6003:fe081789f7b5
1 ---
2 labels:
3 - 'Stage-Beta'
4 summary: 'TCP-over-XMPP :)'
5 ...
6
7 Introduction
8 ============
9
10 It happens occasionally that I would like to use the XMPP server as a
11 generic proxy for connecting to another service. It is especially
12 awkward in some environments, and impossible in (for example) Javascript
13 inside a web browser.
14
15 Details
16 =======
17
18 Using mod\_tcpproxy an XMPP client (including those using BOSH) can
19 initiate a pipe to a given TCP/IP address and port. This implementation
20 uses the [In-Band Bytestreams](http://xmpp.org/extensions/xep-0047.html)
21 XEP, simply extended with 2 new attributes in a new namespace, host and
22 port.
23
24 An example Javascript client can be found in the web/ directory of
25 mod\_tcpproxy in the repository.
26
27 Configuration
28 =============
29
30 Just add tcpproxy as a component, for example:
31
32 `Component "tcp.example.com" "tcpproxy"`
33
34 Protocol
35 ========
36
37 A new stream is opened like this:
38
39 ``` {.xml}
40 <iq type="set" id="newconn1" to="tcp.example.com">
41 <open xmlns='http://jabber.org/protocol/ibb'
42 sid='connection1'
43 block-size='4096'
44 stanza='message'
45 xmlns:tcp='http://prosody.im/protocol/tcpproxy'
46 tcp:host='example.com'
47 tcp:port='80' />
48 </iq>
49 ```
50
51 The stanza attribute (currently) MUST be 'message', and block-size is
52 (currently) ignored.
53
54 In response to this stanza you will receive a result upon connection
55 success, or an error if the connection failed. You can then send to the
56 connection by sending message stanzas as described in the IBB XEP.
57 Incoming data will likewise be delivered as messages.
58
59 Compatibility
60 =============
61
62 ----- --------------
63 0.7 Works
64 0.6 Doesn't work
65 ----- --------------
66
67 Todo
68 ====
69
70 - ACLs (restrict to certain JIDs, and/or certain target hosts/ports)
71 - Honour block-size
72 - Support iq stanzas for data transmission
73 - Signal to start SSL/TLS on a connection