ldmud-3.4.1/doc/
ldmud-3.4.1/doc/efun.de/
ldmud-3.4.1/doc/efun/
ldmud-3.4.1/doc/man/
ldmud-3.4.1/doc/other/
ldmud-3.4.1/mud/
ldmud-3.4.1/mud/heaven7/
ldmud-3.4.1/mud/lp-245/
ldmud-3.4.1/mud/lp-245/banish/
ldmud-3.4.1/mud/lp-245/doc/
ldmud-3.4.1/mud/lp-245/doc/examples/
ldmud-3.4.1/mud/lp-245/doc/sefun/
ldmud-3.4.1/mud/lp-245/log/
ldmud-3.4.1/mud/lp-245/obj/Go/
ldmud-3.4.1/mud/lp-245/players/lars/
ldmud-3.4.1/mud/lp-245/room/death/
ldmud-3.4.1/mud/lp-245/room/maze1/
ldmud-3.4.1/mud/lp-245/room/sub/
ldmud-3.4.1/mud/lp-245/secure/
ldmud-3.4.1/mud/morgengrauen/
ldmud-3.4.1/mud/morgengrauen/lib/
ldmud-3.4.1/mud/sticklib/
ldmud-3.4.1/mud/sticklib/src/
ldmud-3.4.1/mudlib/uni-crasher/
ldmud-3.4.1/pkg/
ldmud-3.4.1/pkg/debugger/
ldmud-3.4.1/pkg/diff/
ldmud-3.4.1/pkg/misc/
ldmud-3.4.1/src/autoconf/
ldmud-3.4.1/src/hosts/
ldmud-3.4.1/src/hosts/GnuWin32/
ldmud-3.4.1/src/hosts/amiga/
ldmud-3.4.1/src/hosts/win32/
ldmud-3.4.1/src/ptmalloc/
ldmud-3.4.1/src/util/
ldmud-3.4.1/src/util/erq/
ldmud-3.4.1/src/util/indent/hosts/next/
ldmud-3.4.1/src/util/xerq/
ldmud-3.4.1/src/util/xerq/lpc/
ldmud-3.4.1/src/util/xerq/lpc/www/
ldmud-3.4.1/test/t-030925/
ldmud-3.4.1/test/t-040413/
ldmud-3.4.1/test/t-041124/
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:

            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_COMPRESS:  Mud Compression Protocol
            TELOPT_COMPRESS2: Mud Compression Protocol
            TELOPT_MSP:       Mud Sound Protocol
            TELOPT_MXP:       Mud Extension Protocol

        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 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.

HISTORY

SEE ALSO
        hooks(C), telnet(C), no_echo(H)