This repository has been archived on 2025-02-12. You can view files and clone it, but cannot push or open issues or pull requests.
NeoStats-NeoIRCd/servlink/README

114 lines
2.5 KiB
Text
Raw Normal View History

2002-08-13 14:34:25 +00:00
Servlink protocol documentation.
2002-08-13 14:45:13 +00:00
$Id: README,v 1.2 2002/08/13 14:45:12 fishwaldo Exp $
2002-08-13 14:34:25 +00:00
--------------
After negotiating an incoming/outgoing server connection, the ircd will
fork, then execve servlink, with fd 0 as one end of a control pipe and
fd 1 as one end of a data pipe. fd 2 will be the socket connected to
the remote server.
The data pipe is used by the ircd to send/receive normal, decrypted,
uncompressed IRC commands to/from the remote server. The socket is used to
send the (processed) data to the remote server, and receive the data from
the remote server.
The control pipe is used to activate encryption/compression and to set the
encryption key/algorithm to be used.
Format of control messages:
<u8 command><optional data>
data format:
<u16 len><data>
Commands:
001 - SET_ZIP_OUT_LEVEL
data: yes
description:
set compression level (0 [use default, 6], or 1-9)
002 - START_ZIP_OUT
data: no
description:
all data written to the data pipe will be compressed
prior to being sent to the remote server.
003 - START_ZIP_IN
data: no
description:
all data not yet read from the slink program will be
decompressed before reading
004 - SET_CRYPT_IN_CIPHER
data: <u8 cipher id>
001 - BLOWFISH
002 - CAST
003 - DES
004 - 3DES
005 - IDEA
006 - RC5 ( 8 rounds)
007 - RC5 (12 rounds)
008 - RC5 (16 rounds)
cannot be called whilst decryption is active.
005 - SET_CRYPT_IN_KEY
data: <key>
cannot be called whilst decryption is active.
006 - START_CRYPT_IN
007 - SET_CRYPT_OUT_CIPHER
data: <u8 cipher id>
001 - BLOWFISH
002 - CAST
003 - DES
004 - 3DES
005 - IDEA
006 - RC5 ( 8 rounds)
007 - RC5 (12 rounds)
008 - RC5 (16 rounds)
cannot be called whilst encryption is active.
008 - SET_CRYPT_OUT_KEY
data: <key>
cannot be called whilst encryption is active.
009 - START_CRYPT_OUT
010 - INJECT_RECVQ
data: recvq
Used before INIT to inject any data read from the server fd which
should be pre-processed by servlink before being sent back
to the LOCAL_FD through the data fd.
011 - INJECT_SENDQ
data: sendq
As above, but sent to remote server without processing.
012 - INIT
013 - ZIPSTATS
request to send ziplinks statistics reply.
replies
001 - ERROR
data: u32 len/char error[len]
fatal error message.
002 - ZIPSTATS
data: u32 in/u32 in_wire/u32 out/u32 out_wire
ziplinks commpression statistics