sctp_recvv provides an extensible way for the SCTP stack to pass up different SCTP attributes associated
with a received message to an application. There are two types of attributes that can be returned by
this call: the attribute of the received message and the attribute of the next message in the receive
buffer. The caller enables the SCTP_RECVRCVINFO and SCTP_RECVNXTINFO socket options, respectively, to
receive these attributes. Attributes of the received message are returned in struct sctp_rcvinfo, and
attributes of the next message are returned in struct sctp_nxtinfo. If both options are enabled, both
attributes are returned using the following structure.
struct sctp_recvv_rn {
struct sctp_rcvinfo recvv_rcvinfo;
struct sctp_nxtinfo recvv_nxtinfo;
};
sd is the socket descriptor. iov is the scatter buffer, and only one user message is returned in this
buffer. iovlen is the number of elements in iov. from is a pointer to a buffer to be filled with the
sender of the received message's address. fromlen is an in/out parameter describing the from length.
info is a pointer to the buffer to hold the attributes of the received message, the structure type of
info is determined by the info_type parameter. infolen is an in/out parameter describing the size of the
info buffer. On return, infotype is set to the type of the info buffer, and the current defined values
are as follows:
SCTP_RECVV_NOINFO
If neither SCTP_RECVRCVINFO nor SCTP_RECVNXTINFO options are enabled, no attribute will be
returned. If only the SCTP_RECVNXTINFO option is enabled but there is no next message in the
buffer, no attribute will be returned. In these cases, *info_type will be set to
SCTP_RECVV_NOINFO.
SCTP_RECVV_RCVINFO
The type of info is struct sctp_rcvinfo, and the attribute relates to the received message.
SCTP_RECVV_NXTINFO
The type of info is struct sctp_nxtinfo, and the attribute relates to the next message in the
receive buffer. This is the case when only the SCTP_RECVNXTINFO option is enabled and there is a
next message in the buffer.
SCTP_RECVV_RN
The type of info is struct sctp_recvv_rn. The recvv_rcvinfo field is the attribute of the
received message, and the recvv_nxtinfo field is the attribute of the next message in the buffer.
This is the case when both SCTP_RECVRCVINFO and SCTP_RECVNXTINFO options are enabled and there is
a next message in the receive buffer.
flags is pointer to an integer to be filled with any message flags (e.g., MSG_NOTIFICATION).