ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/servlink/README
Revision: 32
Committed: Sun Oct 2 20:41:23 2005 UTC (18 years, 5 months ago) by knight
File size: 2480 byte(s)
Log Message:
- svn:keywords

File Contents

# User Rev Content
1 adx 30 Servlink protocol documentation.
2 knight 31 $Id$
3 adx 30 --------------
4    
5     After negotiating an incoming/outgoing server connection, the ircd will
6     fork, then execve servlink, with fd 0 as one end of a control pipe and
7     fd 1 as one end of a data pipe. fd 2 will be the socket connected to
8     the remote server.
9    
10     The data pipe is used by the ircd to send/receive normal, decrypted,
11     uncompressed IRC commands to/from the remote server. The socket is used to
12     send the (processed) data to the remote server, and receive the data from
13     the remote server.
14    
15     The control pipe is used to activate encryption/compression and to set the
16     encryption key/algorithm to be used.
17    
18     Format of control messages:
19    
20     <u8 command><optional data>
21    
22     data format:
23     <u16 len><data>
24    
25     Commands:
26    
27     001 - SET_ZIP_OUT_LEVEL
28     data: yes
29     description:
30     set compression level (0 [use default, 6], or 1-9)
31    
32     002 - START_ZIP_OUT
33     data: no
34     description:
35     all data written to the data pipe will be compressed
36     prior to being sent to the remote server.
37    
38     003 - START_ZIP_IN
39     data: no
40     description:
41     all data not yet read from the slink program will be
42     decompressed before reading
43    
44     004 - SET_CRYPT_IN_CIPHER
45     data: <u8 cipher id>
46    
47     001 - BLOWFISH
48     002 - CAST
49     003 - DES
50     004 - 3DES
51     005 - IDEA
52     006 - RC5 ( 8 rounds)
53     007 - RC5 (12 rounds)
54     008 - RC5 (16 rounds)
55    
56     cannot be called whilst decryption is active.
57    
58     005 - SET_CRYPT_IN_KEY
59     data: <key>
60    
61     cannot be called whilst decryption is active.
62    
63     006 - START_CRYPT_IN
64    
65     007 - SET_CRYPT_OUT_CIPHER
66     data: <u8 cipher id>
67    
68     001 - BLOWFISH
69     002 - CAST
70     003 - DES
71     004 - 3DES
72     005 - IDEA
73     006 - RC5 ( 8 rounds)
74     007 - RC5 (12 rounds)
75     008 - RC5 (16 rounds)
76    
77     cannot be called whilst encryption is active.
78    
79     008 - SET_CRYPT_OUT_KEY
80     data: <key>
81    
82     cannot be called whilst encryption is active.
83    
84     009 - START_CRYPT_OUT
85    
86     010 - INJECT_RECVQ
87     data: recvq
88    
89     Used before INIT to inject any data read from the server fd which
90     should be pre-processed by servlink before being sent back
91     to the LOCAL_FD through the data fd.
92    
93     011 - INJECT_SENDQ
94     data: sendq
95    
96     As above, but sent to remote server without processing.
97    
98     012 - INIT
99    
100     013 - ZIPSTATS
101     request to send ziplinks statistics reply.
102    
103     replies
104    
105     001 - ERROR
106     data: u32 len/char error[len]
107    
108     fatal error message.
109    
110     002 - ZIPSTATS
111     data: u32 in/u32 in_wire/u32 out/u32 out_wire
112    
113     ziplinks commpression statistics

Properties

Name Value
svn:eol-style native
svn:keywords Revision