t_optmgmt - manage options for a transport endpoint
int t_optmgmt(fd, req, ret)
struct t_optmgmt *req;
struct t_optmgmt *ret;
t_optmgmt() enables a transport user to retrieve, verify, or negotiate
protocol options with the transport provider. fd identifies a bound
The req and ret arguments point to a t_optmgmt() structure containing
the following members:
struct netbuf opt;
The opt field identifies protocol options and the flags field is used
to specify the action to take with those options.
The options are represented by a netbuff structure in a manner similar
to the address in t_bind(3N). The maxlen, len, and buf members of the
netbuf structure are described in t_accept(3N). req is used to request
a specific action of the provider and to send options to the provider.
len specifies the number of bytes in the options, buf points to the
options buffer, and maxlen has no meaning for the req argument. The
transport provider may return options and flag values to the user
through ret. For ret, maxlen specifies the maximum size of the options
buffer and buf points to the buffer where the options are to be placed.
On return, len specifies the number of bytes of options returned.
maxlen has no meaning for the req argument, but must be set in the ret
argument to specify the maximum number of bytes the options buffer can
hold. The actual structure and content of the options is imposed by
the transport provider.
The flags field of req can specify one of the following actions:
T_NEGOTIATE Enables the user to negotiate the values of the
options specified in req with the transport
provider. The provider will evaluate the requested
options and negotiate the values, returning the
negotiated values through ret.
T_CHECK Enables the user to verify whether the options
specified in req are supported by the transport
provider. On return, the flags field of ret will
have either T_SUCCESS or T_FAILURE set to indicate
to the user whether the options are supported.
These flags are only meaningful for the T_CHECK
T_DEFAULT Enables a user to retrieve the default options sup-
ported by the transport provider into the opt field
of ret. In req, the len field of opt must be zero
and the buf field may be NULL.
If issued as part of the connectionless-mode service, t_optmgmt() may
block due to flow control constraints. t_optmgmt() will not complete
until the transport provider has processed all previously sent data
0 on success.
-1 on failure and sets t_errno to indicate the error.
TACCES The user does not have permission to negotiate the
TBADF The specified file descriptor does not refer to a
TBADFLAG An invalid flag was specified.
TBADOPT The specified protocol options were in an incorrect
format or contained illegal information.
TBUFOVFLW The number of bytes allowed for an incoming argu-
ment is not sufficient to store the value of that
argument. The information to be returned in ret
will be discarded.
TOUTSTATE The function was issued in the wrong sequence.
TSYSERR The function failed due to a system error and set
errno to indicate the error.
intro(3), t_getinfo(3N), t_open(3N)
21 January 1990 T_OPTMGMT(3N)