Source: sctpsocketwrapper.h
|
|
|
|
/*
* $Id: sctpsocketwrapper_h.html,v 1.2 2001/08/17 12:07:32 dreibh Exp $
*
* SCTP implementation according to RFC 2960.
* Copyright (C) 1999-2001 by Thomas Dreibholz
*
* Realized in co-operation between Siemens AG
* and University of Essen, Institute of Computer Networking Technology.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* There are two mailinglists available at www.sctp.de which should be used for
* any discussion related to this implementation.
*
* Contact: discussion@sctp.de
* dreibh@exp-math.uni-essen.de
*
* Purpose: SCTP Socket Wrapper
*
*/
#ifndef SCTPSOCKETWRAPPER_H
#define SCTPSOCKETWRAPPER_H
#ifndef IPPROTO_SCTP
#define IPPROTO_SCTP 132
#endif
/**
* Check, if SCTP support is available.
*
* @return true, if SCTP is available; false otherwise.
*/
bool checkSCTP();
#ifdef USE_SCTP_WRAPPER
#include <sys/types.h>
#include <sys/socket.h>
#include <fcntl.h>
#ifdef __cplusplus
extern "C" {
#endif
int ext_socket(int domain, int type, int protocol);
int ext_bind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen);
int ext_connect(int sockfd, const struct sockaddr *serv_addr,
socklen_t addrlen);
int ext_listen(int s, int backlog);
int ext_accept(int s, struct sockaddr *addr, socklen_t *addrlen);
int ext_shutdown(int s, int how);
int ext_close(int fd);
int ext_getsockname(int sockfd, struct sockaddr* name, socklen_t* namelen);
int ext_getpeername(int sockfd, struct sockaddr* name, socklen_t* namelen);
int ext_fcntl(int fd, int cmd = 0, struct flock * lock = NULL);
int ext_ioctl(int d, int request, const void* argp);
int ext_getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);
int ext_setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);
int ext_recv(int s, void *buf, size_t len, int flags);
int ext_recvfrom(int s, void *buf, size_t len, int flags,
struct sockaddr *from, socklen_t *fromlen);
int ext_recvmsg(int s, struct msghdr *msg, int flags);
int ext_send(int s, const void *msg, size_t len, int flags);
int ext_sendto(int s, const void *msg, size_t len, int flags,
const struct sockaddr *to, socklen_t tolen);
int ext_sendmsg(int s, const struct msghdr *msg, int flags);
ssize_t ext_read(int fd, void *buf, size_t count);
ssize_t ext_write(int fd, const void *buf, size_t count);
#define SCTP_BINDX_ADD_ADDR 1
#define SCTP_BINDX_REM_ADDR 2
int ext_bindx(int sockfd,
struct sockaddr_storage* addrs,
int addrcnt,
int flags);
#ifdef __cplusplus
}
#endif
#else
#define ext_socket(a,b,c) ::socket(a,b,c)
#define ext_bind(a,b,c) ::bind(a,b,c)
#define ext_bindx(a,b,c,d) ::bindx(a,b,c,d)
#define ext_connect(a,b,c) ::connect(a,b,c)
#define ext_listen(a,b) ::listen(a,b)
#define ext_accept(a,b,c) ::accept(a,b,c)
#define ext_shutdown(a,b) ::shutdown(a,b)
#define ext_close(a) ::close(a)
#define ext_getsockname(a,b,c) ::getsockname(a,b,c)
#define ext_getpeername(a,b,c) ::getpeername(a,b,c)
#define ext_fcntl(a,b,c) ::fcntl(a,b,c)
#define ext_ioctl(a,b,c) ::ioctl(a,b,c)
#define ext_getsockopt(a,b,c,d,e) ::getsockopt(a,b,c,d,e)
#define ext_setsockopt(a,b,c,d,e) ::setsockopt(a,b,c,d,e)
#define ext_recv(a,b,c,d) ::recv(a,b,c,d)
#define ext_recvfrom(a,b,c,d,e,f) ::recvfrom(a,b,c,d,e,f)
#define ext_recvmsg(a,b,c) ::recvmsg(a,b,c)
#define ext_send(a,b,c,d) ::send(a,b,c,d)
#define ext_sendto(a,b,c,d,e,f) ::sendto(a,b,c,d,e,f)
#define ext_sendmsg(a,b,c) ::sendmsg(a,b,c)
#define ext_read(a,b,c) ::read(a,b,c)
#define ext_write(a,b,c) ::write(a,b,c)
int bindx(int sockfd,
struct sockaddr_storage* addrs,
int addrcnt,
int flags);
#endif
#endif
Generated by: dreibh@kappes on Fri Aug 17 14:08:47 2001, using kdoc 2.0a53. |