logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

sctp_recvv - Receive a message from a SCTP socket with an extensible way.

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).

Name

       sctp_recvv - Receive a message from a SCTP socket with an extensible way.

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)

Linux 4.16                                         2018-04-29                                      SCTP_RECVV(3)

Synopsis

#include<sys/types.h>#include<sys/socket.h>#include<netinet/sctp.h>intsctp_recvv(intsd,conststructiovec*iov,intiovlen,structsockaddr*from,socklen_t*fromlen,void*info,socklen_t*infolen,unsignedint*infotype,int*flags);

See Also