| SYNOPSIS |
| #include <interactive_info.h> |
| |
| mixed interactive_info(object ob, int what) |
| |
| DESCRIPTION |
| Returns some internal information about the interactive user <ob>. |
| The argument <what> determines which information is returned. |
| |
| It can be either a configuration option as given to |
| configure_interactive() or one of the following options: |
| |
| |
| |
| Connection Information: |
| |
| <what> == II_IP_NAME: |
| The hostname of <ob>. The hostname will asynchronously |
| looked up by the ERQ daemon and might therefore not be |
| available at the time of the first connection. |
| If no name is available the address will be returned. |
| |
| <what> == II_IP_NUMBER: |
| The IP address of <ob> given as a string. |
| |
| <what> == II_IP_PORT: |
| The client port number of <ob>. |
| |
| <what> == II_IP_ADDRESS: |
| The full socket address structure given as an array of bytes. |
| |
| For IPv4 (sockaddr_in): |
| array[0.. 1]: sin_family |
| array[2.. 3]: sin_port |
| array[4.. 7]: sin_addr |
| array[8..15]: undefined. |
| |
| For IPv6 (sockaddr_in6): |
| array[ 0.. 1]: sin6_family |
| array[ 2.. 3]: sin6_port |
| array[ 4.. 7]: sin6_flowinfo |
| array[ 8..23]: sin6_addr |
| array[24..27]: sin6_scope_id |
| |
| <what> == II_MUD_PORT: |
| The server port number that <ob> connected to. |
| |
| |
| |
| Telnet Related Information: |
| |
| <what> == II_MCCP_STATS: |
| Statistics about the current compression of <ob> given |
| as an array ({ uncompressed bytes, compressed bytes }). |
| |
| If the connection is not compressed, 0 is returned. |
| |
| Available only if the driver is compiled with MCCP enabled; |
| __MCCP__ is defined in that case. |
| |
| |
| |
| Input Handling: |
| |
| <what> == II_INPUT_PENDING: |
| If <ob> has an input_to() pending, the object that has called |
| the input_to() is returned, else 0. |
| |
| <what> == II_EDITING: |
| If <ob> is currently editing with ed() and ed() was called with |
| an exit function, then the object that has called ed() |
| will be returned, 0 otherwise. |
| |
| <what> == II_IDLE: |
| The number of seconds that the interactive object <ob> has been |
| idle. |
| |
| <what> == II_NOECHO: |
| The current no-echo mode of <ob>: |
| 0: Normal echo mode |
| 1: no-echo mode was requested (INPUT_NOECHO input is pending) |
| 2: no-echo mode was acknowledged by the client (this does not |
| happen, if the mudlib handles this with the H_NOECHO hook). |
| |
| <what> == II_CHARMODE: |
| Whether charmode is active for <ob>. |
| The values are similar to II_NOECHO. |
| |
| |
| |
| Output Handling: |
| |
| <what> == II_SNOOP_NEXT: |
| Returns the user who is currently snooping <ob>. |
| The calling object must be privileged by the master object |
| via valid_query_snoop(). |
| |
| <what> == II_SNOOP_PREV: |
| Returns the victim who is currently snooped by <ob>. |
| The calling object must be privileged by the master object |
| via valid_query_snoop(). |
| |
| <what> == II_SNOOP_ALL: |
| Returns all objects who are currently snooping <ob>. |
| Only one object can snoop <ob> directly, but that user might |
| be snooped, too, and so building a chain that is returned |
| as an array. |
| |
| The calling object must be privileged by the master object |
| via valid_query_snoop(). |
| |
| |
| HISTORY |
| Introduced in LDMud 3.5.0. |
| |
| SEE ALSO |
| configure_interactive(E), object_info(E), driver_info(E) |