Man page - sctp_recvv(3)
Packages contains this manual
Manual
SCTP_RECVV
NAMESYNOPSIS
DESCRIPTION
RETURN VALUE
SEE ALSO
NAME
sctp_recvv - Receive a message from a SCTP socket with an extensible way.
SYNOPSIS
#include
<sys/types.h>
#include <sys/socket.h>
#include <netinet/sctp.h>
int
sctp_recvv(int
sd
, const struct iovec *
iov
, int
iovlen
,
struct sockaddr *
from
, socklen_t *
fromlen
, void *
info
,
socklen_t *
infolen
, unsigned int *
infotype
, int *
flags
);
DESCRIPTION
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).
RETURN VALUE
On success, sctp_recvv returns the number of bytes received or -1 if an error occurred.
SEE ALSO
sctp (7) sctp_bindx (3), sctp_connectx (3), sctp_sendmsg (3), sctp_sendv (3), sctp_send (3), sctp_peeloff (3), sctp_getpaddrs (3), sctp_getladdrs (3), sctp_opt_info (3)