diff options
Diffstat (limited to 'replace')
-rw-r--r-- | replace/Makefile.in | 20 | ||||
-rw-r--r-- | replace/build_macros.m4 | 20 | ||||
-rw-r--r-- | replace/configure.ac | 2 | ||||
-rw-r--r-- | replace/getaddrinfo.h | 2 | ||||
-rw-r--r-- | replace/getpass.c | 7 | ||||
-rw-r--r-- | replace/libreplace.m4 | 9 | ||||
-rw-r--r-- | replace/libreplace_cc.m4 | 24 | ||||
-rw-r--r-- | replace/replace.c | 2 | ||||
-rw-r--r-- | replace/snprintf.c | 2 | ||||
-rw-r--r-- | replace/system/network.h | 2 | ||||
-rw-r--r-- | replace/system/passwd.h | 2 | ||||
-rw-r--r-- | replace/test/main.c | 37 |
12 files changed, 90 insertions, 39 deletions
diff --git a/replace/Makefile.in b/replace/Makefile.in index 008d1830b..65f8125ef 100644 --- a/replace/Makefile.in +++ b/replace/Makefile.in @@ -9,8 +9,8 @@ libdir = @libdir@ VPATH = @libreplacedir@ srcdir = @srcdir@ builddir = @builddir@ -buildinstdir = @buildinstdir@ -INSTALL = @INSTALL@ +sharedbuilddir = @sharedbuilddir@ +INSTALLCMD = @INSTALL@ LIBS = @LIBS@ .PHONY: test all showflags install installcheck clean distclean realdistclean @@ -30,14 +30,14 @@ showflags: @echo ' LIBS = $(LIBS)' install: all - mkdir -p $(libdir) - $(INSTALL) libreplace.a $(libdir) + ${INSTALLCMD} -d $(libdir) + ${INSTALLCMD} -m 644 libreplace.a $(libdir) -build-install: all - mkdir -p $(buildinstdir)/include - $(INSTALL) replace.h $(buildinstdir)/include - mkdir -p $(buildinstdir)/lib - $(INSTALL) libreplace.a $(buildinstdir)/lib +shared-build: all + ${INSTALLCMD} -d $(sharedbuilddir)/include + ${INSTALLCMD} -m 644 replace.h $(sharedbuilddir)/include + ${INSTALLCMD} -d $(sharedbuilddir)/lib + ${INSTALLCMD} -m 644 libreplace.a $(sharedbuilddir)/lib libreplace.a: $(OBJS) ar -rcsv $@ $(OBJS) @@ -47,7 +47,7 @@ test: all installcheck: install test -TEST_OBJS = test/testsuite.o test/os2_delete.o test/strptime.o test/getifaddrs.o +TEST_OBJS = test/main.o test/testsuite.o test/os2_delete.o test/strptime.o test/getifaddrs.o testsuite: libreplace.a $(TEST_OBJS) $(CC) -o testsuite $(TEST_OBJS) -L. -lreplace $(LDFLAGS) $(LIBS) diff --git a/replace/build_macros.m4 b/replace/build_macros.m4 index bc3ec729d..c036668cd 100644 --- a/replace/build_macros.m4 +++ b/replace/build_macros.m4 @@ -1,14 +1,14 @@ -AC_DEFUN(BUILD_WITH_BUILD_INST_DIR, - [ AC_ARG_WITH([build-install-dir], - [AC_HELP_STRING([--with-build-install-dir=DIR], - [temporary build directory where libraries are installed [$srcdir/buildinst]])]) +AC_DEFUN(BUILD_WITH_SHARED_BUILD_DIR, + [ AC_ARG_WITH([shared-build-dir], + [AC_HELP_STRING([--with-shared-build-dir=DIR], + [temporary build directory where libraries are installed [$srcdir/sharedbuild]])]) - buildinstdir="$srcdir/buildinst" - if test x"$with_build_install_dir" != x; then - buildinstdir=$with_build_install_dir - CFLAGS="$CFLAGS -I$with_build_install_dir/include" - LDFLAGS="$LDFLAGS -L$with_build_install_dir/lib" + sharedbuilddir="$srcdir/sharedbuild" + if test x"$with_shared_build_dir" != x; then + sharedbuilddir=$with_shared_build_dir + CFLAGS="$CFLAGS -I$with_shared_build_dir/include" + LDFLAGS="$LDFLAGS -L$with_shared_build_dir/lib" fi - AC_SUBST(buildinstdir) + AC_SUBST(sharedbuilddir) ]) diff --git a/replace/configure.ac b/replace/configure.ac index 20a7582b5..0361825a0 100644 --- a/replace/configure.ac +++ b/replace/configure.ac @@ -23,7 +23,7 @@ if test "$ac_cv_prog_gcc" = yes; then fi m4_include(build_macros.m4) -BUILD_WITH_BUILD_INST_DIR +BUILD_WITH_SHARED_BUILD_DIR LIBS="${LIBREPLACE_NETWORK_LIBS}" AC_SUBST(LIBS) diff --git a/replace/getaddrinfo.h b/replace/getaddrinfo.h index dddd699b6..cf040da2d 100644 --- a/replace/getaddrinfo.h +++ b/replace/getaddrinfo.h @@ -75,7 +75,9 @@ in lib/replace we use rep_xxx() #undef getnameinfo #endif #define getnameinfo rep_getnameinfo +#ifndef HAVE_GETNAMEINFO #define HAVE_GETNAMEINFO +#endif extern int rep_getaddrinfo(const char *node, const char *service, const struct addrinfo * hints, struct addrinfo ** res); diff --git a/replace/getpass.c b/replace/getpass.c index 73333b902..0be618fc9 100644 --- a/replace/getpass.c +++ b/replace/getpass.c @@ -187,10 +187,6 @@ char *rep_getpass(const char *prompt) in_fd = fileno(in); if (fgets(buf, bufsize, in) == NULL) { buf[0] = 0; - if (in && in != stdin) { - fclose(in); - } - return buf; } } nread = strlen(buf); @@ -201,8 +197,9 @@ char *rep_getpass(const char *prompt) /* Restore echoing. */ if (echo_off) { - if (gotintr && in_fd == -1) + if (gotintr && in_fd == -1) { in = fopen ("/dev/tty", "w+"); + } if (in != NULL) tcsetattr (fileno (in), TCSANOW, &t); } diff --git a/replace/libreplace.m4 b/replace/libreplace.m4 index 71fa04167..e563acfd7 100644 --- a/replace/libreplace.m4 +++ b/replace/libreplace.m4 @@ -5,7 +5,7 @@ echo "LIBREPLACE_LOCATION_CHECKS: START" dnl find the libreplace sources. This is meant to work both for dnl libreplace standalone builds, and builds of packages using libreplace libreplacedir="" -libreplacepaths="$srcdir $srcdir/lib/replace $srcdir/libreplace $srcdir/../libreplace $srcdir/../replace" +libreplacepaths="$srcdir $srcdir/lib/replace $srcdir/libreplace $srcdir/../libreplace $srcdir/../replace $srcdir/../lib/replace $srcdir/../../../lib/replace" for d in $libreplacepaths; do if test -f "$d/replace.c"; then libreplacedir="$d" @@ -34,13 +34,18 @@ echo "LIBREPLACE_BROKEN_CHECKS: START" dnl find the libreplace sources. This is meant to work both for dnl libreplace standalone builds, and builds of packages using libreplace libreplacedir="" -for d in "$srcdir" "$srcdir/lib/replace" "$srcdir/libreplace" "$srcdir/../libreplace" "$srcdir/../replace"; do +libreplacepaths="$srcdir $srcdir/lib/replace $srcdir/libreplace $srcdir/../libreplace $srcdir/../replace $srcdir/../lib/replace $srcdir/../../../lib/replace" +for d in $libreplacepaths; do if test -f "$d/replace.c"; then libreplacedir="$d" AC_SUBST(libreplacedir) break; fi done +if test x"$libreplacedir" = "x"; then + AC_MSG_ERROR([cannot find libreplace in $libreplacepaths]) +fi + LIBREPLACEOBJ="replace.o" AC_SUBST(LIBREPLACEOBJ) diff --git a/replace/libreplace_cc.m4 b/replace/libreplace_cc.m4 index 0ce0958a9..30c63f2f0 100644 --- a/replace/libreplace_cc.m4 +++ b/replace/libreplace_cc.m4 @@ -109,25 +109,34 @@ AC_CHECK_HEADERS([standards.h]) # Solaris needs HAVE_LONG_LONG defined AC_CHECK_TYPES(long long) +AC_CHECK_SIZEOF(int) +AC_CHECK_SIZEOF(char) +AC_CHECK_SIZEOF(short) +AC_CHECK_SIZEOF(long) +AC_CHECK_SIZEOF(long long) + AC_CHECK_TYPE(uint_t, unsigned int) AC_CHECK_TYPE(int8_t, char) AC_CHECK_TYPE(uint8_t, unsigned char) AC_CHECK_TYPE(int16_t, short) AC_CHECK_TYPE(uint16_t, unsigned short) + +if test $ac_cv_sizeof_int -eq 4 ; then +AC_CHECK_TYPE(int32_t, int) +AC_CHECK_TYPE(uint32_t, unsigned int) +elif test $ac_cv_size_long -eq 4 ; then AC_CHECK_TYPE(int32_t, long) AC_CHECK_TYPE(uint32_t, unsigned long) +else +AC_MSG_ERROR([LIBREPLACE no 32-bit type found]) +fi + AC_CHECK_TYPE(int64_t, long long) AC_CHECK_TYPE(uint64_t, unsigned long long) AC_CHECK_TYPE(size_t, unsigned int) AC_CHECK_TYPE(ssize_t, int) -AC_CHECK_SIZEOF(int) -AC_CHECK_SIZEOF(char) -AC_CHECK_SIZEOF(short) -AC_CHECK_SIZEOF(long) -AC_CHECK_SIZEOF(long long) - AC_CHECK_SIZEOF(off_t) AC_CHECK_SIZEOF(size_t) AC_CHECK_SIZEOF(ssize_t) @@ -158,7 +167,8 @@ AC_CACHE_CHECK([for immediate structures],libreplace_cv_immediate_structures,[ FOOBAR y; } f2[] = { {FOO_ONE} - }; + }; + static const FOOBAR f3[] = {FOO_ONE}; ], libreplace_cv_immediate_structures=yes, libreplace_cv_immediate_structures=no, diff --git a/replace/replace.c b/replace/replace.c index 106c9dfe6..98d799b07 100644 --- a/replace/replace.c +++ b/replace/replace.c @@ -170,7 +170,7 @@ int rep_initgroups(char *name, gid_t id) #include <grp.h> gid_t *grouplst = NULL; - int max_gr = 32; + int max_gr = NGROUPS_MAX; int ret; int i,j; struct group *g; diff --git a/replace/snprintf.c b/replace/snprintf.c index a174dcffe..c54d721ce 100644 --- a/replace/snprintf.c +++ b/replace/snprintf.c @@ -526,7 +526,7 @@ static int dopr(char *buffer, size_t maxlen, const char *format, va_list args_in } } - /* retieve the format arguments */ + /* retrieve the format arguments */ for (pnum = 0; pnum < max_pos; pnum++) { int i; diff --git a/replace/system/network.h b/replace/system/network.h index 077892a54..473d79b5f 100644 --- a/replace/system/network.h +++ b/replace/system/network.h @@ -326,7 +326,7 @@ struct addrinfo { #ifndef SOCKET_WRAPPER_NOT_REPLACE #define SOCKET_WRAPPER_REPLACE #endif -#include "lib/socket_wrapper/socket_wrapper.h" +#include "../socket_wrapper/socket_wrapper.h" #endif #endif diff --git a/replace/system/passwd.h b/replace/system/passwd.h index cad3197cc..9d7de34bc 100644 --- a/replace/system/passwd.h +++ b/replace/system/passwd.h @@ -104,7 +104,7 @@ char *rep_getpass(const char *prompt); #ifndef NSS_WRAPPER_NOT_REPLACE #define NSS_WRAPPER_REPLACE #endif -#include "lib/nss_wrapper/nss_wrapper.h" +#include "../nss_wrapper/nss_wrapper.h" #endif #endif diff --git a/replace/test/main.c b/replace/test/main.c new file mode 100644 index 000000000..9bd12840a --- /dev/null +++ b/replace/test/main.c @@ -0,0 +1,37 @@ +/* + Unix SMB/CIFS implementation. + + libreplace tests + + Copyright (C) Jelmer Vernooij 2006 + + ** NOTE! The following LGPL license applies to the talloc + ** 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" + +struct torture_context; +bool torture_local_replace(struct torture_context *ctx); + +int main(void) +{ + bool ret = torture_local_replace(NULL); + if (ret) + return 0; + return -1; +} |