NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | ATTRIBUTES | SEE ALSO | NOTES
#include <tsix/t6attrs.h>int t6recvfrom(int sock, void *buffer, size_t len, int flags, struct sockaddr *name, Psocklen_t namelenp, t6attr_t handle, t6mask_t *new_mask);
t6recvfrom() receives data and its associated security attributes from a communication endpoint. The from and fromlen parameters are used only if you wish to receive the source address for the data. This information may not be applicable for some trusted endpoints. If not used, these fields should be set to 0. If from is not a NULL pointer, the source address of the message is filled in. fromlen is a value-result parameter, initialized to the size of the buffer associated with from, and modified on return to indicate the actual size of the address stored there. The length of the message is returned. If a message is too long to fit in the supplied buffer, excess bytes may be discarded depending on the type of socket from which the message is received. (See socket(3SOCKET).)
The flags parameter is formed by ORing one or more of these values:
Read any out-of-band data present on the socket rather than the regular in-band data. If attr_ptr is not NULL, out-of-band data security attributes are also retrieved.
Peek at the data present on the socket; the data is returned but not consumed, so that a subsequent receive operation will see the same data. If attr_ptr is not NULL, security attributes of the data are also peeked.
attr_ptr specifies a control structure in which to store those attributes the caller wishes to retrieve. To get an attribute from the control structure, see t6get_attr(3NSL). Any attribute that the receiving process does not care to receive may not be specified in the control structure. This selectivity minimizes the attribute-translation time when passing the attributes out of the kernel.
If the t6new_attr(3NSL) call was made previously with a setting of ON, the security attributes of the received data will be returned only if they have changed from the last set read. *new_attrs is set to the mask of those attributes actually returned. If new attributes are detected, all attributes requested by the receiving process are returned, not just those that have changed.
In order to obtain audit ID, additional audit information, and supplementary group IDs when using connectionless transports, connect(3SOCKET) must be used to associate the peer network address with the local transport endpoint before calling t6recvfrom().
Upon success, t6recvfrom() returns the number of bytes read. Upon failure, t6recvfrom() returns -1 and sets errno.
Always checking the return value is critical. Revocation of access is possible if the received data changes to a level not accessible to the receiving process.
The calls fail if any of these conditions is true:
fd is an invalid file descriptor.
The operation was interrupted by delivery of a signal before any data was available to be received.
An I/O error occurred while reading from or writing to the file system.
There was insufficient user memory available for the operation to complete.
There were insufficient STREAMS resources available for the operation to complete.
fd is not a socket.
A stale NFS file handle exists.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Availability | SUNWtsu |
MT-Level | MT-Safe |
This man page is based on the version from the TSIX(RE) 1.1 Application Programming Interface (API) document; and this interface is available in TSIX(RE) 1.1-API-compliant systems.
Only SOCK_STREAM sockets created in the AF_INET address family support out-of-band data.
NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | ATTRIBUTES | SEE ALSO | NOTES