mirror of https://gerrit.osmocom.org/libtelnet
document ZMP functions
This commit is contained in:
parent
e22b4771c7
commit
1887735b22
55
README
55
README
|
@ -18,11 +18,6 @@ code under copyright law.
|
||||||
|
|
||||||
*** TODO ***
|
*** TODO ***
|
||||||
|
|
||||||
- the negotiate callback behavior needs to be redone so that the
|
|
||||||
app immediately confirms; right now if you set ev->accept=1 when
|
|
||||||
receiving a request to enable you can't immediately start sending
|
|
||||||
ubnegotiations because the confirmation hasn't been sent yet. :/
|
|
||||||
? ZMP parsing
|
|
||||||
? MSSP parsing
|
? MSSP parsing
|
||||||
? TTYPE parsing
|
? TTYPE parsing
|
||||||
? ENVIRON/NEW-ENVIRON parsing
|
? ENVIRON/NEW-ENVIRON parsing
|
||||||
|
@ -416,6 +411,13 @@ IId. Event Handling
|
||||||
The event->command value will be 1 if compression has started and
|
The event->command value will be 1 if compression has started and
|
||||||
will be 0 if compression has ended.
|
will be 0 if compression has ended.
|
||||||
|
|
||||||
|
TELNET_EV_ZMP
|
||||||
|
The ZMP event is sent whenever a ZMP command has been received.
|
||||||
|
The event->argc field is the number of ZMP parameters, including
|
||||||
|
the command name, that have been received. The event->argv field
|
||||||
|
is an array of strings, one for each ZMP parameter. The command
|
||||||
|
name will be in event->argv[0].
|
||||||
|
|
||||||
TELNET_EV_WARNING
|
TELNET_EV_WARNING
|
||||||
The WARNING event is sent whenever something has gone wrong inside
|
The WARNING event is sent whenever something has gone wrong inside
|
||||||
of libtelnet (possibly due to malformed data sent by the other
|
of libtelnet (possibly due to malformed data sent by the other
|
||||||
|
@ -501,7 +503,48 @@ If a connection is in PROXY mode and COMPRESS2 support is enabled
|
||||||
then libtelnet will automatically detect the start of a COMPRESS2
|
then libtelnet will automatically detect the start of a COMPRESS2
|
||||||
stream, in either the sending or receiving direction.
|
stream, in either the sending or receiving direction.
|
||||||
|
|
||||||
VI. TELNET PROXY UTILITY
|
VI. ZENITH MUD PROTOCOL (ZMP) SUPPORT
|
||||||
|
=====================================================================
|
||||||
|
|
||||||
|
The Zenith MUD Protocol allows applications to send messages across
|
||||||
|
the TELNET connection outside of the normal user input/output data
|
||||||
|
stream. libtelnet offers some limited support for receiving and
|
||||||
|
sending ZMP commands to make implementing a full ZMP stack easier.
|
||||||
|
For more information on ZMP:
|
||||||
|
|
||||||
|
http://zmp.sourcemud.org/
|
||||||
|
|
||||||
|
For a server to enable ZMP, it must send the WILL ZMP negotitaion:
|
||||||
|
|
||||||
|
telnet_negotiate(&telnet, TELNET_WILL, TELNET_TELOPT_ZMP);
|
||||||
|
|
||||||
|
For a client to support ZMP it must include ZMP in the telopt table
|
||||||
|
passed to telnet_init(), with the him field set to TELNET_DO:
|
||||||
|
|
||||||
|
{ TELNET_TELOPT_ZMP, TELNET_WONT, TELNET_DO },
|
||||||
|
|
||||||
|
Note that while ZMP is a bi-directional protocol, it is only ever
|
||||||
|
enabled on the server end of the connection. This automatically
|
||||||
|
enables the client to send ZMP commands. The client must never
|
||||||
|
attempt to negotiate ZMP directly using telnet_negotiate().
|
||||||
|
|
||||||
|
Once ZMP is enabled, any ZMP commands received will automatically be
|
||||||
|
sent to the event handler function with the TELNET_EV_ZMP event
|
||||||
|
code.
|
||||||
|
|
||||||
|
To send ZMP commands to the remote end, use either telnet_send_zmp()
|
||||||
|
or telnet_send_zmpv().
|
||||||
|
|
||||||
|
int telnet_send_zmp(telnet_t *telnet, size_t argv,
|
||||||
|
const char **argv);
|
||||||
|
Sends a ZMP command to the remote end. The argc parameter is the
|
||||||
|
number of ZMP parameters (including the command name!) to be sent.
|
||||||
|
The argv parameter is an array of strings containing the
|
||||||
|
parameters. The element in argv[0] is the command name itself.
|
||||||
|
The argv array must have at least as many elements as the value
|
||||||
|
argc.
|
||||||
|
|
||||||
|
VII. TELNET PROXY UTILITY
|
||||||
=====================================================================
|
=====================================================================
|
||||||
|
|
||||||
The telnet-proxy utility is a small application that serves both as a
|
The telnet-proxy utility is a small application that serves both as a
|
||||||
|
|
Loading…
Reference in New Issue