$Sock_Info

From m204wiki
Revision as of 19:54, 19 January 2012 by JAL (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Get info about a socket

Most Sirius $functions have been deprecated in favor of Object Oriented methods. There is currently no direct OO equivalent for this $function.

$Sock_info retrieves socket information.

Syntax

%info = $Sock_Info(socket, infoType)

Syntax terms

%info A string that contains the requested information.
socket A string that is the socket identifier.
infoType One of the following string indicators of the information to be retrieved about the socket:
Value Description
CAPTURE Retrieve current print capture setting of socket (see $Sock_Capture). The socket need not be OPEN.
REMOTE Retrieve dotted IP address of remote host, followed by blank and remote port number. The socket must be OPEN; if it is not, the string "RESET" is returned.
STAT Retrieve socket state. The socket need not be OPEN. The returned value will be one of the following:
CONN
Socket OPEN and enabled for sending in both directions
FINR
Socket OPEN, remote stopped sending, local enabled for sending ("FIN received but not sent")
FINS
Socket OPEN, local stopped sending, remote enabled for sending ("FIN sent but not received")
FINBOTH
Socket OPEN, local and remote stopped sending ("FIN sent and received")
RESET
Socket is RESET (no longer connected)


Note: Since the status of OPEN sockets may include several more status types in future releases, test for OPEN sockets by testing for the string "RESET":

If $sock_info(%sk, 'STATUS') Ne 'RESET' ...

opt Any of the strings that may be passed as the second argument to $Sock_Set (for example, CHAR or PRSTOK). For some of these, the socket must be OPEN; if not, the string "RESET" is returned. To view the arguments that require an OPEN socket, see $Sock_Set.

The $Sock_Info function returns either the requested value or, as noted above, the string "RESET". If $Sock_Info is invoked with a socket that is RESET, the results depend on several factors:

  • If argument two is ONRESET, the operation is performed normally, and there is no indication of the fact that the socket is RESET.
  • Otherwise, if argument two is a keyword which does not require an OPEN socket, and ONRESET CONTINUE, CANCELC, or LABELC is in effect for the socket, the string RESET is returned and the last error information is set.
  • Otherwise, if ONRESET CONTINUE is in effect for the socket, the string RESET is returned and the last error information is set.
  • Otherwise the request is canceled or the ONRESET label is jumped to, as explained in "Handling connection errors and RESET sockets".