From 2d1e1f7e2e9a1bc30c12610462757fd422e7ffb4 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 2 May 2005 10:12:36 +0000 Subject: r6570: Add socket_wrapper library to 3.0. Can be enabled by passing --enable-socket-wrapper to configure (This used to be commit 9c6cdd23ead427a4cb20177dad1c87da9594a4fe) --- source3/include/includes.h | 6 ++++- source3/include/socket_wrapper.h | 48 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 source3/include/socket_wrapper.h (limited to 'source3/include') diff --git a/source3/include/includes.h b/source3/include/includes.h index a6db058708..1fabe44e0e 100644 --- a/source3/include/includes.h +++ b/source3/include/includes.h @@ -276,7 +276,6 @@ #include #endif - #ifdef HAVE_SYS_MOUNT_H #include #endif @@ -788,6 +787,11 @@ extern int errno; #define NGROUPS_MAX 32 /* Guess... */ #endif +#ifdef SOCKET_WRAPPER +#define SOCKET_WRAPPER_REPLACE +#include "include/socket_wrapper.h" +#endif + /* Our own pstrings and fstrings */ #include "pstring.h" diff --git a/source3/include/socket_wrapper.h b/source3/include/socket_wrapper.h new file mode 100644 index 0000000000..6da5a2980c --- /dev/null +++ b/source3/include/socket_wrapper.h @@ -0,0 +1,48 @@ +/* + Copyright (C) Jelmer Vernooij 2005 + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#ifndef __SOCKET_WRAPPER_H__ +#define __SOCKET_WRAPPER_H__ + +int swrap_socket(int domain, int type, int protocol); +int swrap_accept(int s, struct sockaddr *addr, socklen_t *addrlen); +int swrap_connect(int s, const struct sockaddr *serv_addr, socklen_t addrlen); +int swrap_bind(int s, const struct sockaddr *myaddr, socklen_t addrlen); +int swrap_getpeername(int s, struct sockaddr *name, socklen_t *addrlen); +int swrap_getsockname(int s, struct sockaddr *name, socklen_t *addrlen); +int swrap_getsockopt(int s, int level, int optname, void *optval, socklen_t *optlen); +int swrap_setsockopt(int s, int level, int optname, const void *optval, socklen_t optlen); +ssize_t swrap_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen); +ssize_t swrap_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); +int swrap_close(int); + +#ifdef SOCKET_WRAPPER_REPLACE +#define accept swrap_accept +#define connect swrap_connect +#define bind swrap_bind +#define getpeername swrap_getpeername +#define getsockname swrap_getsockname +#define getsockopt swrap_getsockopt +#define setsockopt swrap_setsockopt +#define recvfrom swrap_recvfrom +#define sendto swrap_sendto +#define socket swrap_socket +#define close swrap_close +#endif + +#endif /* __SOCKET_WRAPPER_H__ */ -- cgit