You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.8 KiB
63 lines
1.8 KiB
/* SCTP kernel Implementation: User API extensions.
|
|
*
|
|
* opt_info.c
|
|
*
|
|
* Distributed under the terms of the LGPL v2.1 as described in
|
|
* http://www.gnu.org/copyleft/lesser.txt
|
|
*
|
|
* This file is part of the user library that offers support for the
|
|
* SCTP kernel Implementation. The main purpose of this
|
|
* code if to provide the SCTP Socket API mappings for user
|
|
* application to interface with the SCTP in kernel.
|
|
*
|
|
* This implementation is based on the Socket API Extensions for SCTP
|
|
* defined in <draft-ietf-tsvwg-sctpsocket-10.txt.
|
|
*
|
|
* (C) Copyright IBM Corp. 2003
|
|
* Copyright (c) 2002 Intel Corporation.
|
|
*
|
|
* Written or modified by:
|
|
* Ardelle Fan <ardelle.fan@intel.com>
|
|
*/
|
|
|
|
#include <sys/socket.h> /* struct sockaddr_storage, setsockopt() */
|
|
#include <netinet/sctp.h> /* SCTP_SOCKOPT_BINDX_* */
|
|
#include <errno.h>
|
|
|
|
/* Support the sctp_opt_info() interface.
|
|
*
|
|
* See Sockets API Extensions for SCTP. Section 7.
|
|
*
|
|
* Pass sctp option information pass both in to and out of the SCTP stack.
|
|
* This is a new SCTP API described in the section 7 of the Sockets API
|
|
* Extensions for SCTP. This is implemented using the getsockopt() interface.
|
|
*/
|
|
int
|
|
sctp_opt_info(int sd, sctp_assoc_t id, int opt, void *arg, socklen_t *size)
|
|
{
|
|
switch (opt) {
|
|
case SCTP_RTOINFO:
|
|
case SCTP_ASSOCINFO:
|
|
case SCTP_INITMSG:
|
|
case SCTP_NODELAY:
|
|
case SCTP_AUTOCLOSE:
|
|
case SCTP_PRIMARY_ADDR:
|
|
case SCTP_DISABLE_FRAGMENTS:
|
|
case SCTP_PEER_ADDR_PARAMS:
|
|
case SCTP_DEFAULT_SEND_PARAM:
|
|
case SCTP_EVENTS:
|
|
case SCTP_I_WANT_MAPPED_V4_ADDR:
|
|
case SCTP_MAXSEG:
|
|
case SCTP_STATUS:
|
|
case SCTP_GET_PEER_ADDR_INFO:
|
|
case SCTP_AUTH_ACTIVE_KEY:
|
|
case SCTP_PEER_AUTH_CHUNKS:
|
|
case SCTP_LOCAL_AUTH_CHUNKS:
|
|
*(sctp_assoc_t *)arg = id;
|
|
return getsockopt(sd, IPPROTO_SCTP, opt, arg, size);
|
|
default:
|
|
return ENOTSUP;
|
|
}
|
|
|
|
} /* sctp_opt_info() */
|