VMS Help  —  TCPIP Services, Programming Interfaces, Socket API Functions, inet6_opt_append()
    Returns the length of an IPv6 extension header with a new option
    and appends the option.
    Format
      #include  <in6.h>
      int inet6_opt_append  ( void *extbuf, size_t extlen, int
                            offset, uint8_t type, size_t len, uint_t
                            align, void **databufp );

1  –  Arguments

 extbuf
    Points to a buffer that contains an extension header. This is
    either a valid pointer or a NULL pointer.
 extlen
    Specifies the length of the extension header to initialize. Valid
    values are 0 if extbuf equals 0, a value returned by inet6_opt_
    finish(), or any number that is a multiple of 8.
 offset
    Specifies the length of the existing extension header. Obtain
    this value from a prior call to inet6_opt_init() or inet6_opt_
    append().
 type
    Specifies the type of option. Specify a value from 2 to 255,
    inclusive, excluding 194.
 len
    Specifies the length of the option data, excluding the option
    type and option length fields. Specify a value from 0 to 255,
    inclusive.
 align
    Specifies the alignment of the option. Specify one of the
    following values: 1, 2, 4, or 8.
 databufp
    Points to a buffer that contains the option data.

2  –  Description

    This function, when called with extbuf as a NULL pointer and
    extlen as 0, returns the updated number of bytes in an extension
    header.
    If you specify extbuf as a valid pointer and valid extlen and
    align arguments, the function returns the same information as in
    the previous case, but also inserts the pad option, initializes
    the type and len fields, and returns a pointer to the location
    for the option content.
    After you call inet6_opt_append(), you can then use the data
    buffer directly or call inet6_opt_set_val() to specify the option
    contents.

3  –  Return Values

    x                  Upon successful completion, the inet6_opt_
                       append() function returns the updated number
                       of bytes in an extension header.
    -1                 Failure

4  –  Errors

    EBADF              The socket descriptor is invalid.
    ECONNABORTED       A connection has been aborted.
    EFAULT             The addr argument is not in a writable part of
                       the user address space.
    EINTR              The accept() function was interrupted by a
                       signal before a valid connection arrived.
    EINVAL             The socket is not accepting connections.
    EMFILE             There are too many open file descriptors.
    ENFILE             The maximum number of file descriptors in the
                       system is already open.
    ENETDOWN           TCP/IP Services was not started.
    ENOBUFS            The system has insufficient resources to
                       complete the call.
    ENOMEM             The system was unable to allocate kernel
                       memory.
    ENOTSOCK           The socket descriptor is invalid.
    EOPNOTSUPP         The reference socket is not of type SOCK_
                       STREAM.
    EPROTO             A protocol error occurred.
    EWOULDBLOCK        The socket is marked nonblocking, and no
                       connections are present to be accepted.
Close Help