Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
ldmud/doc/hook/telnet_neg
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
71 lines (54 sloc)
2.78 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SYNOPSIS | |
#include <sys/driver_hooks.h> | |
set_driver_hook(H_TELNET_NEG, value) | |
<value> being: | |
void|mixed <name>(int action, int option [, int * opts ] ) | |
void|mixed <closure>(int action, int option [, int * opts ] ) | |
DESCRIPTION | |
Optional hook to specifiy how to perform a single telnet | |
negotiation. Hook setting may be any closure or a string. If | |
not set, most telnet options are rejected (read: only a very | |
minimal negotiation takes place). | |
The hook is called whenever the driver receives a demand for | |
option negotiation for any option the driver does not handle itself. | |
By default, the driver deals with the following options: | |
TELOPT_ECHO: Echo option | |
TELOPT_SGA: Suppress Go Ahead (nearly always on) | |
TELOPT_COMPRESS: Mud client compression protocol (obsolete) | |
TELOPT_COMPRESS2: Mud client compression protocol V2 | |
For all other telnet options negotiations, this hook is called. | |
The hook has then to perform the negotiation using the efun | |
binary_message(). | |
Alternatively, if H_NOECHO is set, this hook is called for | |
_all_ telnet data received. | |
If the setting is a string, it used as the name of an lfun to | |
call in this_player(). Closures are just called, with unbound | |
lambda-closures being bound to this_player() prior to execution. | |
The hook is called for a 'DO/DONT/WILL/WONT <opt>' with the action | |
(DO/DONT/...) as the first, and <opt> as the second argument. | |
For example:, if the driver receives the sequence | |
IAC SB <opt> <opts>... | |
followed by IAC SB/SE, the hook is called with 'SB' as first | |
argument, <opt> as second, and <opts> as an array of integers as | |
third argument. | |
REMARKS | |
An incomplete list of telnet negotiations this hook is called | |
for includes the following: | |
SB: Suboption negotiation | |
TELOPT_LINEMODE: linemode | |
TELOPT_NAWS: window size | |
TELOPT_TTYPE: terminal type | |
TELOPT_TM: timing mark | |
TELOPT_NEWENV: remote environment variables | |
TELOPT_ENVIRON: remote environment variables | |
TELOPT_XDISPLOC: remote X display address | |
TELOPT_TSPEED: terminal speed | |
TELOPT_BINARY: binary data, needed for non-ASCII charsets | |
TELOPT_EOR: TinyFugue prompt marker (together with EOR) | |
TELOPT_MSP: Mud Sound Protocol | |
TELOPT_MXP: Mud Extension Protocol | |
TELOPT_MSSP: Mud Server Status Protocol | |
TELOPT_GMCP: Generic Mud Communication Protocol | |
HISTORY | |
SEE ALSO | |
hooks(C), telnet(C), no_echo(H) |