mirror of
https://github.com/samba-team/samba.git
synced 2025-02-28 01:58:17 +03:00
libreplace: move rep_socketpair() to its own module.
Prototype is now in system/network.h, implementation in socketpair.c, and check in socketpair.m4. Now the last networking function has vanished from replace.c. Michael (cherry picked from commit 94ac8a25be15b55f66eff96fdddc2fdc71a43b1e) (This used to be commit 6c53753246b8108fe1277b34958e122bd800c4e7)
This commit is contained in:
parent
b2ec8372ba
commit
b57d67c406
@ -158,7 +158,7 @@ fi
|
||||
AC_CHECK_FUNCS(seteuid setresuid setegid setresgid chroot bzero strerror)
|
||||
AC_CHECK_FUNCS(vsyslog setlinebuf mktime ftruncate chsize rename)
|
||||
AC_CHECK_FUNCS(waitpid strlcpy strlcat initgroups memmove strdup)
|
||||
AC_CHECK_FUNCS(pread pwrite strndup strcasestr strtok_r mkdtemp socketpair)
|
||||
AC_CHECK_FUNCS(pread pwrite strndup strcasestr strtok_r mkdtemp)
|
||||
AC_CHECK_FUNCS(isatty)
|
||||
AC_HAVE_DECL(setresuid, [#include <unistd.h>])
|
||||
AC_HAVE_DECL(setresgid, [#include <unistd.h>])
|
||||
@ -334,6 +334,7 @@ m4_include(inet_ntoa.m4)
|
||||
m4_include(getaddrinfo.m4)
|
||||
m4_include(repdir.m4)
|
||||
m4_include(getifaddrs.m4)
|
||||
m4_include(socketpair.m4)
|
||||
|
||||
AC_CHECK_FUNCS([syslog printf memset memcpy],,[AC_MSG_ERROR([Required function not found])])
|
||||
|
||||
|
@ -585,25 +585,3 @@ int rep_unsetenv(const char *name)
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_SOCKETPAIR
|
||||
int rep_socketpair(int d, int type, int protocol, int sv[2])
|
||||
{
|
||||
if (d != AF_UNIX) {
|
||||
errno = EAFNOSUPPORT;
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (protocol != 0) {
|
||||
errno = EPROTONOSUPPORT;
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (type != SOCK_STREAM) {
|
||||
errno = EOPNOTSUPP;
|
||||
return -1;
|
||||
}
|
||||
|
||||
return pipe(sv);
|
||||
}
|
||||
#endif
|
||||
|
@ -212,7 +212,7 @@ int rep_dlclose(void *handle);
|
||||
|
||||
#ifndef HAVE_SOCKETPAIR
|
||||
#define socketpair rep_socketpair
|
||||
int rep_socketpair(int d, int type, int protocol, int sv[2]);
|
||||
/* prototype is in system/network.h */
|
||||
#endif
|
||||
|
||||
#ifndef PRINTF_ATTRIBUTE
|
||||
|
46
source3/lib/replace/socketpair.c
Normal file
46
source3/lib/replace/socketpair.c
Normal file
@ -0,0 +1,46 @@
|
||||
/*
|
||||
* Unix SMB/CIFS implementation.
|
||||
* replacement routines for broken systems
|
||||
* Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2006
|
||||
* Copyright (C) Michael Adam <obnox@samba.org> 2008
|
||||
*
|
||||
* ** NOTE! The following LGPL license applies to the replace
|
||||
* ** library. This does NOT imply that all of Samba is released
|
||||
* ** under the LGPL
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library 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
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "replace.h"
|
||||
#include "system/network.h"
|
||||
|
||||
int rep_socketpair(int d, int type, int protocol, int sv[2])
|
||||
{
|
||||
if (d != AF_UNIX) {
|
||||
errno = EAFNOSUPPORT;
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (protocol != 0) {
|
||||
errno = EPROTONOSUPPORT;
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (type != SOCK_STREAM) {
|
||||
errno = EOPNOTSUPP;
|
||||
return -1;
|
||||
}
|
||||
|
||||
return pipe(sv);
|
||||
}
|
1
source3/lib/replace/socketpair.m4
Normal file
1
source3/lib/replace/socketpair.m4
Normal file
@ -0,0 +1 @@
|
||||
AC_CHECK_FUNCS(socketpair,[],[LIBREPLACEOBJ="${LIBREPLACEOBJ} socketpair.o"])
|
@ -143,6 +143,11 @@ int rep_getifaddrs(struct ifaddrs **);
|
||||
void rep_freeifaddrs(struct ifaddrs *);
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_SOCKETPAIR
|
||||
/* define is in "replace.h" */
|
||||
int rep_socketpair(int d, int type, int protocol, int sv[2]);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Some systems have getaddrinfo but not the
|
||||
* defines needed to use it.
|
||||
|
Loading…
x
Reference in New Issue
Block a user