diff options
| author | Jelmer Vernooij <jelmer@samba.org> | 2008-09-16 16:30:14 +0200 | 
|---|---|---|
| committer | Jelmer Vernooij <jelmer@samba.org> | 2008-09-16 16:30:14 +0200 | 
| commit | 0888ffa2b7382a1c4781ae54bad53eac3b229365 (patch) | |
| tree | 5a0fb9930c68f307954f87a9aa97e83740d3ab59 /source3/lib/replace | |
| parent | ec1c854f2175823bd1ad39c2e272d1b3fab80bf1 (diff) | |
| download | samba-0888ffa2b7382a1c4781ae54bad53eac3b229365.tar.gz samba-0888ffa2b7382a1c4781ae54bad53eac3b229365.tar.bz2 samba-0888ffa2b7382a1c4781ae54bad53eac3b229365.zip  | |
Make Samba 3 and Samba 4 both use the same single copy of libreplace.
Diffstat (limited to 'source3/lib/replace')
65 files changed, 0 insertions, 14650 deletions
diff --git a/source3/lib/replace/.checker_innocent b/source3/lib/replace/.checker_innocent deleted file mode 100644 index e619176540..0000000000 --- a/source3/lib/replace/.checker_innocent +++ /dev/null @@ -1,4 +0,0 @@ ->>>MISTAKE21_create_files_6a9e68ada99a97cb ->>>MISTAKE21_os2_delete_9b2bfa7f38711d09 ->>>MISTAKE21_os2_delete_2fcc29aaa99a97cb ->>>SECURITY2_os2_delete_9b2bfa7f1c9396ca diff --git a/source3/lib/replace/Makefile.in b/source3/lib/replace/Makefile.in deleted file mode 100644 index c989835a8d..0000000000 --- a/source3/lib/replace/Makefile.in +++ /dev/null @@ -1,63 +0,0 @@ -#!gmake -# -CC = @CC@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ -bindir = @bindir@ -includedir = @includedir@ -libdir = @libdir@ -VPATH = @libreplacedir@ -srcdir = @srcdir@ -builddir = @builddir@ -INSTALL = @INSTALL@ -LIBS = @LIBS@ - -.PHONY: test all showflags install installcheck clean distclean realdistclean - -CFLAGS=-I. @CFLAGS@ -LDFLAGS=@LDFLAGS@ - -OBJS = @LIBREPLACEOBJ@ - -all: showflags libreplace.a testsuite - -showflags: -	@echo 'libreplace will be compiled with flags:' -	@echo '  CC     = $(CC)' -	@echo '  CFLAGS = $(CFLAGS)' -	@echo '  LDFLAGS= $(LDFLAGS)' -	@echo '  LIBS   = $(LIBS)' - -install: all -	mkdir -p $(libdir) -	$(INSTALL) libreplace.a $(libdir) - -libreplace.a: $(OBJS) -	ar -rcsv $@ $(OBJS) - -test: all -	./testsuite - -installcheck: install test - -TEST_OBJS = 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) - -.c.o: -	@echo Compiling $*.c -	@mkdir -p `dirname $@` -	@$(CC) $(CFLAGS) -c $< -o $@ - -clean: -	rm -f *.o test/*.o *.a testsuite -	rm -f testfile.dat - -distclean: clean -	rm -f *~ */*~ -	rm -f config.log config.status config.h config.cache -	rm -f Makefile - -realdistclean: distclean -	rm -f configure config.h.in diff --git a/source3/lib/replace/README b/source3/lib/replace/README deleted file mode 100644 index 4d94317c4b..0000000000 --- a/source3/lib/replace/README +++ /dev/null @@ -1,113 +0,0 @@ -This subsystem ensures that we can always use a certain core set of  -functions and types, that are either provided by the OS or by replacement  -functions / definitions in this subsystem. The aim is to try to stick  -to POSIX functions in here as much as possible. Convenience functions  -that are available on no platform at all belong in other subsystems -(such as LIBUTIL). - -The following functions are guaranteed: - -ftruncate -strlcpy -strlcat -mktime -rename -initgroups -memmove -strdup -setlinebuf -vsyslog -timegm -setenv -unsetenv -strndup -strnlen -waitpid -seteuid -setegid -asprintf -snprintf -vasprintf -vsnprintf -opendir -readdir -telldir -seekdir -closedir -dlopen -dlclose -dlsym -dlerror -chroot -bzero -strerror -errno -mkdtemp -mkstemp (a secure one!) -pread -pwrite -getpass -readline (the library) -inet_ntoa -inet_ntop -inet_pton -inet_aton -strtoll -strtoull -socketpair -strptime -getaddrinfo -freeaddrinfo -getnameinfo -gai_strerror -getifaddrs -freeifaddrs -utime -utimes - -Types: -bool -socklen_t -uint_t -uint{8,16,32,64}_t -int{8,16,32,64}_t -intptr_t - -Constants: -PATH_NAME_MAX -UINT{16,32,64}_MAX -INT32_MAX -RTLD_LAZY -HOST_NAME_MAX -UINT16_MAX -UINT32_MAX -UINT64_MAX -CHAR_BIT - -Macros: -va_copy -__FUNCTION__ -__FILE__ -__LINE__ -__LINESTR__ -__location__ -__STRING -__STRINGSTRING -MIN -MAX -QSORT_CAST -ZERO_STRUCT -ZERO_STRUCTP -ZERO_STRUCTPN -ZERO_ARRAY -ARRAY_SIZE -PTR_DIFF - -Headers: -stdint.h -stdbool.h - -Prerequisites: -memset (for bzero) -syslog (for vsyslog) -mktemp (for mkstemp and mkdtemp) diff --git a/source3/lib/replace/aclocal.m4 b/source3/lib/replace/aclocal.m4 deleted file mode 100644 index 5605e476ba..0000000000 --- a/source3/lib/replace/aclocal.m4 +++ /dev/null @@ -1 +0,0 @@ -m4_include(libreplace.m4) diff --git a/source3/lib/replace/autoconf-2.60.m4 b/source3/lib/replace/autoconf-2.60.m4 deleted file mode 100644 index acdcd38efe..0000000000 --- a/source3/lib/replace/autoconf-2.60.m4 +++ /dev/null @@ -1,210 +0,0 @@ -# AC_GNU_SOURCE -# -------------- -AC_DEFUN([AC_GNU_SOURCE], -[AH_VERBATIM([_GNU_SOURCE], -[/* Enable GNU extensions on systems that have them.  */ -#ifndef _GNU_SOURCE -# undef _GNU_SOURCE -#endif])dnl -AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl -AC_BEFORE([$0], [AC_RUN_IFELSE])dnl -AC_DEFINE([_GNU_SOURCE]) -]) - -# _AC_C_STD_TRY(STANDARD, TEST-PROLOGUE, TEST-BODY, OPTION-LIST, -#		ACTION-IF-AVAILABLE, ACTION-IF-UNAVAILABLE) -# -------------------------------------------------------------- -# Check whether the C compiler accepts features of STANDARD (e.g `c89', `c99') -# by trying to compile a program of TEST-PROLOGUE and TEST-BODY.  If this fails, -# try again with each compiler option in the space-separated OPTION-LIST; if one -# helps, append it to CC.  If eventually successful, run ACTION-IF-AVAILABLE, -# else ACTION-IF-UNAVAILABLE. -AC_DEFUN([_AC_C_STD_TRY], -[AC_MSG_CHECKING([for $CC option to accept ISO ]m4_translit($1, [c], [C])) -AC_CACHE_VAL(ac_cv_prog_cc_$1, -[ac_cv_prog_cc_$1=no -ac_save_CC=$CC -AC_LANG_CONFTEST([AC_LANG_PROGRAM([$2], [$3])]) -for ac_arg in '' $4 -do -  CC="$ac_save_CC $ac_arg" -  _AC_COMPILE_IFELSE([], [ac_cv_prog_cc_$1=$ac_arg]) -  test "x$ac_cv_prog_cc_$1" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC -])# AC_CACHE_VAL -case "x$ac_cv_prog_cc_$1" in -  x) -    AC_MSG_RESULT([none needed]) ;; -  xno) -    AC_MSG_RESULT([unsupported]) ;; -  *) -    CC="$CC $ac_cv_prog_cc_$1" -    AC_MSG_RESULT([$ac_cv_prog_cc_$1]) ;; -esac -AS_IF([test "x$ac_cv_prog_cc_$1" != xno], [$5], [$6]) -])# _AC_C_STD_TRY - -# _AC_PROG_CC_C99 ([ACTION-IF-AVAILABLE], [ACTION-IF-UNAVAILABLE]) -# ---------------------------------------------------------------- -# If the C compiler is not in ISO C99 mode by default, try to add an -# option to output variable CC to make it so.  This macro tries -# various options that select ISO C99 on some system or another.  It -# considers the compiler to be in ISO C99 mode if it handles mixed -# code and declarations, _Bool, inline and restrict. -AC_DEFUN([_AC_PROG_CC_C99], -[_AC_C_STD_TRY([c99], -[[#include <stdarg.h> -#include <stdbool.h> -#include <stdlib.h> -#include <wchar.h> -#include <stdio.h> - -struct incomplete_array -{ -  int datasize; -  double data[]; -}; - -struct named_init { -  int number; -  const wchar_t *name; -  double average; -}; - -typedef const char *ccp; - -static inline int -test_restrict(ccp restrict text) -{ -  // See if C++-style comments work. -  // Iterate through items via the restricted pointer. -  // Also check for declarations in for loops. -  for (unsigned int i = 0; *(text+i) != '\0'; ++i) -    continue; -  return 0; -} - -// Check varargs and va_copy work. -static void -test_varargs(const char *format, ...) -{ -  va_list args; -  va_start(args, format); -  va_list args_copy; -  va_copy(args_copy, args); - -  const char *str; -  int number; -  float fnumber; - -  while (*format) -    { -      switch (*format++) -	{ -	case 's': // string -	  str = va_arg(args_copy, const char *); -	  break; -	case 'd': // int -	  number = va_arg(args_copy, int); -	  break; -	case 'f': // float -	  fnumber = (float) va_arg(args_copy, double); -	  break; -	default: -	  break; -	} -    } -  va_end(args_copy); -  va_end(args); -} -]], -[[ -  // Check bool and long long datatypes. -  _Bool success = false; -  long long int bignum = -1234567890LL; -  unsigned long long int ubignum = 1234567890uLL; - -  // Check restrict. -  if (test_restrict("String literal") != 0) -    success = true; -  char *restrict newvar = "Another string"; - -  // Check varargs. -  test_varargs("s, d' f .", "string", 65, 34.234); - -  // Check incomplete arrays work. -  struct incomplete_array *ia = -    malloc(sizeof(struct incomplete_array) + (sizeof(double) * 10)); -  ia->datasize = 10; -  for (int i = 0; i < ia->datasize; ++i) -    ia->data[i] = (double) i * 1.234; - -  // Check named initialisers. -  struct named_init ni = { -    .number = 34, -    .name = L"Test wide string", -    .average = 543.34343, -  }; - -  ni.number = 58; - -  int dynamic_array[ni.number]; -  dynamic_array[43] = 543; - -  // work around unused variable warnings -  return  bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x'; -]], -dnl Try -dnl GCC		-std=gnu99 (unused restrictive modes: -std=c99 -std=iso9899:1999) -dnl AIX		-qlanglvl=extc99 (unused restrictive mode: -qlanglvl=stdc99) -dnl Intel ICC	-c99 -dnl IRIX	-c99 -dnl Solaris	(unused because it causes the compiler to assume C99 semantics for -dnl		library functions, and this is invalid before Solaris 10: -xc99) -dnl Tru64	-c99 -dnl with extended modes being tried first. -[[-std=gnu99 -c99 -qlanglvl=extc99]], [$1], [$2])[]dnl -])# _AC_PROG_CC_C99 - -# AC_PROG_CC_C99 -# -------------- -AC_DEFUN([AC_PROG_CC_C99], -[ AC_REQUIRE([AC_PROG_CC])dnl -  _AC_PROG_CC_C99 -]) - -# AC_USE_SYSTEM_EXTENSIONS -# ------------------------ -# Enable extensions on systems that normally disable them, -# typically due to standards-conformance issues. -AC_DEFUN([AC_USE_SYSTEM_EXTENSIONS], -[ -  AC_BEFORE([$0], [AC_COMPILE_IFELSE]) -  AC_BEFORE([$0], [AC_RUN_IFELSE]) - -  AC_REQUIRE([AC_GNU_SOURCE]) -  AC_REQUIRE([AC_AIX]) -  AC_REQUIRE([AC_MINIX]) - -  AH_VERBATIM([__EXTENSIONS__], -[/* Enable extensions on Solaris.  */ -#ifndef __EXTENSIONS__ -# undef __EXTENSIONS__ -#endif -#ifndef _POSIX_PTHREAD_SEMANTICS -# undef _POSIX_PTHREAD_SEMANTICS -#endif]) -  AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__], -    [ac_cv_safe_to_define___extensions__], -    [AC_COMPILE_IFELSE( -       [AC_LANG_PROGRAM([ -#	  define __EXTENSIONS__ 1 -	  AC_INCLUDES_DEFAULT])], -       [ac_cv_safe_to_define___extensions__=yes], -       [ac_cv_safe_to_define___extensions__=no])]) -  test $ac_cv_safe_to_define___extensions__ = yes && -    AC_DEFINE([__EXTENSIONS__]) -  AC_DEFINE([_POSIX_PTHREAD_SEMANTICS]) -]) diff --git a/source3/lib/replace/autogen.sh b/source3/lib/replace/autogen.sh deleted file mode 100755 index d46a4279f3..0000000000 --- a/source3/lib/replace/autogen.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -rm -rf autom4te.cache -rm -f configure config.h.in - -autoheader || exit 1 -autoconf || exit 1 - -rm -rf autom4te.cache - -echo "Now run ./configure and then make." -exit 0 - diff --git a/source3/lib/replace/config.guess b/source3/lib/replace/config.guess deleted file mode 100755 index 354dbe175a..0000000000 --- a/source3/lib/replace/config.guess +++ /dev/null @@ -1,1464 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -#   2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. - -timestamp='2005-08-03' - -# This file 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 3 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, see <http://www.gnu.org/licenses/>. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - - -# Originally written by Per Bothner <per@bothner.com>. -# Please send patches to <config-patches@gnu.org>.  Submit a context -# diff and a properly formatted ChangeLog entry. -# -# This script attempts to guess a canonical system name similar to -# config.sub.  If it succeeds, it prints the system name on stdout, and -# exits with 0.  Otherwise, it exits with 1. -# -# The plan is that this can be called by configure scripts if you -# don't specify an explicit build system type. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Operation modes: -  -h, --help         print this help, then exit -  -t, --time-stamp   print date of last modification, then exit -  -v, --version      print version number, then exit - -Report bugs and patches to <config-patches@gnu.org>." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -Free Software Foundation, Inc. - -This is free software; see the source for copying conditions.  There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do -  case $1 in -    --time-stamp | --time* | -t ) -       echo "$timestamp" ; exit ;; -    --version | -v ) -       echo "$version" ; exit ;; -    --help | --h* | -h ) -       echo "$usage"; exit ;; -    -- )     # Stop option processing -       shift; break ;; -    - )	# Use stdin as input. -       break ;; -    -* ) -       echo "$me: invalid option $1$help" >&2 -       exit 1 ;; -    * ) -       break ;; -  esac -done - -if test $# != 0; then -  echo "$me: too many arguments$help" >&2 -  exit 1 -fi - -trap 'exit 1' 1 2 15 - -# CC_FOR_BUILD -- compiler used by this script. Note that the use of a -# compiler to aid in system detection is discouraged as it requires -# temporary files to be created and, as you can see below, it is a -# headache to deal with in a portable fashion. - -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. - -# Portable tmp directory creation inspired by the Autoconf team. - -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,)    echo "int x;" > $dummy.c ; -	for c in cc gcc c89 c99 ; do -	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then -	     CC_FOR_BUILD="$c"; break ; -	  fi ; -	done ; -	if test x"$CC_FOR_BUILD" = x ; then -	  CC_FOR_BUILD=no_compiler_found ; -	fi -	;; - ,,*)   CC_FOR_BUILD=$CC ;; - ,*,*)  CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then -	PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -# Note: order is significant - the case branches are not exclusive. - -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in -    *:NetBSD:*:*) -	# NetBSD (nbsd) targets should (where applicable) match one or -	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, -	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently -	# switched to ELF, *-*-netbsd* would select the old -	# object file format.  This provides both forward -	# compatibility and a consistent mechanism for selecting the -	# object file format. -	# -	# Note: NetBSD doesn't particularly care about the vendor -	# portion of the name.  We always set it to "unknown". -	sysctl="sysctl -n hw.machine_arch" -	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ -	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)` -	case "${UNAME_MACHINE_ARCH}" in -	    armeb) machine=armeb-unknown ;; -	    arm*) machine=arm-unknown ;; -	    sh3el) machine=shl-unknown ;; -	    sh3eb) machine=sh-unknown ;; -	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;; -	esac -	# The Operating System including object format, if it has switched -	# to ELF recently, or will in the future. -	case "${UNAME_MACHINE_ARCH}" in -	    arm*|i386|m68k|ns32k|sh3*|sparc|vax) -		eval $set_cc_for_build -		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ -			| grep __ELF__ >/dev/null -		then -		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). -		    # Return netbsd for either.  FIX? -		    os=netbsd -		else -		    os=netbsdelf -		fi -		;; -	    *) -	        os=netbsd -		;; -	esac -	# The OS release -	# Debian GNU/NetBSD machines have a different userland, and -	# thus, need a distinct triplet. However, they do not need -	# kernel version information, so it can be replaced with a -	# suitable tag, in the style of linux-gnu. -	case "${UNAME_VERSION}" in -	    Debian*) -		release='-gnu' -		;; -	    *) -		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` -		;; -	esac -	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: -	# contains redundant information, the shorter form: -	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. -	echo "${machine}-${os}${release}" -	exit ;; -    *:OpenBSD:*:*) -	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` -	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} -	exit ;; -    *:ekkoBSD:*:*) -	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} -	exit ;; -    macppc:MirBSD:*:*) -	echo powerppc-unknown-mirbsd${UNAME_RELEASE} -	exit ;; -    *:MirBSD:*:*) -	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} -	exit ;; -    alpha:OSF1:*:*) -	case $UNAME_RELEASE in -	*4.0) -		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` -		;; -	*5.*) -	        UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` -		;; -	esac -	# According to Compaq, /usr/sbin/psrinfo has been available on -	# OSF/1 and Tru64 systems produced since 1995.  I hope that -	# covers most systems running today.  This code pipes the CPU -	# types through head -n 1, so we only detect the type of CPU 0. -	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1` -	case "$ALPHA_CPU_TYPE" in -	    "EV4 (21064)") -		UNAME_MACHINE="alpha" ;; -	    "EV4.5 (21064)") -		UNAME_MACHINE="alpha" ;; -	    "LCA4 (21066/21068)") -		UNAME_MACHINE="alpha" ;; -	    "EV5 (21164)") -		UNAME_MACHINE="alphaev5" ;; -	    "EV5.6 (21164A)") -		UNAME_MACHINE="alphaev56" ;; -	    "EV5.6 (21164PC)") -		UNAME_MACHINE="alphapca56" ;; -	    "EV5.7 (21164PC)") -		UNAME_MACHINE="alphapca57" ;; -	    "EV6 (21264)") -		UNAME_MACHINE="alphaev6" ;; -	    "EV6.7 (21264A)") -		UNAME_MACHINE="alphaev67" ;; -	    "EV6.8CB (21264C)") -		UNAME_MACHINE="alphaev68" ;; -	    "EV6.8AL (21264B)") -		UNAME_MACHINE="alphaev68" ;; -	    "EV6.8CX (21264D)") -		UNAME_MACHINE="alphaev68" ;; -	    "EV6.9A (21264/EV69A)") -		UNAME_MACHINE="alphaev69" ;; -	    "EV7 (21364)") -		UNAME_MACHINE="alphaev7" ;; -	    "EV7.9 (21364A)") -		UNAME_MACHINE="alphaev79" ;; -	esac -	# A Pn.n version is a patched version. -	# A Vn.n version is a released version. -	# A Tn.n version is a released field test version. -	# A Xn.n version is an unreleased experimental baselevel. -	# 1.2 uses "1.2" for uname -r. -	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -	exit ;; -    Alpha\ *:Windows_NT*:*) -	# How do we know it's Interix rather than the generic POSIX subsystem? -	# Should we change UNAME_MACHINE based on the output of uname instead -	# of the specific Alpha model? -	echo alpha-pc-interix -	exit ;; -    21064:Windows_NT:50:3) -	echo alpha-dec-winnt3.5 -	exit ;; -    Amiga*:UNIX_System_V:4.0:*) -	echo m68k-unknown-sysv4 -	exit ;; -    *:[Aa]miga[Oo][Ss]:*:*) -	echo ${UNAME_MACHINE}-unknown-amigaos -	exit ;; -    *:[Mm]orph[Oo][Ss]:*:*) -	echo ${UNAME_MACHINE}-unknown-morphos -	exit ;; -    *:OS/390:*:*) -	echo i370-ibm-openedition -	exit ;; -    *:z/VM:*:*) -	echo s390-ibm-zvmoe -	exit ;; -    *:OS400:*:*) -        echo powerpc-ibm-os400 -	exit ;; -    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) -	echo arm-acorn-riscix${UNAME_RELEASE} -	exit ;; -    arm:riscos:*:*|arm:RISCOS:*:*) -	echo arm-unknown-riscos -	exit ;; -    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) -	echo hppa1.1-hitachi-hiuxmpp -	exit ;; -    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) -	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. -	if test "`(/bin/universe) 2>/dev/null`" = att ; then -		echo pyramid-pyramid-sysv3 -	else -		echo pyramid-pyramid-bsd -	fi -	exit ;; -    NILE*:*:*:dcosx) -	echo pyramid-pyramid-svr4 -	exit ;; -    DRS?6000:unix:4.0:6*) -	echo sparc-icl-nx6 -	exit ;; -    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) -	case `/usr/bin/uname -p` in -	    sparc) echo sparc-icl-nx7; exit ;; -	esac ;; -    sun4H:SunOS:5.*:*) -	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -	exit ;; -    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) -	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -	exit ;; -    i86pc:SunOS:5.*:*) -	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -	exit ;; -    sun4*:SunOS:6*:*) -	# According to config.sub, this is the proper way to canonicalize -	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but -	# it's likely to be more like Solaris than SunOS4. -	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -	exit ;; -    sun4*:SunOS:*:*) -	case "`/usr/bin/arch -k`" in -	    Series*|S4*) -		UNAME_RELEASE=`uname -v` -		;; -	esac -	# Japanese Language versions have a version number like `4.1.3-JL'. -	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` -	exit ;; -    sun3*:SunOS:*:*) -	echo m68k-sun-sunos${UNAME_RELEASE} -	exit ;; -    sun*:*:4.2BSD:*) -	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` -	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 -	case "`/bin/arch`" in -	    sun3) -		echo m68k-sun-sunos${UNAME_RELEASE} -		;; -	    sun4) -		echo sparc-sun-sunos${UNAME_RELEASE} -		;; -	esac -	exit ;; -    aushp:SunOS:*:*) -	echo sparc-auspex-sunos${UNAME_RELEASE} -	exit ;; -    # The situation for MiNT is a little confusing.  The machine name -    # can be virtually everything (everything which is not -    # "atarist" or "atariste" at least should have a processor -    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT" -    # to the lowercase version "mint" (or "freemint").  Finally -    # the system name "TOS" denotes a system which is actually not -    # MiNT.  But MiNT is downward compatible to TOS, so this should -    # be no problem. -    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) -        echo m68k-atari-mint${UNAME_RELEASE} -	exit ;; -    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) -	echo m68k-atari-mint${UNAME_RELEASE} -        exit ;; -    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) -        echo m68k-atari-mint${UNAME_RELEASE} -	exit ;; -    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) -        echo m68k-milan-mint${UNAME_RELEASE} -        exit ;; -    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) -        echo m68k-hades-mint${UNAME_RELEASE} -        exit ;; -    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) -        echo m68k-unknown-mint${UNAME_RELEASE} -        exit ;; -    m68k:machten:*:*) -	echo m68k-apple-machten${UNAME_RELEASE} -	exit ;; -    powerpc:machten:*:*) -	echo powerpc-apple-machten${UNAME_RELEASE} -	exit ;; -    RISC*:Mach:*:*) -	echo mips-dec-mach_bsd4.3 -	exit ;; -    RISC*:ULTRIX:*:*) -	echo mips-dec-ultrix${UNAME_RELEASE} -	exit ;; -    VAX*:ULTRIX*:*:*) -	echo vax-dec-ultrix${UNAME_RELEASE} -	exit ;; -    2020:CLIX:*:* | 2430:CLIX:*:*) -	echo clipper-intergraph-clix${UNAME_RELEASE} -	exit ;; -    mips:*:*:UMIPS | mips:*:*:RISCos) -	eval $set_cc_for_build -	sed 's/^	//' << EOF >$dummy.c -#ifdef __cplusplus -#include <stdio.h>  /* for printf() prototype */ -	int main (int argc, char *argv[]) { -#else -	int main (argc, argv) int argc; char *argv[]; { -#endif -	#if defined (host_mips) && defined (MIPSEB) -	#if defined (SYSTYPE_SYSV) -	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); -	#endif -	#if defined (SYSTYPE_SVR4) -	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); -	#endif -	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) -	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); -	#endif -	#endif -	  exit (-1); -	} -EOF -	$CC_FOR_BUILD -o $dummy $dummy.c && -	  dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && -	  SYSTEM_NAME=`$dummy $dummyarg` && -	    { echo "$SYSTEM_NAME"; exit; } -	echo mips-mips-riscos${UNAME_RELEASE} -	exit ;; -    Motorola:PowerMAX_OS:*:*) -	echo powerpc-motorola-powermax -	exit ;; -    Motorola:*:4.3:PL8-*) -	echo powerpc-harris-powermax -	exit ;; -    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) -	echo powerpc-harris-powermax -	exit ;; -    Night_Hawk:Power_UNIX:*:*) -	echo powerpc-harris-powerunix -	exit ;; -    m88k:CX/UX:7*:*) -	echo m88k-harris-cxux7 -	exit ;; -    m88k:*:4*:R4*) -	echo m88k-motorola-sysv4 -	exit ;; -    m88k:*:3*:R3*) -	echo m88k-motorola-sysv3 -	exit ;; -    AViiON:dgux:*:*) -        # DG/UX returns AViiON for all architectures -        UNAME_PROCESSOR=`/usr/bin/uname -p` -	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] -	then -	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ -	       [ ${TARGET_BINARY_INTERFACE}x = x ] -	    then -		echo m88k-dg-dgux${UNAME_RELEASE} -	    else -		echo m88k-dg-dguxbcs${UNAME_RELEASE} -	    fi -	else -	    echo i586-dg-dgux${UNAME_RELEASE} -	fi - 	exit ;; -    M88*:DolphinOS:*:*)	# DolphinOS (SVR3) -	echo m88k-dolphin-sysv3 -	exit ;; -    M88*:*:R3*:*) -	# Delta 88k system running SVR3 -	echo m88k-motorola-sysv3 -	exit ;; -    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) -	echo m88k-tektronix-sysv3 -	exit ;; -    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) -	echo m68k-tektronix-bsd -	exit ;; -    *:IRIX*:*:*) -	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` -	exit ;; -    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. -	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id -	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX ' -    i*86:AIX:*:*) -	echo i386-ibm-aix -	exit ;; -    ia64:AIX:*:*) -	if [ -x /usr/bin/oslevel ] ; then -		IBM_REV=`/usr/bin/oslevel` -	else -		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} -	fi -	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} -	exit ;; -    *:AIX:2:3) -	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then -		eval $set_cc_for_build -		sed 's/^		//' << EOF >$dummy.c -		#include <sys/systemcfg.h> - -		main() -			{ -			if (!__power_pc()) -				exit(1); -			puts("powerpc-ibm-aix3.2.5"); -			exit(0); -			} -EOF -		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` -		then -			echo "$SYSTEM_NAME" -		else -			echo rs6000-ibm-aix3.2.5 -		fi -	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then -		echo rs6000-ibm-aix3.2.4 -	else -		echo rs6000-ibm-aix3.2 -	fi -	exit ;; -    *:AIX:*:[45]) -	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` -	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then -		IBM_ARCH=rs6000 -	else -		IBM_ARCH=powerpc -	fi -	if [ -x /usr/bin/oslevel ] ; then -		IBM_REV=`/usr/bin/oslevel` -	else -		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} -	fi -	echo ${IBM_ARCH}-ibm-aix${IBM_REV} -	exit ;; -    *:AIX:*:*) -	echo rs6000-ibm-aix -	exit ;; -    ibmrt:4.4BSD:*|romp-ibm:BSD:*) -	echo romp-ibm-bsd4.4 -	exit ;; -    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and -	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to -	exit ;;                             # report: romp-ibm BSD 4.3 -    *:BOSX:*:*) -	echo rs6000-bull-bosx -	exit ;; -    DPX/2?00:B.O.S.:*:*) -	echo m68k-bull-sysv3 -	exit ;; -    9000/[34]??:4.3bsd:1.*:*) -	echo m68k-hp-bsd -	exit ;; -    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) -	echo m68k-hp-bsd4.4 -	exit ;; -    9000/[34678]??:HP-UX:*:*) -	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` -	case "${UNAME_MACHINE}" in -	    9000/31? )            HP_ARCH=m68000 ;; -	    9000/[34]?? )         HP_ARCH=m68k ;; -	    9000/[678][0-9][0-9]) -		if [ -x /usr/bin/getconf ]; then -		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` -                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` -                    case "${sc_cpu_version}" in -                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 -                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 -                      532)                      # CPU_PA_RISC2_0 -                        case "${sc_kernel_bits}" in -                          32) HP_ARCH="hppa2.0n" ;; -                          64) HP_ARCH="hppa2.0w" ;; -			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20 -                        esac ;; -                    esac -		fi -		if [ "${HP_ARCH}" = "" ]; then -		    eval $set_cc_for_build -		    sed 's/^              //' << EOF >$dummy.c - -              #define _HPUX_SOURCE -              #include <stdlib.h> -              #include <unistd.h> - -              int main () -              { -              #if defined(_SC_KERNEL_BITS) -                  long bits = sysconf(_SC_KERNEL_BITS); -              #endif -                  long cpu  = sysconf (_SC_CPU_VERSION); - -                  switch (cpu) -              	{ -              	case CPU_PA_RISC1_0: puts ("hppa1.0"); break; -              	case CPU_PA_RISC1_1: puts ("hppa1.1"); break; -              	case CPU_PA_RISC2_0: -              #if defined(_SC_KERNEL_BITS) -              	    switch (bits) -              		{ -              		case 64: puts ("hppa2.0w"); break; -              		case 32: puts ("hppa2.0n"); break; -              		default: puts ("hppa2.0"); break; -              		} break; -              #else  /* !defined(_SC_KERNEL_BITS) */ -              	    puts ("hppa2.0"); break; -              #endif -              	default: puts ("hppa1.0"); break; -              	} -                  exit (0); -              } -EOF -		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` -		    test -z "$HP_ARCH" && HP_ARCH=hppa -		fi ;; -	esac -	if [ ${HP_ARCH} = "hppa2.0w" ] -	then -	    eval $set_cc_for_build - -	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating -	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler -	    # generating 64-bit code.  GNU and HP use different nomenclature: -	    # -	    # $ CC_FOR_BUILD=cc ./config.guess -	    # => hppa2.0w-hp-hpux11.23 -	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess -	    # => hppa64-hp-hpux11.23 - -	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | -		grep __LP64__ >/dev/null -	    then -		HP_ARCH="hppa2.0w" -	    else -		HP_ARCH="hppa64" -	    fi -	fi -	echo ${HP_ARCH}-hp-hpux${HPUX_REV} -	exit ;; -    ia64:HP-UX:*:*) -	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` -	echo ia64-hp-hpux${HPUX_REV} -	exit ;; -    3050*:HI-UX:*:*) -	eval $set_cc_for_build -	sed 's/^	//' << EOF >$dummy.c -	#include <unistd.h> -	int -	main () -	{ -	  long cpu = sysconf (_SC_CPU_VERSION); -	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns -	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct -	     results, however.  */ -	  if (CPU_IS_PA_RISC (cpu)) -	    { -	      switch (cpu) -		{ -		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; -		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; -		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; -		  default: puts ("hppa-hitachi-hiuxwe2"); break; -		} -	    } -	  else if (CPU_IS_HP_MC68K (cpu)) -	    puts ("m68k-hitachi-hiuxwe2"); -	  else puts ("unknown-hitachi-hiuxwe2"); -	  exit (0); -	} -EOF -	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && -		{ echo "$SYSTEM_NAME"; exit; } -	echo unknown-hitachi-hiuxwe2 -	exit ;; -    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) -	echo hppa1.1-hp-bsd -	exit ;; -    9000/8??:4.3bsd:*:*) -	echo hppa1.0-hp-bsd -	exit ;; -    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) -	echo hppa1.0-hp-mpeix -	exit ;; -    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) -	echo hppa1.1-hp-osf -	exit ;; -    hp8??:OSF1:*:*) -	echo hppa1.0-hp-osf -	exit ;; -    i*86:OSF1:*:*) -	if [ -x /usr/sbin/sysversion ] ; then -	    echo ${UNAME_MACHINE}-unknown-osf1mk -	else -	    echo ${UNAME_MACHINE}-unknown-osf1 -	fi -	exit ;; -    parisc*:Lites*:*:*) -	echo hppa1.1-hp-lites -	exit ;; -    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) -	echo c1-convex-bsd -        exit ;; -    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) -	if getsysinfo -f scalar_acc -	then echo c32-convex-bsd -	else echo c2-convex-bsd -	fi -        exit ;; -    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) -	echo c34-convex-bsd -        exit ;; -    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) -	echo c38-convex-bsd -        exit ;; -    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) -	echo c4-convex-bsd -        exit ;; -    CRAY*Y-MP:*:*:*) -	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -	exit ;; -    CRAY*[A-Z]90:*:*:*) -	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ -	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -	      -e 's/\.[^.]*$/.X/' -	exit ;; -    CRAY*TS:*:*:*) -	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -	exit ;; -    CRAY*T3E:*:*:*) -	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -	exit ;; -    CRAY*SV1:*:*:*) -	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -	exit ;; -    *:UNICOS/mp:*:*) -	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -	exit ;; -    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) -	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` -        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -        exit ;; -    5000:UNIX_System_V:4.*:*) -        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` -        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -	exit ;; -    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) -	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} -	exit ;; -    sparc*:BSD/OS:*:*) -	echo sparc-unknown-bsdi${UNAME_RELEASE} -	exit ;; -    *:BSD/OS:*:*) -	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} -	exit ;; -    *:FreeBSD:*:*) -	echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` -	exit ;; -    i*:CYGWIN*:*) -	echo ${UNAME_MACHINE}-pc-cygwin -	exit ;; -    i*:MINGW*:*) -	echo ${UNAME_MACHINE}-pc-mingw32 -	exit ;; -    i*:windows32*:*) -    	# uname -m includes "-pc" on this system. -    	echo ${UNAME_MACHINE}-mingw32 -	exit ;; -    i*:PW*:*) -	echo ${UNAME_MACHINE}-pc-pw32 -	exit ;; -    x86:Interix*:[34]*) -	echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' -	exit ;; -    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) -	echo i${UNAME_MACHINE}-pc-mks -	exit ;; -    i*:Windows_NT*:* | Pentium*:Windows_NT*:*) -	# How do we know it's Interix rather than the generic POSIX subsystem? -	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we -	# UNAME_MACHINE based on the output of uname instead of i386? -	echo i586-pc-interix -	exit ;; -    i*:UWIN*:*) -	echo ${UNAME_MACHINE}-pc-uwin -	exit ;; -    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) -	echo x86_64-unknown-cygwin -	exit ;; -    p*:CYGWIN*:*) -	echo powerpcle-unknown-cygwin -	exit ;; -    prep*:SunOS:5.*:*) -	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -	exit ;; -    *:GNU:*:*) -	# the GNU system -	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` -	exit ;; -    *:GNU/*:*:*) -	# other systems with GNU libc and userland -	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu -	exit ;; -    i*86:Minix:*:*) -	echo ${UNAME_MACHINE}-pc-minix -	exit ;; -    arm*:Linux:*:*) -	echo ${UNAME_MACHINE}-unknown-linux-gnu -	exit ;; -    cris:Linux:*:*) -	echo cris-axis-linux-gnu -	exit ;; -    crisv32:Linux:*:*) -	echo crisv32-axis-linux-gnu -	exit ;; -    frv:Linux:*:*) -    	echo frv-unknown-linux-gnu -	exit ;; -    ia64:Linux:*:*) -	echo ${UNAME_MACHINE}-unknown-linux-gnu -	exit ;; -    m32r*:Linux:*:*) -	echo ${UNAME_MACHINE}-unknown-linux-gnu -	exit ;; -    m68*:Linux:*:*) -	echo ${UNAME_MACHINE}-unknown-linux-gnu -	exit ;; -    mips:Linux:*:*) -	eval $set_cc_for_build -	sed 's/^	//' << EOF >$dummy.c -	#undef CPU -	#undef mips -	#undef mipsel -	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) -	CPU=mipsel -	#else -	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) -	CPU=mips -	#else -	CPU= -	#endif -	#endif -EOF -	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } -	;; -    mips64:Linux:*:*) -	eval $set_cc_for_build -	sed 's/^	//' << EOF >$dummy.c -	#undef CPU -	#undef mips64 -	#undef mips64el -	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) -	CPU=mips64el -	#else -	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) -	CPU=mips64 -	#else -	CPU= -	#endif -	#endif -EOF -	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } -	;; -    or32:Linux:*:*) -	echo or32-unknown-linux-gnu -	exit ;; -    ppc:Linux:*:*) -	echo powerpc-unknown-linux-gnu -	exit ;; -    ppc64:Linux:*:*) -	echo powerpc64-unknown-linux-gnu -	exit ;; -    alpha:Linux:*:*) -	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in -	  EV5)   UNAME_MACHINE=alphaev5 ;; -	  EV56)  UNAME_MACHINE=alphaev56 ;; -	  PCA56) UNAME_MACHINE=alphapca56 ;; -	  PCA57) UNAME_MACHINE=alphapca56 ;; -	  EV6)   UNAME_MACHINE=alphaev6 ;; -	  EV67)  UNAME_MACHINE=alphaev67 ;; -	  EV68*) UNAME_MACHINE=alphaev68 ;; -        esac -	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null -	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi -	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} -	exit ;; -    parisc:Linux:*:* | hppa:Linux:*:*) -	# Look for CPU level -	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in -	  PA7*) echo hppa1.1-unknown-linux-gnu ;; -	  PA8*) echo hppa2.0-unknown-linux-gnu ;; -	  *)    echo hppa-unknown-linux-gnu ;; -	esac -	exit ;; -    parisc64:Linux:*:* | hppa64:Linux:*:*) -	echo hppa64-unknown-linux-gnu -	exit ;; -    s390:Linux:*:* | s390x:Linux:*:*) -	echo ${UNAME_MACHINE}-ibm-linux -	exit ;; -    sh64*:Linux:*:*) -    	echo ${UNAME_MACHINE}-unknown-linux-gnu -	exit ;; -    sh*:Linux:*:*) -	echo ${UNAME_MACHINE}-unknown-linux-gnu -	exit ;; -    sparc:Linux:*:* | sparc64:Linux:*:*) -	echo ${UNAME_MACHINE}-unknown-linux-gnu -	exit ;; -    x86_64:Linux:*:*) -	echo x86_64-unknown-linux-gnu -	exit ;; -    i*86:Linux:*:*) -	# The BFD linker knows what the default object file format is, so -	# first see if it will tell us. cd to the root directory to prevent -	# problems with other programs or directories called `ld' in the path. -	# Set LC_ALL=C to ensure ld outputs messages in English. -	ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ -			 | sed -ne '/supported targets:/!d -				    s/[ 	][ 	]*/ /g -				    s/.*supported targets: *// -				    s/ .*// -				    p'` -        case "$ld_supported_targets" in -	  elf32-i386) -		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" -		;; -	  a.out-i386-linux) -		echo "${UNAME_MACHINE}-pc-linux-gnuaout" -		exit ;; -	  coff-i386) -		echo "${UNAME_MACHINE}-pc-linux-gnucoff" -		exit ;; -	  "") -		# Either a pre-BFD a.out linker (linux-gnuoldld) or -		# one that does not give us useful --help. -		echo "${UNAME_MACHINE}-pc-linux-gnuoldld" -		exit ;; -	esac -	# Determine whether the default compiler is a.out or elf -	eval $set_cc_for_build -	sed 's/^	//' << EOF >$dummy.c -	#include <features.h> -	#ifdef __ELF__ -	# ifdef __GLIBC__ -	#  if __GLIBC__ >= 2 -	LIBC=gnu -	#  else -	LIBC=gnulibc1 -	#  endif -	# else -	LIBC=gnulibc1 -	# endif -	#else -	#ifdef __INTEL_COMPILER -	LIBC=gnu -	#else -	LIBC=gnuaout -	#endif -	#endif -	#ifdef __dietlibc__ -	LIBC=dietlibc -	#endif -EOF -	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -	test x"${LIBC}" != x && { -		echo "${UNAME_MACHINE}-pc-linux-${LIBC}" -		exit -	} -	test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } -	;; -    i*86:DYNIX/ptx:4*:*) -	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. -	# earlier versions are messed up and put the nodename in both -	# sysname and nodename. -	echo i386-sequent-sysv4 -	exit ;; -    i*86:UNIX_SV:4.2MP:2.*) -        # Unixware is an offshoot of SVR4, but it has its own version -        # number series starting with 2... -        # I am not positive that other SVR4 systems won't match this, -	# I just have to hope.  -- rms. -        # Use sysv4.2uw... so that sysv4* matches it. -	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} -	exit ;; -    i*86:OS/2:*:*) -	# If we were able to find `uname', then EMX Unix compatibility -	# is probably installed. -	echo ${UNAME_MACHINE}-pc-os2-emx -	exit ;; -    i*86:XTS-300:*:STOP) -	echo ${UNAME_MACHINE}-unknown-stop -	exit ;; -    i*86:atheos:*:*) -	echo ${UNAME_MACHINE}-unknown-atheos -	exit ;; -    i*86:syllable:*:*) -	echo ${UNAME_MACHINE}-pc-syllable -	exit ;; -    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) -	echo i386-unknown-lynxos${UNAME_RELEASE} -	exit ;; -    i*86:*DOS:*:*) -	echo ${UNAME_MACHINE}-pc-msdosdjgpp -	exit ;; -    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) -	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` -	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then -		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} -	else -		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} -	fi -	exit ;; -    i*86:*:5:[678]*) -    	# UnixWare 7.x, OpenUNIX and OpenServer 6. -	case `/bin/uname -X | grep "^Machine"` in -	    *486*)	     UNAME_MACHINE=i486 ;; -	    *Pentium)	     UNAME_MACHINE=i586 ;; -	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;; -	esac -	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} -	exit ;; -    i*86:*:3.2:*) -	if test -f /usr/options/cb.name; then -		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` -		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL -	elif /bin/uname -X 2>/dev/null >/dev/null ; then -		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` -		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 -		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ -			&& UNAME_MACHINE=i586 -		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ -			&& UNAME_MACHINE=i686 -		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ -			&& UNAME_MACHINE=i686 -		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL -	else -		echo ${UNAME_MACHINE}-pc-sysv32 -	fi -	exit ;; -    pc:*:*:*) -	# Left here for compatibility: -        # uname -m prints for DJGPP always 'pc', but it prints nothing about -        # the processor, so we play safe by assuming i386. -	echo i386-pc-msdosdjgpp -        exit ;; -    Intel:Mach:3*:*) -	echo i386-pc-mach3 -	exit ;; -    paragon:*:*:*) -	echo i860-intel-osf1 -	exit ;; -    i860:*:4.*:*) # i860-SVR4 -	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then -	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 -	else # Add other i860-SVR4 vendors below as they are discovered. -	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4 -	fi -	exit ;; -    mini*:CTIX:SYS*5:*) -	# "miniframe" -	echo m68010-convergent-sysv -	exit ;; -    mc68k:UNIX:SYSTEM5:3.51m) -	echo m68k-convergent-sysv -	exit ;; -    M680?0:D-NIX:5.3:*) -	echo m68k-diab-dnix -	exit ;; -    M68*:*:R3V[5678]*:*) -	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; -    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) -	OS_REL='' -	test -r /etc/.relid \ -	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` -	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; } -	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; -    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) -        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -          && { echo i486-ncr-sysv4; exit; } ;; -    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) -	echo m68k-unknown-lynxos${UNAME_RELEASE} -	exit ;; -    mc68030:UNIX_System_V:4.*:*) -	echo m68k-atari-sysv4 -	exit ;; -    TSUNAMI:LynxOS:2.*:*) -	echo sparc-unknown-lynxos${UNAME_RELEASE} -	exit ;; -    rs6000:LynxOS:2.*:*) -	echo rs6000-unknown-lynxos${UNAME_RELEASE} -	exit ;; -    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) -	echo powerpc-unknown-lynxos${UNAME_RELEASE} -	exit ;; -    SM[BE]S:UNIX_SV:*:*) -	echo mips-dde-sysv${UNAME_RELEASE} -	exit ;; -    RM*:ReliantUNIX-*:*:*) -	echo mips-sni-sysv4 -	exit ;; -    RM*:SINIX-*:*:*) -	echo mips-sni-sysv4 -	exit ;; -    *:SINIX-*:*:*) -	if uname -p 2>/dev/null >/dev/null ; then -		UNAME_MACHINE=`(uname -p) 2>/dev/null` -		echo ${UNAME_MACHINE}-sni-sysv4 -	else -		echo ns32k-sni-sysv -	fi -	exit ;; -    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort -                      # says <Richard.M.Bartel@ccMail.Census.GOV> -        echo i586-unisys-sysv4 -        exit ;; -    *:UNIX_System_V:4*:FTX*) -	# From Gerald Hewes <hewes@openmarket.com>. -	# How about differentiating between stratus architectures? -djm -	echo hppa1.1-stratus-sysv4 -	exit ;; -    *:*:*:FTX*) -	# From seanf@swdc.stratus.com. -	echo i860-stratus-sysv4 -	exit ;; -    i*86:VOS:*:*) -	# From Paul.Green@stratus.com. -	echo ${UNAME_MACHINE}-stratus-vos -	exit ;; -    *:VOS:*:*) -	# From Paul.Green@stratus.com. -	echo hppa1.1-stratus-vos -	exit ;; -    mc68*:A/UX:*:*) -	echo m68k-apple-aux${UNAME_RELEASE} -	exit ;; -    news*:NEWS-OS:6*:*) -	echo mips-sony-newsos6 -	exit ;; -    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) -	if [ -d /usr/nec ]; then -	        echo mips-nec-sysv${UNAME_RELEASE} -	else -	        echo mips-unknown-sysv${UNAME_RELEASE} -	fi -        exit ;; -    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only. -	echo powerpc-be-beos -	exit ;; -    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only. -	echo powerpc-apple-beos -	exit ;; -    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible. -	echo i586-pc-beos -	exit ;; -    SX-4:SUPER-UX:*:*) -	echo sx4-nec-superux${UNAME_RELEASE} -	exit ;; -    SX-5:SUPER-UX:*:*) -	echo sx5-nec-superux${UNAME_RELEASE} -	exit ;; -    SX-6:SUPER-UX:*:*) -	echo sx6-nec-superux${UNAME_RELEASE} -	exit ;; -    Power*:Rhapsody:*:*) -	echo powerpc-apple-rhapsody${UNAME_RELEASE} -	exit ;; -    *:Rhapsody:*:*) -	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} -	exit ;; -    *:Darwin:*:*) -	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown -	case $UNAME_PROCESSOR in -	    *86) UNAME_PROCESSOR=i686 ;; -	    unknown) UNAME_PROCESSOR=powerpc ;; -	esac -	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} -	exit ;; -    *:procnto*:*:* | *:QNX:[0123456789]*:*) -	UNAME_PROCESSOR=`uname -p` -	if test "$UNAME_PROCESSOR" = "x86"; then -		UNAME_PROCESSOR=i386 -		UNAME_MACHINE=pc -	fi -	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} -	exit ;; -    *:QNX:*:4*) -	echo i386-pc-qnx -	exit ;; -    NSE-?:NONSTOP_KERNEL:*:*) -	echo nse-tandem-nsk${UNAME_RELEASE} -	exit ;; -    NSR-?:NONSTOP_KERNEL:*:*) -	echo nsr-tandem-nsk${UNAME_RELEASE} -	exit ;; -    *:NonStop-UX:*:*) -	echo mips-compaq-nonstopux -	exit ;; -    BS2000:POSIX*:*:*) -	echo bs2000-siemens-sysv -	exit ;; -    DS/*:UNIX_System_V:*:*) -	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} -	exit ;; -    *:Plan9:*:*) -	# "uname -m" is not consistent, so use $cputype instead. 386 -	# is converted to i386 for consistency with other x86 -	# operating systems. -	if test "$cputype" = "386"; then -	    UNAME_MACHINE=i386 -	else -	    UNAME_MACHINE="$cputype" -	fi -	echo ${UNAME_MACHINE}-unknown-plan9 -	exit ;; -    *:TOPS-10:*:*) -	echo pdp10-unknown-tops10 -	exit ;; -    *:TENEX:*:*) -	echo pdp10-unknown-tenex -	exit ;; -    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) -	echo pdp10-dec-tops20 -	exit ;; -    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) -	echo pdp10-xkl-tops20 -	exit ;; -    *:TOPS-20:*:*) -	echo pdp10-unknown-tops20 -	exit ;; -    *:ITS:*:*) -	echo pdp10-unknown-its -	exit ;; -    SEI:*:*:SEIUX) -        echo mips-sei-seiux${UNAME_RELEASE} -	exit ;; -    *:DragonFly:*:*) -	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` -	exit ;; -    *:*VMS:*:*) -    	UNAME_MACHINE=`(uname -p) 2>/dev/null` -	case "${UNAME_MACHINE}" in -	    A*) echo alpha-dec-vms ; exit ;; -	    I*) echo ia64-dec-vms ; exit ;; -	    V*) echo vax-dec-vms ; exit ;; -	esac ;; -    *:XENIX:*:SysV) -	echo i386-pc-xenix -	exit ;; -    i*86:skyos:*:*) -	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' -	exit ;; -esac - -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - -eval $set_cc_for_build -cat >$dummy.c <<EOF -#ifdef _SEQUENT_ -# include <sys/types.h> -# include <sys/utsname.h> -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) -  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed, -     I don't know....  */ -  printf ("mips-sony-bsd\n"); exit (0); -#else -#include <sys/param.h> -  printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 -          "4" -#else -	  "" -#endif -         ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) -  printf ("arm-acorn-riscix\n"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) -  printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif -  int version; -  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; -  if (version < 4) -    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); -  else -    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); -  exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) -  printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) -  printf ("ns32k-encore-mach\n"); exit (0); -#else -  printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) -  printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) -  printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) -  printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) -    struct utsname un; - -    uname(&un); - -    if (strncmp(un.version, "V2", 2) == 0) { -	printf ("i386-sequent-ptx2\n"); exit (0); -    } -    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ -	printf ("i386-sequent-ptx1\n"); exit (0); -    } -    printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -#  include <sys/param.h> -#  if defined (BSD) -#   if BSD == 43 -      printf ("vax-dec-bsd4.3\n"); exit (0); -#   else -#    if BSD == 199006 -      printf ("vax-dec-bsd4.3reno\n"); exit (0); -#    else -      printf ("vax-dec-bsd\n"); exit (0); -#    endif -#   endif -#  else -    printf ("vax-dec-bsd\n"); exit (0); -#  endif -# else -    printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) -  printf ("i860-alliant-bsd\n"); exit (0); -#endif - -  exit (1); -} -EOF - -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && -	{ echo "$SYSTEM_NAME"; exit; } - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then -    case `getsysinfo -f cpu_type` in -    c1*) -	echo c1-convex-bsd -	exit ;; -    c2*) -	if getsysinfo -f scalar_acc -	then echo c32-convex-bsd -	else echo c2-convex-bsd -	fi -	exit ;; -    c34*) -	echo c34-convex-bsd -	exit ;; -    c38*) -	echo c38-convex-bsd -	exit ;; -    c4*) -	echo c4-convex-bsd -	exit ;; -    esac -fi - -cat >&2 <<EOF -$0: unable to guess system type - -This script, last modified $timestamp, has failed to recognize -the operating system you are using. It is advised that you -download the most up to date version of the config scripts from - -  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess -and -  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub - -If the version you run ($0) is already up to date, please -send the following data and any information you think might be -pertinent to <config-patches@gnu.org> in order to provide the needed -information to handle your system. - -config.guess timestamp = $timestamp - -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X     = `(/bin/uname -X) 2>/dev/null` - -hostinfo               = `(hostinfo) 2>/dev/null` -/bin/universe          = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch              = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM  = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} -EOF - -exit 1 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/source3/lib/replace/config.sub b/source3/lib/replace/config.sub deleted file mode 100755 index 23cd6fd75c..0000000000 --- a/source3/lib/replace/config.sub +++ /dev/null @@ -1,1577 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script. -#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -#   2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. - -timestamp='2005-07-08' - -# This file is (in principle) common to ALL GNU software. -# The presence of a machine in this file suggests that SOME GNU software -# can handle that machine.  It does not imply ALL GNU software can. -# -# This file 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 3 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, see <http://www.gnu.org/licenses/>. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - - -# Please send patches to <config-patches@gnu.org>.  Submit a context -# diff and a properly formatted ChangeLog entry. -# -# Configuration subroutine to validate and canonicalize a configuration type. -# Supply the specified configuration type as an argument. -# If it is invalid, we print an error message on stderr and exit with code 1. -# Otherwise, we print the canonical config type on stdout and succeed. - -# This file is supposed to be the same for all GNU packages -# and recognize all the CPU types, system types and aliases -# that are meaningful with *any* GNU software. -# Each package is responsible for reporting which valid configurations -# it does not support.  The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a given -# machine specification into a single specification in the form: -#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS -       $0 [OPTION] ALIAS - -Canonicalize a configuration name. - -Operation modes: -  -h, --help         print this help, then exit -  -t, --time-stamp   print date of last modification, then exit -  -v, --version      print version number, then exit - -Report bugs and patches to <config-patches@gnu.org>." - -version="\ -GNU config.sub ($timestamp) - -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -Free Software Foundation, Inc. - -This is free software; see the source for copying conditions.  There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do -  case $1 in -    --time-stamp | --time* | -t ) -       echo "$timestamp" ; exit ;; -    --version | -v ) -       echo "$version" ; exit ;; -    --help | --h* | -h ) -       echo "$usage"; exit ;; -    -- )     # Stop option processing -       shift; break ;; -    - )	# Use stdin as input. -       break ;; -    -* ) -       echo "$me: invalid option $1$help" -       exit 1 ;; - -    *local*) -       # First pass through any local machine types. -       echo $1 -       exit ;; - -    * ) -       break ;; -  esac -done - -case $# in - 0) echo "$me: missing argument$help" >&2 -    exit 1;; - 1) ;; - *) echo "$me: too many arguments$help" >&2 -    exit 1;; -esac - -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in -  nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \ -  kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) -    os=-$maybe_os -    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` -    ;; -  *) -    basic_machine=`echo $1 | sed 's/-[^-]*$//'` -    if [ $basic_machine != $1 ] -    then os=`echo $1 | sed 's/.*-/-/'` -    else os=; fi -    ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work.  We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in -	-sun*os*) -		# Prevent following clause from handling this invalid input. -		;; -	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -	-apple | -axis | -knuth | -cray) -		os= -		basic_machine=$1 -		;; -	-sim | -cisco | -oki | -wec | -winbond) -		os= -		basic_machine=$1 -		;; -	-scout) -		;; -	-wrs) -		os=-vxworks -		basic_machine=$1 -		;; -	-chorusos*) -		os=-chorusos -		basic_machine=$1 -		;; - 	-chorusrdb) - 		os=-chorusrdb -		basic_machine=$1 - 		;; -	-hiux*) -		os=-hiuxwe2 -		;; -	-sco5) -		os=-sco3.2v5 -		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -		;; -	-sco4) -		os=-sco3.2v4 -		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -		;; -	-sco3.2.[4-9]*) -		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` -		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -		;; -	-sco3.2v[4-9]*) -		# Don't forget version if it is 3.2v4 or newer. -		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -		;; -	-sco*) -		os=-sco3.2v2 -		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -		;; -	-udk*) -		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -		;; -	-isc) -		os=-isc2.2 -		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -		;; -	-clix*) -		basic_machine=clipper-intergraph -		;; -	-isc*) -		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -		;; -	-lynx*) -		os=-lynxos -		;; -	-ptx*) -		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` -		;; -	-windowsnt*) -		os=`echo $os | sed -e 's/windowsnt/winnt/'` -		;; -	-psos*) -		os=-psos -		;; -	-mint | -mint[0-9]*) -		basic_machine=m68k-atari -		os=-mint -		;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -case $basic_machine in -	# Recognize the basic CPU types without company name. -	# Some are omitted here because they have special meanings below. -	1750a | 580 \ -	| a29k \ -	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ -	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ -	| am33_2.0 \ -	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ -	| bfin \ -	| c4x | clipper \ -	| d10v | d30v | dlx | dsp16xx \ -	| fr30 | frv \ -	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ -	| i370 | i860 | i960 | ia64 \ -	| ip2k | iq2000 \ -	| m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \ -	| mips | mipsbe | mipseb | mipsel | mipsle \ -	| mips16 \ -	| mips64 | mips64el \ -	| mips64vr | mips64vrel \ -	| mips64orion | mips64orionel \ -	| mips64vr4100 | mips64vr4100el \ -	| mips64vr4300 | mips64vr4300el \ -	| mips64vr5000 | mips64vr5000el \ -	| mips64vr5900 | mips64vr5900el \ -	| mipsisa32 | mipsisa32el \ -	| mipsisa32r2 | mipsisa32r2el \ -	| mipsisa64 | mipsisa64el \ -	| mipsisa64r2 | mipsisa64r2el \ -	| mipsisa64sb1 | mipsisa64sb1el \ -	| mipsisa64sr71k | mipsisa64sr71kel \ -	| mipstx39 | mipstx39el \ -	| mn10200 | mn10300 \ -	| ms1 \ -	| msp430 \ -	| ns16k | ns32k \ -	| or32 \ -	| pdp10 | pdp11 | pj | pjl \ -	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ -	| pyramid \ -	| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ -	| sh64 | sh64le \ -	| sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \ -	| sparcv8 | sparcv9 | sparcv9b \ -	| strongarm \ -	| tahoe | thumb | tic4x | tic80 | tron \ -	| v850 | v850e \ -	| we32k \ -	| x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ -	| z8k) -		basic_machine=$basic_machine-unknown -		;; -	m32c) -		basic_machine=$basic_machine-unknown -		;; -	m6811 | m68hc11 | m6812 | m68hc12) -		# Motorola 68HC11/12. -		basic_machine=$basic_machine-unknown -		os=-none -		;; -	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) -		;; - -	# We use `pc' rather than `unknown' -	# because (1) that's what they normally are, and -	# (2) the word "unknown" tends to confuse beginning users. -	i*86 | x86_64) -	  basic_machine=$basic_machine-pc -	  ;; -	# Object if more than one company name word. -	*-*-*) -		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 -		exit 1 -		;; -	# Recognize the basic CPU types with company name. -	580-* \ -	| a29k-* \ -	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ -	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ -	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ -	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \ -	| avr-* \ -	| bfin-* | bs2000-* \ -	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ -	| clipper-* | craynv-* | cydra-* \ -	| d10v-* | d30v-* | dlx-* \ -	| elxsi-* \ -	| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ -	| h8300-* | h8500-* \ -	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ -	| i*86-* | i860-* | i960-* | ia64-* \ -	| ip2k-* | iq2000-* \ -	| m32r-* | m32rle-* \ -	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ -	| m88110-* | m88k-* | maxq-* | mcore-* \ -	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ -	| mips16-* \ -	| mips64-* | mips64el-* \ -	| mips64vr-* | mips64vrel-* \ -	| mips64orion-* | mips64orionel-* \ -	| mips64vr4100-* | mips64vr4100el-* \ -	| mips64vr4300-* | mips64vr4300el-* \ -	| mips64vr5000-* | mips64vr5000el-* \ -	| mips64vr5900-* | mips64vr5900el-* \ -	| mipsisa32-* | mipsisa32el-* \ -	| mipsisa32r2-* | mipsisa32r2el-* \ -	| mipsisa64-* | mipsisa64el-* \ -	| mipsisa64r2-* | mipsisa64r2el-* \ -	| mipsisa64sb1-* | mipsisa64sb1el-* \ -	| mipsisa64sr71k-* | mipsisa64sr71kel-* \ -	| mipstx39-* | mipstx39el-* \ -	| mmix-* \ -	| ms1-* \ -	| msp430-* \ -	| none-* | np1-* | ns16k-* | ns32k-* \ -	| orion-* \ -	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ -	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ -	| pyramid-* \ -	| romp-* | rs6000-* \ -	| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \ -	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ -	| sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \ -	| sparclite-* \ -	| sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ -	| tahoe-* | thumb-* \ -	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ -	| tron-* \ -	| v850-* | v850e-* | vax-* \ -	| we32k-* \ -	| x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ -	| xstormy16-* | xtensa-* \ -	| ymp-* \ -	| z8k-*) -		;; -	m32c-*) -		;; -	# Recognize the various machine names and aliases which stand -	# for a CPU type and a company and sometimes even an OS. -	386bsd) -		basic_machine=i386-unknown -		os=-bsd -		;; -	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) -		basic_machine=m68000-att -		;; -	3b*) -		basic_machine=we32k-att -		;; -	a29khif) -		basic_machine=a29k-amd -		os=-udi -		;; -    	abacus) -		basic_machine=abacus-unknown -		;; -	adobe68k) -		basic_machine=m68010-adobe -		os=-scout -		;; -	alliant | fx80) -		basic_machine=fx80-alliant -		;; -	altos | altos3068) -		basic_machine=m68k-altos -		;; -	am29k) -		basic_machine=a29k-none -		os=-bsd -		;; -	amd64) -		basic_machine=x86_64-pc -		;; -	amd64-*) -		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` -		;; -	amdahl) -		basic_machine=580-amdahl -		os=-sysv -		;; -	amiga | amiga-*) -		basic_machine=m68k-unknown -		;; -	amigaos | amigados) -		basic_machine=m68k-unknown -		os=-amigaos -		;; -	amigaunix | amix) -		basic_machine=m68k-unknown -		os=-sysv4 -		;; -	apollo68) -		basic_machine=m68k-apollo -		os=-sysv -		;; -	apollo68bsd) -		basic_machine=m68k-apollo -		os=-bsd -		;; -	aux) -		basic_machine=m68k-apple -		os=-aux -		;; -	balance) -		basic_machine=ns32k-sequent -		os=-dynix -		;; -	c90) -		basic_machine=c90-cray -		os=-unicos -		;; -	convex-c1) -		basic_machine=c1-convex -		os=-bsd -		;; -	convex-c2) -		basic_machine=c2-convex -		os=-bsd -		;; -	convex-c32) -		basic_machine=c32-convex -		os=-bsd -		;; -	convex-c34) -		basic_machine=c34-convex -		os=-bsd -		;; -	convex-c38) -		basic_machine=c38-convex -		os=-bsd -		;; -	cray | j90) -		basic_machine=j90-cray -		os=-unicos -		;; -	craynv) -		basic_machine=craynv-cray -		os=-unicosmp -		;; -	cr16c) -		basic_machine=cr16c-unknown -		os=-elf -		;; -	crds | unos) -		basic_machine=m68k-crds -		;; -	crisv32 | crisv32-* | etraxfs*) -		basic_machine=crisv32-axis -		;; -	cris | cris-* | etrax*) -		basic_machine=cris-axis -		;; -	crx) -		basic_machine=crx-unknown -		os=-elf -		;; -	da30 | da30-*) -		basic_machine=m68k-da30 -		;; -	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) -		basic_machine=mips-dec -		;; -	decsystem10* | dec10*) -		basic_machine=pdp10-dec -		os=-tops10 -		;; -	decsystem20* | dec20*) -		basic_machine=pdp10-dec -		os=-tops20 -		;; -	delta | 3300 | motorola-3300 | motorola-delta \ -	      | 3300-motorola | delta-motorola) -		basic_machine=m68k-motorola -		;; -	delta88) -		basic_machine=m88k-motorola -		os=-sysv3 -		;; -	djgpp) -		basic_machine=i586-pc -		os=-msdosdjgpp -		;; -	dpx20 | dpx20-*) -		basic_machine=rs6000-bull -		os=-bosx -		;; -	dpx2* | dpx2*-bull) -		basic_machine=m68k-bull -		os=-sysv3 -		;; -	ebmon29k) -		basic_machine=a29k-amd -		os=-ebmon -		;; -	elxsi) -		basic_machine=elxsi-elxsi -		os=-bsd -		;; -	encore | umax | mmax) -		basic_machine=ns32k-encore -		;; -	es1800 | OSE68k | ose68k | ose | OSE) -		basic_machine=m68k-ericsson -		os=-ose -		;; -	fx2800) -		basic_machine=i860-alliant -		;; -	genix) -		basic_machine=ns32k-ns -		;; -	gmicro) -		basic_machine=tron-gmicro -		os=-sysv -		;; -	go32) -		basic_machine=i386-pc -		os=-go32 -		;; -	h3050r* | hiux*) -		basic_machine=hppa1.1-hitachi -		os=-hiuxwe2 -		;; -	h8300hms) -		basic_machine=h8300-hitachi -		os=-hms -		;; -	h8300xray) -		basic_machine=h8300-hitachi -		os=-xray -		;; -	h8500hms) -		basic_machine=h8500-hitachi -		os=-hms -		;; -	harris) -		basic_machine=m88k-harris -		os=-sysv3 -		;; -	hp300-*) -		basic_machine=m68k-hp -		;; -	hp300bsd) -		basic_machine=m68k-hp -		os=-bsd -		;; -	hp300hpux) -		basic_machine=m68k-hp -		os=-hpux -		;; -	hp3k9[0-9][0-9] | hp9[0-9][0-9]) -		basic_machine=hppa1.0-hp -		;; -	hp9k2[0-9][0-9] | hp9k31[0-9]) -		basic_machine=m68000-hp -		;; -	hp9k3[2-9][0-9]) -		basic_machine=m68k-hp -		;; -	hp9k6[0-9][0-9] | hp6[0-9][0-9]) -		basic_machine=hppa1.0-hp -		;; -	hp9k7[0-79][0-9] | hp7[0-79][0-9]) -		basic_machine=hppa1.1-hp -		;; -	hp9k78[0-9] | hp78[0-9]) -		# FIXME: really hppa2.0-hp -		basic_machine=hppa1.1-hp -		;; -	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) -		# FIXME: really hppa2.0-hp -		basic_machine=hppa1.1-hp -		;; -	hp9k8[0-9][13679] | hp8[0-9][13679]) -		basic_machine=hppa1.1-hp -		;; -	hp9k8[0-9][0-9] | hp8[0-9][0-9]) -		basic_machine=hppa1.0-hp -		;; -	hppa-next) -		os=-nextstep3 -		;; -	hppaosf) -		basic_machine=hppa1.1-hp -		os=-osf -		;; -	hppro) -		basic_machine=hppa1.1-hp -		os=-proelf -		;; -	i370-ibm* | ibm*) -		basic_machine=i370-ibm -		;; -# I'm not sure what "Sysv32" means.  Should this be sysv3.2? -	i*86v32) -		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` -		os=-sysv32 -		;; -	i*86v4*) -		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` -		os=-sysv4 -		;; -	i*86v) -		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` -		os=-sysv -		;; -	i*86sol2) -		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` -		os=-solaris2 -		;; -	i386mach) -		basic_machine=i386-mach -		os=-mach -		;; -	i386-vsta | vsta) -		basic_machine=i386-unknown -		os=-vsta -		;; -	iris | iris4d) -		basic_machine=mips-sgi -		case $os in -		    -irix*) -			;; -		    *) -			os=-irix4 -			;; -		esac -		;; -	isi68 | isi) -		basic_machine=m68k-isi -		os=-sysv -		;; -	m88k-omron*) -		basic_machine=m88k-omron -		;; -	magnum | m3230) -		basic_machine=mips-mips -		os=-sysv -		;; -	merlin) -		basic_machine=ns32k-utek -		os=-sysv -		;; -	mingw32) -		basic_machine=i386-pc -		os=-mingw32 -		;; -	miniframe) -		basic_machine=m68000-convergent -		;; -	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) -		basic_machine=m68k-atari -		os=-mint -		;; -	mips3*-*) -		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` -		;; -	mips3*) -		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown -		;; -	monitor) -		basic_machine=m68k-rom68k -		os=-coff -		;; -	morphos) -		basic_machine=powerpc-unknown -		os=-morphos -		;; -	msdos) -		basic_machine=i386-pc -		os=-msdos -		;; -	mvs) -		basic_machine=i370-ibm -		os=-mvs -		;; -	ncr3000) -		basic_machine=i486-ncr -		os=-sysv4 -		;; -	netbsd386) -		basic_machine=i386-unknown -		os=-netbsd -		;; -	netwinder) -		basic_machine=armv4l-rebel -		os=-linux -		;; -	news | news700 | news800 | news900) -		basic_machine=m68k-sony -		os=-newsos -		;; -	news1000) -		basic_machine=m68030-sony -		os=-newsos -		;; -	news-3600 | risc-news) -		basic_machine=mips-sony -		os=-newsos -		;; -	necv70) -		basic_machine=v70-nec -		os=-sysv -		;; -	next | m*-next ) -		basic_machine=m68k-next -		case $os in -		    -nextstep* ) -			;; -		    -ns2*) -		      os=-nextstep2 -			;; -		    *) -		      os=-nextstep3 -			;; -		esac -		;; -	nh3000) -		basic_machine=m68k-harris -		os=-cxux -		;; -	nh[45]000) -		basic_machine=m88k-harris -		os=-cxux -		;; -	nindy960) -		basic_machine=i960-intel -		os=-nindy -		;; -	mon960) -		basic_machine=i960-intel -		os=-mon960 -		;; -	nonstopux) -		basic_machine=mips-compaq -		os=-nonstopux -		;; -	np1) -		basic_machine=np1-gould -		;; -	nsr-tandem) -		basic_machine=nsr-tandem -		;; -	op50n-* | op60c-*) -		basic_machine=hppa1.1-oki -		os=-proelf -		;; -	openrisc | openrisc-*) -		basic_machine=or32-unknown -		;; -	os400) -		basic_machine=powerpc-ibm -		os=-os400 -		;; -	OSE68000 | ose68000) -		basic_machine=m68000-ericsson -		os=-ose -		;; -	os68k) -		basic_machine=m68k-none -		os=-os68k -		;; -	pa-hitachi) -		basic_machine=hppa1.1-hitachi -		os=-hiuxwe2 -		;; -	paragon) -		basic_machine=i860-intel -		os=-osf -		;; -	pbd) -		basic_machine=sparc-tti -		;; -	pbb) -		basic_machine=m68k-tti -		;; -	pc532 | pc532-*) -		basic_machine=ns32k-pc532 -		;; -	pentium | p5 | k5 | k6 | nexgen | viac3) -		basic_machine=i586-pc -		;; -	pentiumpro | p6 | 6x86 | athlon | athlon_*) -		basic_machine=i686-pc -		;; -	pentiumii | pentium2 | pentiumiii | pentium3) -		basic_machine=i686-pc -		;; -	pentium4) -		basic_machine=i786-pc -		;; -	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) -		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` -		;; -	pentiumpro-* | p6-* | 6x86-* | athlon-*) -		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` -		;; -	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) -		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` -		;; -	pentium4-*) -		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` -		;; -	pn) -		basic_machine=pn-gould -		;; -	power)	basic_machine=power-ibm -		;; -	ppc)	basic_machine=powerpc-unknown -		;; -	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` -		;; -	ppcle | powerpclittle | ppc-le | powerpc-little) -		basic_machine=powerpcle-unknown -		;; -	ppcle-* | powerpclittle-*) -		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` -		;; -	ppc64)	basic_machine=powerpc64-unknown -		;; -	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` -		;; -	ppc64le | powerpc64little | ppc64-le | powerpc64-little) -		basic_machine=powerpc64le-unknown -		;; -	ppc64le-* | powerpc64little-*) -		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` -		;; -	ps2) -		basic_machine=i386-ibm -		;; -	pw32) -		basic_machine=i586-unknown -		os=-pw32 -		;; -	rom68k) -		basic_machine=m68k-rom68k -		os=-coff -		;; -	rm[46]00) -		basic_machine=mips-siemens -		;; -	rtpc | rtpc-*) -		basic_machine=romp-ibm -		;; -	s390 | s390-*) -		basic_machine=s390-ibm -		;; -	s390x | s390x-*) -		basic_machine=s390x-ibm -		;; -	sa29200) -		basic_machine=a29k-amd -		os=-udi -		;; -	sb1) -		basic_machine=mipsisa64sb1-unknown -		;; -	sb1el) -		basic_machine=mipsisa64sb1el-unknown -		;; -	sei) -		basic_machine=mips-sei -		os=-seiux -		;; -	sequent) -		basic_machine=i386-sequent -		;; -	sh) -		basic_machine=sh-hitachi -		os=-hms -		;; -	sh64) -		basic_machine=sh64-unknown -		;; -	sparclite-wrs | simso-wrs) -		basic_machine=sparclite-wrs -		os=-vxworks -		;; -	sps7) -		basic_machine=m68k-bull -		os=-sysv2 -		;; -	spur) -		basic_machine=spur-unknown -		;; -	st2000) -		basic_machine=m68k-tandem -		;; -	stratus) -		basic_machine=i860-stratus -		os=-sysv4 -		;; -	sun2) -		basic_machine=m68000-sun -		;; -	sun2os3) -		basic_machine=m68000-sun -		os=-sunos3 -		;; -	sun2os4) -		basic_machine=m68000-sun -		os=-sunos4 -		;; -	sun3os3) -		basic_machine=m68k-sun -		os=-sunos3 -		;; -	sun3os4) -		basic_machine=m68k-sun -		os=-sunos4 -		;; -	sun4os3) -		basic_machine=sparc-sun -		os=-sunos3 -		;; -	sun4os4) -		basic_machine=sparc-sun -		os=-sunos4 -		;; -	sun4sol2) -		basic_machine=sparc-sun -		os=-solaris2 -		;; -	sun3 | sun3-*) -		basic_machine=m68k-sun -		;; -	sun4) -		basic_machine=sparc-sun -		;; -	sun386 | sun386i | roadrunner) -		basic_machine=i386-sun -		;; -	sv1) -		basic_machine=sv1-cray -		os=-unicos -		;; -	symmetry) -		basic_machine=i386-sequent -		os=-dynix -		;; -	t3e) -		basic_machine=alphaev5-cray -		os=-unicos -		;; -	t90) -		basic_machine=t90-cray -		os=-unicos -		;; -	tic54x | c54x*) -		basic_machine=tic54x-unknown -		os=-coff -		;; -	tic55x | c55x*) -		basic_machine=tic55x-unknown -		os=-coff -		;; -	tic6x | c6x*) -		basic_machine=tic6x-unknown -		os=-coff -		;; -	tx39) -		basic_machine=mipstx39-unknown -		;; -	tx39el) -		basic_machine=mipstx39el-unknown -		;; -	toad1) -		basic_machine=pdp10-xkl -		os=-tops20 -		;; -	tower | tower-32) -		basic_machine=m68k-ncr -		;; -	tpf) -		basic_machine=s390x-ibm -		os=-tpf -		;; -	udi29k) -		basic_machine=a29k-amd -		os=-udi -		;; -	ultra3) -		basic_machine=a29k-nyu -		os=-sym1 -		;; -	v810 | necv810) -		basic_machine=v810-nec -		os=-none -		;; -	vaxv) -		basic_machine=vax-dec -		os=-sysv -		;; -	vms) -		basic_machine=vax-dec -		os=-vms -		;; -	vpp*|vx|vx-*) -		basic_machine=f301-fujitsu -		;; -	vxworks960) -		basic_machine=i960-wrs -		os=-vxworks -		;; -	vxworks68) -		basic_machine=m68k-wrs -		os=-vxworks -		;; -	vxworks29k) -		basic_machine=a29k-wrs -		os=-vxworks -		;; -	w65*) -		basic_machine=w65-wdc -		os=-none -		;; -	w89k-*) -		basic_machine=hppa1.1-winbond -		os=-proelf -		;; -	xbox) -		basic_machine=i686-pc -		os=-mingw32 -		;; -	xps | xps100) -		basic_machine=xps100-honeywell -		;; -	ymp) -		basic_machine=ymp-cray -		os=-unicos -		;; -	z8k-*-coff) -		basic_machine=z8k-unknown -		os=-sim -		;; -	none) -		basic_machine=none-none -		os=-none -		;; - -# Here we handle the default manufacturer of certain CPU types.  It is in -# some cases the only manufacturer, in others, it is the most popular. -	w89k) -		basic_machine=hppa1.1-winbond -		;; -	op50n) -		basic_machine=hppa1.1-oki -		;; -	op60c) -		basic_machine=hppa1.1-oki -		;; -	romp) -		basic_machine=romp-ibm -		;; -	mmix) -		basic_machine=mmix-knuth -		;; -	rs6000) -		basic_machine=rs6000-ibm -		;; -	vax) -		basic_machine=vax-dec -		;; -	pdp10) -		# there are many clones, so DEC is not a safe bet -		basic_machine=pdp10-unknown -		;; -	pdp11) -		basic_machine=pdp11-dec -		;; -	we32k) -		basic_machine=we32k-att -		;; -	sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) -		basic_machine=sh-unknown -		;; -	sparc | sparcv8 | sparcv9 | sparcv9b) -		basic_machine=sparc-sun -		;; -	cydra) -		basic_machine=cydra-cydrome -		;; -	orion) -		basic_machine=orion-highlevel -		;; -	orion105) -		basic_machine=clipper-highlevel -		;; -	mac | mpw | mac-mpw) -		basic_machine=m68k-apple -		;; -	pmac | pmac-mpw) -		basic_machine=powerpc-apple -		;; -	*-unknown) -		# Make sure to match an already-canonicalized machine name. -		;; -	*) -		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 -		exit 1 -		;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in -	*-digital*) -		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` -		;; -	*-commodore*) -		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` -		;; -	*) -		;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x"$os" != x"" ] -then -case $os in -        # First match some system type aliases -        # that might get confused with valid system types. -	# -solaris* is a basic system type, with this one exception. -	-solaris1 | -solaris1.*) -		os=`echo $os | sed -e 's|solaris1|sunos4|'` -		;; -	-solaris) -		os=-solaris2 -		;; -	-svr4*) -		os=-sysv4 -		;; -	-unixware*) -		os=-sysv4.2uw -		;; -	-gnu/linux*) -		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` -		;; -	# First accept the basic system types. -	# The portable systems comes first. -	# Each alternative MUST END IN A *, to match a version number. -	# -sysv* is not here because it comes later, after sysvr4. -	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ -	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ -	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ -	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ -	      | -aos* \ -	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ -	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ -	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ -	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ -	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ -	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ -	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ -	      | -chorusos* | -chorusrdb* \ -	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -	      | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \ -	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ -	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ -	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ -	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ -	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ -	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ -	      | -skyos* | -haiku*) -	# Remember, each alternative MUST END IN *, to match a version number. -		;; -	-qnx*) -		case $basic_machine in -		    x86-* | i*86-*) -			;; -		    *) -			os=-nto$os -			;; -		esac -		;; -	-nto-qnx*) -		;; -	-nto*) -		os=`echo $os | sed -e 's|nto|nto-qnx|'` -		;; -	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ -	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ -	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) -		;; -	-mac*) -		os=`echo $os | sed -e 's|mac|macos|'` -		;; -	-linux-dietlibc) -		os=-linux-dietlibc -		;; -	-linux*) -		os=`echo $os | sed -e 's|linux|linux-gnu|'` -		;; -	-sunos5*) -		os=`echo $os | sed -e 's|sunos5|solaris2|'` -		;; -	-sunos6*) -		os=`echo $os | sed -e 's|sunos6|solaris3|'` -		;; -	-opened*) -		os=-openedition -		;; -        -os400*) -		os=-os400 -		;; -	-wince*) -		os=-wince -		;; -	-osfrose*) -		os=-osfrose -		;; -	-osf*) -		os=-osf -		;; -	-utek*) -		os=-bsd -		;; -	-dynix*) -		os=-bsd -		;; -	-acis*) -		os=-aos -		;; -	-atheos*) -		os=-atheos -		;; -	-syllable*) -		os=-syllable -		;; -	-386bsd) -		os=-bsd -		;; -	-ctix* | -uts*) -		os=-sysv -		;; -	-nova*) -		os=-rtmk-nova -		;; -	-ns2 ) -		os=-nextstep2 -		;; -	-nsk*) -		os=-nsk -		;; -	# Preserve the version number of sinix5. -	-sinix5.*) -		os=`echo $os | sed -e 's|sinix|sysv|'` -		;; -	-sinix*) -		os=-sysv4 -		;; -        -tpf*) -		os=-tpf -		;; -	-triton*) -		os=-sysv3 -		;; -	-oss*) -		os=-sysv3 -		;; -	-svr4) -		os=-sysv4 -		;; -	-svr3) -		os=-sysv3 -		;; -	-sysvr4) -		os=-sysv4 -		;; -	# This must come after -sysvr4. -	-sysv*) -		;; -	-ose*) -		os=-ose -		;; -	-es1800*) -		os=-ose -		;; -	-xenix) -		os=-xenix -		;; -	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) -		os=-mint -		;; -	-aros*) -		os=-aros -		;; -	-kaos*) -		os=-kaos -		;; -	-zvmoe) -		os=-zvmoe -		;; -	-none) -		;; -	*) -		# Get rid of the `-' at the beginning of $os. -		os=`echo $os | sed 's/[^-]*-//'` -		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 -		exit 1 -		;; -esac -else - -# Here we handle the default operating systems that come with various machines. -# The value should be what the vendor currently ships out the door with their -# machine or put another way, the most popular os provided with the machine. - -# Note that if you're going to try to match "-MANUFACTURER" here (say, -# "-sun"), then you have to tell the case statement up towards the top -# that MANUFACTURER isn't an operating system.  Otherwise, code above -# will signal an error saying that MANUFACTURER isn't an operating -# system, and we'll never get to this point. - -case $basic_machine in -	*-acorn) -		os=-riscix1.2 -		;; -	arm*-rebel) -		os=-linux -		;; -	arm*-semi) -		os=-aout -		;; -    c4x-* | tic4x-*) -        os=-coff -        ;; -	# This must come before the *-dec entry. -	pdp10-*) -		os=-tops20 -		;; -	pdp11-*) -		os=-none -		;; -	*-dec | vax-*) -		os=-ultrix4.2 -		;; -	m68*-apollo) -		os=-domain -		;; -	i386-sun) -		os=-sunos4.0.2 -		;; -	m68000-sun) -		os=-sunos3 -		# This also exists in the configure program, but was not the -		# default. -		# os=-sunos4 -		;; -	m68*-cisco) -		os=-aout -		;; -	mips*-cisco) -		os=-elf -		;; -	mips*-*) -		os=-elf -		;; -	or32-*) -		os=-coff -		;; -	*-tti)	# must be before sparc entry or we get the wrong os. -		os=-sysv3 -		;; -	sparc-* | *-sun) -		os=-sunos4.1.1 -		;; -	*-be) -		os=-beos -		;; -	*-haiku) -		os=-haiku -		;; -	*-ibm) -		os=-aix -		;; -    	*-knuth) -		os=-mmixware -		;; -	*-wec) -		os=-proelf -		;; -	*-winbond) -		os=-proelf -		;; -	*-oki) -		os=-proelf -		;; -	*-hp) -		os=-hpux -		;; -	*-hitachi) -		os=-hiux -		;; -	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) -		os=-sysv -		;; -	*-cbm) -		os=-amigaos -		;; -	*-dg) -		os=-dgux -		;; -	*-dolphin) -		os=-sysv3 -		;; -	m68k-ccur) -		os=-rtu -		;; -	m88k-omron*) -		os=-luna -		;; -	*-next ) -		os=-nextstep -		;; -	*-sequent) -		os=-ptx -		;; -	*-crds) -		os=-unos -		;; -	*-ns) -		os=-genix -		;; -	i370-*) -		os=-mvs -		;; -	*-next) -		os=-nextstep3 -		;; -	*-gould) -		os=-sysv -		;; -	*-highlevel) -		os=-bsd -		;; -	*-encore) -		os=-bsd -		;; -	*-sgi) -		os=-irix -		;; -	*-siemens) -		os=-sysv4 -		;; -	*-masscomp) -		os=-rtu -		;; -	f30[01]-fujitsu | f700-fujitsu) -		os=-uxpv -		;; -	*-rom68k) -		os=-coff -		;; -	*-*bug) -		os=-coff -		;; -	*-apple) -		os=-macos -		;; -	*-atari*) -		os=-mint -		;; -	*) -		os=-none -		;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer.  We pick the logical manufacturer. -vendor=unknown -case $basic_machine in -	*-unknown) -		case $os in -			-riscix*) -				vendor=acorn -				;; -			-sunos*) -				vendor=sun -				;; -			-aix*) -				vendor=ibm -				;; -			-beos*) -				vendor=be -				;; -			-hpux*) -				vendor=hp -				;; -			-mpeix*) -				vendor=hp -				;; -			-hiux*) -				vendor=hitachi -				;; -			-unos*) -				vendor=crds -				;; -			-dgux*) -				vendor=dg -				;; -			-luna*) -				vendor=omron -				;; -			-genix*) -				vendor=ns -				;; -			-mvs* | -opened*) -				vendor=ibm -				;; -			-os400*) -				vendor=ibm -				;; -			-ptx*) -				vendor=sequent -				;; -			-tpf*) -				vendor=ibm -				;; -			-vxsim* | -vxworks* | -windiss*) -				vendor=wrs -				;; -			-aux*) -				vendor=apple -				;; -			-hms*) -				vendor=hitachi -				;; -			-mpw* | -macos*) -				vendor=apple -				;; -			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) -				vendor=atari -				;; -			-vos*) -				vendor=stratus -				;; -		esac -		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` -		;; -esac - -echo $basic_machine$os -exit - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/source3/lib/replace/configure.ac b/source3/lib/replace/configure.ac deleted file mode 100644 index 81997e09b7..0000000000 --- a/source3/lib/replace/configure.ac +++ /dev/null @@ -1,30 +0,0 @@ -AC_PREREQ(2.50) -AC_INIT(replace.c) -AC_CONFIG_SRCDIR([replace.c]) -AC_CONFIG_HEADER(config.h) - -CFLAGS="$CFLAGS -I$srcdir" - -AC_LIBREPLACE_ALL_CHECKS -AC_LIBREPLACE_NETWORK_CHECKS - -if test "$ac_cv_prog_gcc" = yes; then -   CFLAGS="$CFLAGS -Wall" -   CFLAGS="$CFLAGS -W" -   CFLAGS="$CFLAGS -Wshadow" -   CFLAGS="$CFLAGS -Wstrict-prototypes" -   CFLAGS="$CFLAGS -Wpointer-arith" -   CFLAGS="$CFLAGS -Wcast-qual" -   CFLAGS="$CFLAGS -Wcast-align" -   CFLAGS="$CFLAGS -Wwrite-strings" -   CFLAGS="$CFLAGS -Werror-implicit-function-declaration" -   CFLAGS="$CFLAGS -Wformat=2" -   CFLAGS="$CFLAGS -Wno-format-y2k" -fi - -LIBS="${LIBREPLACE_NETWORK_LIBS}" -AC_SUBST(LIBS) - -AC_SUBST(LDFLAGS) - -AC_OUTPUT(Makefile) diff --git a/source3/lib/replace/dlfcn.c b/source3/lib/replace/dlfcn.c deleted file mode 100644 index 3b109d7e40..0000000000 --- a/source3/lib/replace/dlfcn.c +++ /dev/null @@ -1,75 +0,0 @@ -/*  -   Unix SMB/CIFS implementation. -   Samba system utilities -   Copyright (C) Andrew Tridgell 1992-1998 -   Copyright (C) Jeremy Allison 1998-2002 - -     ** 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" -#ifdef HAVE_DL_H -#include <dl.h> -#endif - -#ifndef HAVE_DLOPEN -#ifdef DLOPEN_TAKES_UNSIGNED_FLAGS -void *rep_dlopen(const char *name, unsigned int flags) -#else -void *rep_dlopen(const char *name, int flags) -#endif -{ -#ifdef HAVE_SHL_LOAD -	if (name == NULL) -		return PROG_HANDLE; -	return (void *)shl_load(name, flags, 0); -#else -	return NULL; -#endif -} -#endif - -#ifndef HAVE_DLSYM -void *rep_dlsym(void *handle, const char *symbol) -{ -#ifdef HAVE_SHL_FINDSYM -	void *sym_addr; -	if (!shl_findsym((shl_t *)&handle, symbol, TYPE_UNDEFINED, &sym_addr)) -		return sym_addr; -#endif -    return NULL; -} -#endif - -#ifndef HAVE_DLERROR -char *rep_dlerror(void) -{ -	return "dynamic loading of objects not supported on this platform"; -} -#endif - -#ifndef HAVE_DLCLOSE -int rep_dlclose(void *handle) -{ -#ifdef HAVE_SHL_CLOSE -	return shl_unload((shl_t)handle); -#else -	return 0; -#endif -} -#endif diff --git a/source3/lib/replace/dlfcn.m4 b/source3/lib/replace/dlfcn.m4 deleted file mode 100644 index 42f56f26be..0000000000 --- a/source3/lib/replace/dlfcn.m4 +++ /dev/null @@ -1,31 +0,0 @@ -dnl dummies provided by dlfcn.c if not available -save_LIBS="$LIBS" -LIBS="" - -libreplace_cv_dlfcn=no -AC_SEARCH_LIBS(dlopen, dl) - -AC_CHECK_HEADERS(dlfcn.h) -AC_CHECK_FUNCS([dlopen dlsym dlerror dlclose],[],[libreplace_cv_dlfcn=yes]) - -libreplace_cv_shl=no -AC_SEARCH_LIBS(shl_load, sl) -AC_CHECK_HEADERS(dl.h) -AC_CHECK_FUNCS([shl_load shl_unload shl_findsym],[],[libreplace_cv_shl=yes]) - -AC_VERIFY_C_PROTOTYPE([void *dlopen(const char* filename, unsigned int flags)], -	[ -	return 0; -	],[ -	AC_DEFINE(DLOPEN_TAKES_UNSIGNED_FLAGS, 1, [Whether dlopen takes unsigned int flags]) -	],[],[ -	#include <dlfcn.h> -	]) - -if test x"${libreplace_cv_dlfcn}" = x"yes";then -	LIBREPLACEOBJ="${LIBREPLACEOBJ} dlfcn.o" -fi - -LIBDL="$LIBS" -AC_SUBST(LIBDL) -LIBS="$save_LIBS" diff --git a/source3/lib/replace/getaddrinfo.c b/source3/lib/replace/getaddrinfo.c deleted file mode 100644 index c5cd52be93..0000000000 --- a/source3/lib/replace/getaddrinfo.c +++ /dev/null @@ -1,497 +0,0 @@ -/* -PostgreSQL Database Management System -(formerly known as Postgres, then as Postgres95) - -Portions Copyright (c) 1996-2005, The PostgreSQL Global Development Group - -Portions Copyright (c) 1994, The Regents of the University of California - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose, without fee, and without a written agreement -is hereby granted, provided that the above copyright notice and this paragraph -and the following two paragraphs appear in all copies. - -IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING -LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, -EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGE. - -THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS -TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. - -*/ - -/*------------------------------------------------------------------------- - * - * getaddrinfo.c - *	  Support getaddrinfo() on platforms that don't have it. - * - * We also supply getnameinfo() here, assuming that the platform will have - * it if and only if it has getaddrinfo().	If this proves false on some - * platform, we'll need to split this file and provide a separate configure - * test for getnameinfo(). - * - * Copyright (c) 2003-2007, PostgreSQL Global Development Group - * - * Copyright (C) 2007 Jeremy Allison. - * Modified to return multiple IPv4 addresses for Samba. - * - *------------------------------------------------------------------------- - */ - -#include "replace.h" -#include "system/network.h" - -#ifndef SMB_MALLOC -#define SMB_MALLOC(s) malloc(s) -#endif - -#ifndef SMB_STRDUP -#define SMB_STRDUP(s) strdup(s) -#endif - -static int check_hostent_err(struct hostent *hp) -{ -	if (!hp) { -		switch (h_errno) { -			case HOST_NOT_FOUND: -			case NO_DATA: -				return EAI_NONAME; -			case TRY_AGAIN: -				return EAI_AGAIN; -			case NO_RECOVERY: -			default: -				return EAI_FAIL; -		} -	} -	if (!hp->h_name || hp->h_addrtype != AF_INET) { -		return EAI_FAIL; -	} -	return 0; -} - -static char *canon_name_from_hostent(struct hostent *hp, -				int *perr) -{ -	char *ret = NULL; - -	*perr = check_hostent_err(hp); -	if (*perr) { -		return NULL; -	} -	ret = SMB_STRDUP(hp->h_name); -	if (!ret) { -		*perr = EAI_MEMORY; -	} -	return ret; -} - -static char *get_my_canon_name(int *perr) -{ -	char name[HOST_NAME_MAX+1]; - -	if (gethostname(name, HOST_NAME_MAX) == -1) { -		*perr = EAI_FAIL; -		return NULL; -	} -	/* Ensure null termination. */ -	name[HOST_NAME_MAX] = '\0'; -	return canon_name_from_hostent(gethostbyname(name), perr); -} - -static char *get_canon_name_from_addr(struct in_addr ip, -				int *perr) -{ -	return canon_name_from_hostent( -			gethostbyaddr(&ip, sizeof(ip), AF_INET), -			perr); -} - -static struct addrinfo *alloc_entry(const struct addrinfo *hints, -				struct in_addr ip, -				unsigned short port) -{ -	struct sockaddr_in *psin = NULL; -	struct addrinfo *ai = SMB_MALLOC(sizeof(*ai)); - -	if (!ai) { -		return NULL; -	} -	memset(ai, '\0', sizeof(*ai)); - -	psin = SMB_MALLOC(sizeof(*psin)); -	if (!psin) { -		free(ai); -		return NULL; -	} - -	memset(psin, '\0', sizeof(*psin)); - -	psin->sin_family = AF_INET; -	psin->sin_port = htons(port); -	psin->sin_addr = ip; - -	ai->ai_flags = 0; -	ai->ai_family = AF_INET; -	ai->ai_socktype = hints->ai_socktype; -	ai->ai_protocol = hints->ai_protocol; -	ai->ai_addrlen = sizeof(*psin); -	ai->ai_addr = (struct sockaddr *) psin; -	ai->ai_canonname = NULL; -	ai->ai_next = NULL; - -	return ai; -} - -/* - * get address info for a single ipv4 address. - * - *	Bugs:	- servname can only be a number, not text. - */ - -static int getaddr_info_single_addr(const char *service, -				uint32_t addr, -				const struct addrinfo *hints, -				struct addrinfo **res) -{ - -	struct addrinfo *ai = NULL; -	struct in_addr ip; -	unsigned short port = 0; - -	if (service) { -		port = (unsigned short)atoi(service); -	} -	ip.s_addr = htonl(addr); - -	ai = alloc_entry(hints, ip, port); -	if (!ai) { -		return EAI_MEMORY; -	} - -	/* If we're asked for the canonical name, -	 * make sure it returns correctly. */ -	if (!(hints->ai_flags & AI_NUMERICSERV) && -			hints->ai_flags & AI_CANONNAME) { -		int err; -		if (addr == INADDR_LOOPBACK || addr == INADDR_ANY) { -			ai->ai_canonname = get_my_canon_name(&err); -		} else { -			ai->ai_canonname = -			get_canon_name_from_addr(ip,&err); -		} -		if (ai->ai_canonname == NULL) { -			freeaddrinfo(ai); -			return err; -		} -	} - -	*res = ai; -	return 0; -} - -/* - * get address info for multiple ipv4 addresses. - * - *	Bugs:	- servname can only be a number, not text. - */ - -static int getaddr_info_name(const char *node, -				const char *service, -				const struct addrinfo *hints, -				struct addrinfo **res) -{ -	struct addrinfo *listp = NULL, *prevp = NULL; -	char **pptr = NULL; -	int err; -	struct hostent *hp = NULL; -	unsigned short port = 0; - -	if (service) { -		port = (unsigned short)atoi(service); -	} - -	hp = gethostbyname(node); -	err = check_hostent_err(hp); -	if (err) { -		return err; -	} - -	for(pptr = hp->h_addr_list; *pptr; pptr++) { -		struct in_addr ip = *(struct in_addr *)*pptr; -		struct addrinfo *ai = alloc_entry(hints, ip, port); - -		if (!ai) { -			freeaddrinfo(listp); -			return EAI_MEMORY; -		} - -		if (!listp) { -			listp = ai; -			prevp = ai; -			ai->ai_canonname = SMB_STRDUP(hp->h_name); -			if (!ai->ai_canonname) { -				freeaddrinfo(listp); -				return EAI_MEMORY; -			} -		} else { -			prevp->ai_next = ai; -			prevp = ai; -		} -	} -	*res = listp; -	return 0; -} - -/* - * get address info for ipv4 sockets. - * - *	Bugs:	- servname can only be a number, not text. - */ - -int rep_getaddrinfo(const char *node, -		const char *service, -		const struct addrinfo * hintp, -		struct addrinfo ** res) -{ -	struct addrinfo hints; - -	/* Setup the hints struct. */ -	if (hintp == NULL) { -		memset(&hints, 0, sizeof(hints)); -		hints.ai_family = AF_INET; -		hints.ai_socktype = SOCK_STREAM; -	} else { -		memcpy(&hints, hintp, sizeof(hints)); -	} - -	if (hints.ai_family != AF_INET && hints.ai_family != AF_UNSPEC) { -		return EAI_FAMILY; -	} - -	if (hints.ai_socktype == 0) { -		hints.ai_socktype = SOCK_STREAM; -	} - -	if (!node && !service) { -		return EAI_NONAME; -	} - -	if (node) { -		if (node[0] == '\0') { -			return getaddr_info_single_addr(service, -					INADDR_ANY, -					&hints, -					res); -		} else if (hints.ai_flags & AI_NUMERICHOST) { -			struct in_addr ip; -			if (!inet_aton(node, &ip)) { -				return EAI_FAIL; -			} -			return getaddr_info_single_addr(service, -					ntohl(ip.s_addr), -					&hints, -					res); -		} else { -			return getaddr_info_name(node, -						service, -						&hints, -						res); -		} -	} else if (hints.ai_flags & AI_PASSIVE) { -		return getaddr_info_single_addr(service, -					INADDR_ANY, -					&hints, -					res); -	} -	return getaddr_info_single_addr(service, -					INADDR_LOOPBACK, -					&hints, -					res); -} - - -void rep_freeaddrinfo(struct addrinfo *res) -{ -	struct addrinfo *next = NULL; - -	for (;res; res = next) { -		next = res->ai_next; -		if (res->ai_canonname) { -			free(res->ai_canonname); -		} -		if (res->ai_addr) { -			free(res->ai_addr); -		} -		free(res); -	} -} - - -const char *rep_gai_strerror(int errcode) -{ -#ifdef HAVE_HSTRERROR -	int			hcode; - -	switch (errcode) -	{ -		case EAI_NONAME: -			hcode = HOST_NOT_FOUND; -			break; -		case EAI_AGAIN: -			hcode = TRY_AGAIN; -			break; -		case EAI_FAIL: -		default: -			hcode = NO_RECOVERY; -			break; -	} - -	return hstrerror(hcode); -#else							/* !HAVE_HSTRERROR */ - -	switch (errcode) -	{ -		case EAI_NONAME: -			return "Unknown host"; -		case EAI_AGAIN: -			return "Host name lookup failure"; -#ifdef EAI_BADFLAGS -		case EAI_BADFLAGS: -			return "Invalid argument"; -#endif -#ifdef EAI_FAMILY -		case EAI_FAMILY: -			return "Address family not supported"; -#endif -#ifdef EAI_MEMORY -		case EAI_MEMORY: -			return "Not enough memory"; -#endif -#ifdef EAI_NODATA -		case EAI_NODATA: -			return "No host data of that type was found"; -#endif -#ifdef EAI_SERVICE -		case EAI_SERVICE: -			return "Class type not found"; -#endif -#ifdef EAI_SOCKTYPE -		case EAI_SOCKTYPE: -			return "Socket type not supported"; -#endif -		default: -			return "Unknown server error"; -	} -#endif   /* HAVE_HSTRERROR */ -} - -static int gethostnameinfo(const struct sockaddr *sa, -			char *node, -			size_t nodelen, -			int flags) -{ -	int ret = -1; -	char *p = NULL; - -	if (!(flags & NI_NUMERICHOST)) { -		struct hostent *hp = gethostbyaddr( -				&((struct sockaddr_in *)sa)->sin_addr, -				sizeof(struct in_addr), -				sa->sa_family); -		ret = check_hostent_err(hp); -		if (ret == 0) { -			/* Name looked up successfully. */ -			ret = snprintf(node, nodelen, "%s", hp->h_name); -			if (ret < 0 || (size_t)ret >= nodelen) { -				return EAI_MEMORY; -			} -			if (flags & NI_NOFQDN) { -				p = strchr(node,'.'); -				if (p) { -					*p = '\0'; -				} -			} -			return 0; -		} - -		if (flags & NI_NAMEREQD) { -			/* If we require a name and didn't get one, -			 * automatically fail. */ -			return ret; -		} -		/* Otherwise just fall into the numeric host code... */ -	} -	p = inet_ntoa(((struct sockaddr_in *)sa)->sin_addr); -	ret = snprintf(node, nodelen, "%s", p); -	if (ret < 0 || (size_t)ret >= nodelen) { -		return EAI_MEMORY; -	} -	return 0; -} - -static int getservicenameinfo(const struct sockaddr *sa, -			char *service, -			size_t servicelen, -			int flags) -{ -	int ret = -1; -	int port = ntohs(((struct sockaddr_in *)sa)->sin_port); - -	if (!(flags & NI_NUMERICSERV)) { -		struct servent *se = getservbyport( -				port, -				(flags & NI_DGRAM) ? "udp" : "tcp"); -		if (se && se->s_name) { -			/* Service name looked up successfully. */ -			ret = snprintf(service, servicelen, "%s", se->s_name); -			if (ret < 0 || (size_t)ret >= servicelen) { -				return EAI_MEMORY; -			} -			return 0; -		} -		/* Otherwise just fall into the numeric service code... */ -	} -	ret = snprintf(service, servicelen, "%d", port); -	if (ret < 0 || (size_t)ret >= servicelen) { -		return EAI_MEMORY; -	} -	return 0; -} - -/* - * Convert an ipv4 address to a hostname. - * - * Bugs:	- No IPv6 support. - */ -int rep_getnameinfo(const struct sockaddr *sa, socklen_t salen, -			char *node, size_t nodelen, -			char *service, size_t servicelen, int flags) -{ - -	/* Invalid arguments. */ -	if (sa == NULL || (node == NULL && service == NULL)) { -		return EAI_FAIL; -	} - -	if (sa->sa_family != AF_INET) { -		return EAI_FAIL; -	} - -	if (salen < sizeof(struct sockaddr_in)) { -		return EAI_FAIL; -	} - -	if (node) { -		return gethostnameinfo(sa, node, nodelen, flags); -	} - -	if (service) { -		return getservicenameinfo(sa, service, servicelen, flags); -	} -	return 0; -} diff --git a/source3/lib/replace/getaddrinfo.h b/source3/lib/replace/getaddrinfo.h deleted file mode 100644 index dddd699b62..0000000000 --- a/source3/lib/replace/getaddrinfo.h +++ /dev/null @@ -1,89 +0,0 @@ -/* -PostgreSQL Database Management System -(formerly known as Postgres, then as Postgres95) - -Portions Copyright (c) 1996-2005, The PostgreSQL Global Development Group - -Portions Copyright (c) 1994, The Regents of the University of California - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose, without fee, and without a written agreement -is hereby granted, provided that the above copyright notice and this paragraph -and the following two paragraphs appear in all copies. - -IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING -LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, -EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGE. - -THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS -ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS -TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. - -*/ - -/*------------------------------------------------------------------------- - * - * getaddrinfo.h - *	  Support getaddrinfo() on platforms that don't have it. - * - * Note: we use our own routines on platforms that don't HAVE_STRUCT_ADDRINFO, - * whether or not the library routine getaddrinfo() can be found.  This - * policy is needed because on some platforms a manually installed libbind.a - * may provide getaddrinfo(), yet the system headers may not provide the - * struct definitions needed to call it.  To avoid conflict with the libbind - * definition in such cases, we rename our routines to pg_xxx() via macros. - * - -in lib/replace we use rep_xxx() - - * This code will also work on platforms where struct addrinfo is defined - * in the system headers but no getaddrinfo() can be located. - * - * Copyright (c) 2003-2007, PostgreSQL Global Development Group - * - *------------------------------------------------------------------------- - */ -#ifndef GETADDRINFO_H -#define GETADDRINFO_H - -#ifndef HAVE_GETADDRINFO - -/* Rename private copies per comments above */ -#ifdef getaddrinfo -#undef getaddrinfo -#endif -#define getaddrinfo rep_getaddrinfo -#define HAVE_GETADDRINFO - -#ifdef freeaddrinfo -#undef freeaddrinfo -#endif -#define freeaddrinfo rep_freeaddrinfo -#define HAVE_FREEADDRINFO - -#ifdef gai_strerror -#undef gai_strerror -#endif -#define gai_strerror rep_gai_strerror -#define HAVE_GAI_STRERROR - -#ifdef getnameinfo -#undef getnameinfo -#endif -#define getnameinfo rep_getnameinfo -#define HAVE_GETNAMEINFO - -extern int rep_getaddrinfo(const char *node, const char *service, -			const struct addrinfo * hints, struct addrinfo ** res); -extern void rep_freeaddrinfo(struct addrinfo * res); -extern const char *rep_gai_strerror(int errcode); -extern int rep_getnameinfo(const struct sockaddr * sa, socklen_t salen, -			char *node, size_t nodelen, -			char *service, size_t servicelen, int flags); -#endif   /* HAVE_GETADDRINFO */ - -#endif   /* GETADDRINFO_H */ diff --git a/source3/lib/replace/getifaddrs.c b/source3/lib/replace/getifaddrs.c deleted file mode 100644 index f6f0ec080c..0000000000 --- a/source3/lib/replace/getifaddrs.c +++ /dev/null @@ -1,361 +0,0 @@ -/*  -   Unix SMB/CIFS implementation. -   Samba utility functions -   Copyright (C) Andrew Tridgell 1998 -   Copyright (C) Jeremy Allison 2007 -   Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2007 -    -   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 3 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, see <http://www.gnu.org/licenses/>. -*/ - -#define SOCKET_WRAPPER_NOT_REPLACE - -#include "replace.h" -#include "system/network.h" - -#include <unistd.h> -#include <stdio.h> -#include <sys/types.h> - -#ifdef HAVE_SYS_TIME_H -#include <sys/time.h> -#endif - -#ifndef SIOCGIFCONF -#ifdef HAVE_SYS_SOCKIO_H -#include <sys/sockio.h> -#endif -#endif - -#ifdef HAVE_IFACE_GETIFADDRS -#define _FOUND_IFACE_ANY -#else - -void rep_freeifaddrs(struct ifaddrs *ifp) -{ -	if (ifp != NULL) { -		free(ifp->ifa_name); -		free(ifp->ifa_addr); -		free(ifp->ifa_netmask); -		free(ifp->ifa_dstaddr); -		freeifaddrs(ifp->ifa_next); -		free(ifp); -	} -} - -static struct sockaddr *sockaddr_dup(struct sockaddr *sa) -{ -	struct sockaddr *ret; -	socklen_t socklen; -#ifdef HAVE_SOCKADDR_SA_LEN -	socklen = sa->sa_len; -#else -	socklen = sizeof(struct sockaddr_storage); -#endif -	ret = calloc(1, socklen); -	if (ret == NULL) -		return NULL; -	memcpy(ret, sa, socklen); -	return ret; -} -#endif - -#if HAVE_IFACE_IFCONF - -/* this works for Linux 2.2, Solaris 2.5, SunOS4, HPUX 10.20, OSF1 -   V4.0, Ultrix 4.4, SCO Unix 3.2, IRIX 6.4 and FreeBSD 3.2. - -   It probably also works on any BSD style system.  */ - -int rep_getifaddrs(struct ifaddrs **ifap) -{ -	struct ifconf ifc; -	char buff[8192]; -	int fd, i, n; -	struct ifreq *ifr=NULL; -	struct in_addr ipaddr; -	struct in_addr nmask; -	char *iname; -	struct ifaddrs *curif; -	struct ifaddrs *lastif = NULL; - -	*ifap = NULL; - -	if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) { -		return -1; -	} -   -	ifc.ifc_len = sizeof(buff); -	ifc.ifc_buf = buff; - -	if (ioctl(fd, SIOCGIFCONF, &ifc) != 0) { -		close(fd); -		return -1; -	}  - -	ifr = ifc.ifc_req; -   -	n = ifc.ifc_len / sizeof(struct ifreq); - -	/* Loop through interfaces, looking for given IP address */ -	for (i=n-1; i>=0; i--) { -		if (ioctl(fd, SIOCGIFFLAGS, &ifr[i]) == -1) { -			freeifaddrs(*ifap); -			return -1; -		} - -		curif = calloc(1, sizeof(struct ifaddrs)); -		curif->ifa_name = strdup(ifr[i].ifr_name); -		curif->ifa_flags = ifr[i].ifr_flags; -		curif->ifa_dstaddr = NULL; -		curif->ifa_data = NULL; -		curif->ifa_next = NULL; - -		curif->ifa_addr = NULL; -		if (ioctl(fd, SIOCGIFADDR, &ifr[i]) != -1) { -			curif->ifa_addr = sockaddr_dup(&ifr[i].ifr_addr); -		} - -		curif->ifa_netmask = NULL; -		if (ioctl(fd, SIOCGIFNETMASK, &ifr[i]) != -1) { -			curif->ifa_netmask = sockaddr_dup(&ifr[i].ifr_addr); -		} - -		if (lastif == NULL) { -			*ifap = curif; -		} else { -			lastif->ifa_next = curif; -		} -		lastif = curif; -	} - -	close(fd); - -	return 0; -}   - -#define _FOUND_IFACE_ANY -#endif /* HAVE_IFACE_IFCONF */ -#ifdef HAVE_IFACE_IFREQ - -#ifndef I_STR -#include <sys/stropts.h> -#endif - -/**************************************************************************** -this should cover most of the streams based systems -Thanks to Andrej.Borsenkow@mow.siemens.ru for several ideas in this code -****************************************************************************/ -int rep_getifaddrs(struct ifaddrs **ifap) -{ -	struct ifreq ifreq; -	struct strioctl strioctl; -	char buff[8192]; -	int fd, i, n; -	struct ifreq *ifr=NULL; -	struct in_addr ipaddr; -	struct in_addr nmask; -	char *iname; -	struct ifaddrs *curif; -	struct ifaddrs *lastif = NULL; - -	*ifap = NULL; - -	if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) { -		return -1; -	} -   -	strioctl.ic_cmd = SIOCGIFCONF; -	strioctl.ic_dp  = buff; -	strioctl.ic_len = sizeof(buff); -	if (ioctl(fd, I_STR, &strioctl) < 0) { -		close(fd); -		return -1; -	}  - -	/* we can ignore the possible sizeof(int) here as the resulting -	   number of interface structures won't change */ -	n = strioctl.ic_len / sizeof(struct ifreq); - -	/* we will assume that the kernel returns the length as an int -           at the start of the buffer if the offered size is a -           multiple of the structure size plus an int */ -	if (n*sizeof(struct ifreq) + sizeof(int) == strioctl.ic_len) { -		ifr = (struct ifreq *)(buff + sizeof(int));   -	} else { -		ifr = (struct ifreq *)buff;   -	} - -	/* Loop through interfaces */ - -	for (i = 0; i<n; i++) { -		ifreq = ifr[i]; -   -		curif = calloc(1, sizeof(struct ifaddrs)); -		if (lastif == NULL) { -			*ifap = curif; -		} else { -			lastif->ifa_next = curif; -		} - -		strioctl.ic_cmd = SIOCGIFFLAGS; -		strioctl.ic_dp  = (char *)&ifreq; -		strioctl.ic_len = sizeof(struct ifreq); -		if (ioctl(fd, I_STR, &strioctl) != 0) { -			freeifaddrs(*ifap); -			return -1; -		} - -		curif->ifa_flags = ifreq.ifr_flags; -		 -		strioctl.ic_cmd = SIOCGIFADDR; -		strioctl.ic_dp  = (char *)&ifreq; -		strioctl.ic_len = sizeof(struct ifreq); -		if (ioctl(fd, I_STR, &strioctl) != 0) { -			freeifaddrs(*ifap); -			return -1; -		} - -		curif->ifa_name = strdup(ifreq.ifr_name); -		curif->ifa_addr = sockaddr_dup(&ifreq.ifr_addr); -		curif->ifa_dstaddr = NULL; -		curif->ifa_data = NULL; -		curif->ifa_next = NULL; -		curif->ifa_netmask = NULL; - -		strioctl.ic_cmd = SIOCGIFNETMASK; -		strioctl.ic_dp  = (char *)&ifreq; -		strioctl.ic_len = sizeof(struct ifreq); -		if (ioctl(fd, I_STR, &strioctl) != 0) { -			freeifaddrs(*ifap); -			return -1; -		} - -		curif->ifa_netmask = sockaddr_dup(&ifreq.ifr_addr); - -		lastif = curif; -	} - -	close(fd); - -	return 0; -} - -#define _FOUND_IFACE_ANY -#endif /* HAVE_IFACE_IFREQ */ -#ifdef HAVE_IFACE_AIX - -/**************************************************************************** -this one is for AIX (tested on 4.2) -****************************************************************************/ -int rep_getifaddrs(struct ifaddrs **ifap) -{ -	char buff[8192]; -	int fd, i; -	struct ifconf ifc; -	struct ifreq *ifr=NULL; -	struct in_addr ipaddr; -	struct in_addr nmask; -	char *iname; -	struct ifaddrs *curif; -	struct ifaddrs *lastif = NULL; - -	*ifap = NULL; - -	if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) { -		return -1; -	} - -	ifc.ifc_len = sizeof(buff); -	ifc.ifc_buf = buff; - -	if (ioctl(fd, SIOCGIFCONF, &ifc) != 0) { -		close(fd); -		return -1; -	} - -	ifr = ifc.ifc_req; - -	/* Loop through interfaces */ -	i = ifc.ifc_len; - -	while (i > 0) { -		uint_t inc; - -		inc = ifr->ifr_addr.sa_len; - -		if (ioctl(fd, SIOCGIFADDR, ifr) != 0) { -			freeaddrinfo(*ifap); -			return -1; -		} - -		curif = calloc(1, sizeof(struct ifaddrs)); -		if (lastif == NULL) { -			*ifap = curif; -		} else { -			lastif->ifa_next = curif; -		} - -		curif->ifa_name = strdup(ifr->ifr_name); -		curif->ifa_addr = sockaddr_dup(&ifr->ifr_addr); -		curif->ifa_dstaddr = NULL; -		curif->ifa_data = NULL; -		curif->ifa_netmask = NULL; -		curif->ifa_next = NULL; - -		if (ioctl(fd, SIOCGIFFLAGS, ifr) != 0) { -			freeaddrinfo(*ifap); -			return -1; -		} - -		curif->ifa_flags = ifr->ifr_flags; - -		if (ioctl(fd, SIOCGIFNETMASK, ifr) != 0) { -			freeaddrinfo(*ifap); -			return -1; -		} - -		curif->ifa_netmask = sockaddr_dup(&ifr->ifr_addr); - -		lastif = curif; - -	next: -		/* -		 * Patch from Archie Cobbs (archie@whistle.com).  The -		 * addresses in the SIOCGIFCONF interface list have a -		 * minimum size. Usually this doesn't matter, but if -		 * your machine has tunnel interfaces, etc. that have -		 * a zero length "link address", this does matter.  */ - -		if (inc < sizeof(ifr->ifr_addr)) -			inc = sizeof(ifr->ifr_addr); -		inc += IFNAMSIZ; - -		ifr = (struct ifreq*) (((char*) ifr) + inc); -		i -= inc; -	} - -	close(fd); -	return 0; -} - -#define _FOUND_IFACE_ANY -#endif /* HAVE_IFACE_AIX */ -#ifndef _FOUND_IFACE_ANY -int rep_getifaddrs(struct ifaddrs **ifap) -{ -	errno = ENOSYS; -	return -1; -} -#endif diff --git a/source3/lib/replace/getpass.c b/source3/lib/replace/getpass.c deleted file mode 100644 index 0be618fc91..0000000000 --- a/source3/lib/replace/getpass.c +++ /dev/null @@ -1,222 +0,0 @@ -/* Copyright (C) 1992-1998 Free Software Foundation, Inc. -This file is part of the GNU C Library. - -The GNU C 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. - -The GNU C 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 -Library General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with the GNU C Library; see the file COPYING.LIB.  If -not, see <http://www.gnu.org/licenses/>.  */ - -/* Modified to use with samba by Jeremy Allison, 8th July 1995. */ - -#include "replace.h" -#include "system/filesys.h" -#include "system/wait.h" -#include "system/terminal.h" -#include "system/passwd.h" - -/* - * Define additional missing types - */ -#ifndef HAVE_SIG_ATOMIC_T_TYPE -typedef int sig_atomic_t; -#endif - -#ifndef SIGCLD -#define SIGCLD SIGCHLD -#endif - -#ifndef SIGNAL_CAST -#define SIGNAL_CAST (RETSIGTYPE (*)(int)) -#endif - -#ifdef SYSV_TERMIO  - -/* SYSTEM V TERMIO HANDLING */ - -static struct termio t; - -#define ECHO_IS_ON(t) ((t).c_lflag & ECHO) -#define TURN_ECHO_OFF(t) ((t).c_lflag &= ~ECHO) -#define TURN_ECHO_ON(t) ((t).c_lflag |= ECHO) - -#ifndef TCSAFLUSH -#define TCSAFLUSH 1 -#endif - -#ifndef TCSANOW -#define TCSANOW 0 -#endif - -static int tcgetattr(int fd, struct termio *_t) -{ -	return ioctl(fd, TCGETA, _t); -} - -static int tcsetattr(int fd, int flags, struct termio *_t) -{ -	if(flags & TCSAFLUSH) -		ioctl(fd, TCFLSH, TCIOFLUSH); -	return ioctl(fd, TCSETS, _t); -} - -#elif !defined(TCSAFLUSH) - -/* BSD TERMIO HANDLING */ - -static struct sgttyb t;   - -#define ECHO_IS_ON(t) ((t).sg_flags & ECHO) -#define TURN_ECHO_OFF(t) ((t).sg_flags &= ~ECHO) -#define TURN_ECHO_ON(t) ((t).sg_flags |= ECHO) - -#define TCSAFLUSH 1 -#define TCSANOW 0 - -static int tcgetattr(int fd, struct sgttyb *_t) -{ -	return ioctl(fd, TIOCGETP, (char *)_t); -} - -static int tcsetattr(int fd, int flags, struct sgttyb *_t) -{ -	return ioctl(fd, TIOCSETP, (char *)_t); -} - -#else /* POSIX TERMIO HANDLING */ -#define ECHO_IS_ON(t) ((t).c_lflag & ECHO) -#define TURN_ECHO_OFF(t) ((t).c_lflag &= ~ECHO) -#define TURN_ECHO_ON(t) ((t).c_lflag |= ECHO) - -static struct termios t; -#endif /* SYSV_TERMIO */ - -static void catch_signal(int signum,void (*handler)(int )) -{ -#ifdef HAVE_SIGACTION -	struct sigaction act; -	struct sigaction oldact; - -	memset(&act, 0, sizeof(act)); - -	act.sa_handler = handler; -#ifdef SA_RESTART -	/* -	 * We *want* SIGALRM to interrupt a system call. -	 */ -	if(signum != SIGALRM) -		act.sa_flags = SA_RESTART; -#endif -	sigemptyset(&act.sa_mask); -	sigaddset(&act.sa_mask,signum); -	sigaction(signum,&act,&oldact); -#else /* !HAVE_SIGACTION */ -	/* FIXME: need to handle sigvec and systems with broken signal() */ -	signal(signum, handler); -#endif -} - -static sig_atomic_t gotintr; -static int in_fd = -1; - -/*************************************************************** - Signal function to tell us were ^C'ed. -****************************************************************/ - -static void gotintr_sig(void) -{ -	gotintr = 1; -	if (in_fd != -1) -		close(in_fd); /* Safe way to force a return. */ -	in_fd = -1; -} - -char *rep_getpass(const char *prompt) -{ -	FILE *in, *out; -	int echo_off; -	static char buf[256]; -	static size_t bufsize = sizeof(buf); -	size_t nread; - -	/* Catch problematic signals */ -	catch_signal(SIGINT, SIGNAL_CAST gotintr_sig); - -	/* Try to write to and read from the terminal if we can. -		If we can't open the terminal, use stderr and stdin.  */ - -	in = fopen ("/dev/tty", "w+"); -	if (in == NULL) { -		in = stdin; -		out = stderr; -	} else { -		out = in; -	} - -	setvbuf(in, NULL, _IONBF, 0); - -	/* Turn echoing off if it is on now.  */ - -	if (tcgetattr (fileno (in), &t) == 0) { -		if (ECHO_IS_ON(t)) { -			TURN_ECHO_OFF(t); -			echo_off = tcsetattr (fileno (in), TCSAFLUSH, &t) == 0; -			TURN_ECHO_ON(t); -		} else { -			echo_off = 0; -		} -	} else { -		echo_off = 0; -	} - -	/* Write the prompt.  */ -	fputs(prompt, out); -	fflush(out); - -	/* Read the password.  */ -	buf[0] = 0; -	if (!gotintr) { -		in_fd = fileno(in); -		if (fgets(buf, bufsize, in) == NULL) { -			buf[0] = 0; -		} -	} -	nread = strlen(buf); -	if (nread) { -		if (buf[nread - 1] == '\n') -			buf[nread - 1] = '\0'; -	} - -	/* Restore echoing.  */ -	if (echo_off) { -		if (gotintr && in_fd == -1) { -			in = fopen ("/dev/tty", "w+"); -		} -		if (in != NULL) -			tcsetattr (fileno (in), TCSANOW, &t); -	} - -	fprintf(out, "\n"); -	fflush(out); - -	if (in && in != stdin) /* We opened the terminal; now close it.  */ -		fclose(in); - -	/* Catch problematic signals */ -	catch_signal(SIGINT, SIGNAL_CAST SIG_DFL); - -	if (gotintr) { -		printf("Interupted by signal.\n"); -		fflush(stdout); -		exit(1); -	} -	return buf; -} diff --git a/source3/lib/replace/getpass.m4 b/source3/lib/replace/getpass.m4 deleted file mode 100644 index b93817f9d3..0000000000 --- a/source3/lib/replace/getpass.m4 +++ /dev/null @@ -1,24 +0,0 @@ -AC_CHECK_FUNC(getpass, libreplace_cv_HAVE_GETPASS=yes) -AC_CHECK_FUNC(getpassphrase, libreplace_cv_HAVE_GETPASSPHRASE=yes) -if test x"$libreplace_cv_HAVE_GETPASS" = x"yes" -a x"$libreplace_cv_HAVE_GETPASSPHRASE" = x"yes"; then -        AC_DEFINE(REPLACE_GETPASS_BY_GETPASSPHRASE, 1, [getpass returns <9 chars where getpassphrase returns <265 chars]) -	AC_DEFINE(REPLACE_GETPASS,1,[Whether getpass should be replaced]) -	LIBREPLACEOBJ="${LIBREPLACEOBJ} getpass.o" -else - -AC_CACHE_CHECK([whether getpass should be replaced],libreplace_cv_REPLACE_GETPASS,[ -SAVE_CPPFLAGS="$CPPFLAGS" -CPPFLAGS="$CPPFLAGS -I$libreplacedir/" -AC_TRY_COMPILE([ -#include "confdefs.h" -#define NO_CONFIG_H -#include "$libreplacedir/getpass.c" -],[],libreplace_cv_REPLACE_GETPASS=yes,libreplace_cv_REPLACE_GETPASS=no) -CPPFLAGS="$SAVE_CPPFLAGS" -]) -if test x"$libreplace_cv_REPLACE_GETPASS" = x"yes"; then -	AC_DEFINE(REPLACE_GETPASS,1,[Whether getpass should be replaced]) -	LIBREPLACEOBJ="${LIBREPLACEOBJ} getpass.o" -fi - -fi diff --git a/source3/lib/replace/inet_aton.c b/source3/lib/replace/inet_aton.c deleted file mode 100644 index c6b3bb11a7..0000000000 --- a/source3/lib/replace/inet_aton.c +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Unix SMB/CIFS implementation. - * replacement functions - * 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" - -/** - * We know that we have inet_pton from earlier libreplace checks. - */ -int rep_inet_aton(const char *src, struct in_addr *dst) -{ -	return (inet_pton(AF_INET, src, dst) > 0) ? 1 : 0; -} diff --git a/source3/lib/replace/inet_ntoa.c b/source3/lib/replace/inet_ntoa.c deleted file mode 100644 index e3b80ebef8..0000000000 --- a/source3/lib/replace/inet_ntoa.c +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Unix SMB/CIFS implementation. - * replacement routines for broken systems - * Copyright (C) Andrew Tridgell 2003 - * Copyright (C) Michael Adam 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" - -/** - * NOTE: this is not thread safe, but it can't be, either - * since it returns a pointer to static memory. - */ -char *rep_inet_ntoa(struct in_addr ip) -{ -	uint8_t *p = (uint8_t *)&ip.s_addr; -	static char buf[18]; -	slprintf(buf, 17, "%d.%d.%d.%d", -		 (int)p[0], (int)p[1], (int)p[2], (int)p[3]); -	return buf; -} diff --git a/source3/lib/replace/inet_ntop.c b/source3/lib/replace/inet_ntop.c deleted file mode 100644 index fb3d8e90c8..0000000000 --- a/source3/lib/replace/inet_ntop.c +++ /dev/null @@ -1,191 +0,0 @@ -/* - * Copyright (C) 1996-2001  Internet Software Consortium. - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM - * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL - * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, - * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING - * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, - * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION - * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - - -#include "replace.h" -#include "system/network.h" - -#define NS_INT16SZ	 2 -#define NS_IN6ADDRSZ	16 - -/* - * WARNING: Don't even consider trying to compile this on a system where - * sizeof(int) < 4.  sizeof(int) > 4 is fine; all the world's not a VAX. - */ - -static const char *inet_ntop4(const unsigned char *src, char *dst, -			      socklen_t size); - -#ifdef AF_INET6 -static const char *inet_ntop6(const unsigned char *src, char *dst, -			      socklen_t size); -#endif - -/* char * - * isc_net_ntop(af, src, dst, size) - *	convert a network format address to presentation format. - * return: - *	pointer to presentation format address (`dst'), or NULL (see errno). - * author: - *	Paul Vixie, 1996. - */ -const char * -rep_inet_ntop(int af, const void *src, char *dst, socklen_t size) -{ -	switch (af) { -	case AF_INET: -		return (inet_ntop4(src, dst, size)); -#ifdef AF_INET6 -	case AF_INET6: -		return (inet_ntop6(src, dst, size)); -#endif -	default: -		errno = EAFNOSUPPORT; -		return (NULL); -	} -	/* NOTREACHED */ -} - -/* const char * - * inet_ntop4(src, dst, size) - *	format an IPv4 address - * return: - *	`dst' (as a const) - * notes: - *	(1) uses no statics - *	(2) takes a unsigned char* not an in_addr as input - * author: - *	Paul Vixie, 1996. - */ -static const char * -inet_ntop4(const unsigned char *src, char *dst, socklen_t size) -{ -	static const char *fmt = "%u.%u.%u.%u"; -	char tmp[sizeof "255.255.255.255"]; -	size_t len; - -	len = snprintf(tmp, sizeof tmp, fmt, src[0], src[1], src[2], src[3]); -	if (len >= size) { -		errno = ENOSPC; -		return (NULL); -	} -	memcpy(dst, tmp, len + 1); - -	return (dst); -} - -/* const char * - * isc_inet_ntop6(src, dst, size) - *	convert IPv6 binary address into presentation (printable) format - * author: - *	Paul Vixie, 1996. - */ -#ifdef AF_INET6 -static const char * -inet_ntop6(const unsigned char *src, char *dst, socklen_t size) -{ -	/* -	 * Note that int32_t and int16_t need only be "at least" large enough -	 * to contain a value of the specified size.  On some systems, like -	 * Crays, there is no such thing as an integer variable with 16 bits. -	 * Keep this in mind if you think this function should have been coded -	 * to use pointer overlays.  All the world's not a VAX. -	 */ -	char tmp[sizeof "ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255"], *tp; -	struct { int base, len; } best, cur; -	unsigned int words[NS_IN6ADDRSZ / NS_INT16SZ]; -	int i, inc; - -	/* -	 * Preprocess: -	 *	Copy the input (bytewise) array into a wordwise array. -	 *	Find the longest run of 0x00's in src[] for :: shorthanding. -	 */ -	memset(words, '\0', sizeof words); -	for (i = 0; i < NS_IN6ADDRSZ; i++) -		words[i / 2] |= (src[i] << ((1 - (i % 2)) << 3)); -	best.base = -1; -	best.len = 0; -	cur.base = -1; -	cur.len = 0; -	for (i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++) { -		if (words[i] == 0) { -			if (cur.base == -1) -				cur.base = i, cur.len = 1; -			else -				cur.len++; -		} else { -			if (cur.base != -1) { -				if (best.base == -1 || cur.len > best.len) -					best = cur; -				cur.base = -1; -			} -		} -	} -	if (cur.base != -1) { -		if (best.base == -1 || cur.len > best.len) -			best = cur; -	} -	if (best.base != -1 && best.len < 2) -		best.base = -1; - -	/* -	 * Format the result. -	 */ -	tp = tmp; -	for (i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++) { -		/* Are we inside the best run of 0x00's? */ -		if (best.base != -1 && i >= best.base && -		    i < (best.base + best.len)) { -			if (i == best.base) -				*tp++ = ':'; -			continue; -		} -		/* Are we following an initial run of 0x00s or any real hex? */ -		if (i != 0) -			*tp++ = ':'; -		/* Is this address an encapsulated IPv4? */ -		if (i == 6 && best.base == 0 && -		    (best.len == 6 || (best.len == 5 && words[5] == 0xffff))) { -			if (!inet_ntop4(src+12, tp, sizeof tmp - (tp - tmp))) -				return (NULL); -			tp += strlen(tp); -			break; -		} -		inc = snprintf(tp, 5, "%x", words[i]); -		if (inc >= 5) { -			abort(); -		} -		tp += inc; -	} -	/* Was it a trailing run of 0x00's? */ -	if (best.base != -1 && (best.base + best.len) == -	    (NS_IN6ADDRSZ / NS_INT16SZ)) -		*tp++ = ':'; -	*tp++ = '\0'; - -	/* -	 * Check for overflow, copy, and we're done. -	 */ -	if ((size_t)(tp - tmp) > size) { -		errno = ENOSPC; -		return (NULL); -	} -	memcpy(dst, tmp, tp - tmp); -	return (dst); -} -#endif /* AF_INET6 */ diff --git a/source3/lib/replace/inet_pton.c b/source3/lib/replace/inet_pton.c deleted file mode 100644 index 80e4865ef4..0000000000 --- a/source3/lib/replace/inet_pton.c +++ /dev/null @@ -1,213 +0,0 @@ -/* - * Copyright (C) 1996-2001  Internet Software Consortium. - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM - * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL - * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, - * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING - * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, - * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION - * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include "replace.h" -#include "system/network.h" - -#define NS_INT16SZ	 2 -#define NS_INADDRSZ	 4 -#define NS_IN6ADDRSZ	16 - -/* - * WARNING: Don't even consider trying to compile this on a system where - * sizeof(int) < 4.  sizeof(int) > 4 is fine; all the world's not a VAX. - */ - -static int inet_pton4(const char *src, unsigned char *dst); -#ifdef AF_INET6 -static int inet_pton6(const char *src, unsigned char *dst); -#endif - -/* int - * inet_pton(af, src, dst) - *	convert from presentation format (which usually means ASCII printable) - *	to network format (which is usually some kind of binary format). - * return: - *	1 if the address was valid for the specified address family - *	0 if the address wasn't valid (`dst' is untouched in this case) - *	-1 if some other error occurred (`dst' is untouched in this case, too) - * author: - *	Paul Vixie, 1996. - */ -int -rep_inet_pton(int af, -	  const char *src, -	  void *dst) -{ -	switch (af) { -	case AF_INET: -		return (inet_pton4(src, dst)); -#ifdef AF_INET6 -	case AF_INET6: -		return (inet_pton6(src, dst)); -#endif -	default: -		errno = EAFNOSUPPORT; -		return (-1); -	} -	/* NOTREACHED */ -} - -/* int - * inet_pton4(src, dst) - *	like inet_aton() but without all the hexadecimal and shorthand. - * return: - *	1 if `src' is a valid dotted quad, else 0. - * notice: - *	does not touch `dst' unless it's returning 1. - * author: - *	Paul Vixie, 1996. - */ -static int -inet_pton4(src, dst) -	const char *src; -	unsigned char *dst; -{ -	static const char digits[] = "0123456789"; -	int saw_digit, octets, ch; -	unsigned char tmp[NS_INADDRSZ], *tp; - -	saw_digit = 0; -	octets = 0; -	*(tp = tmp) = 0; -	while ((ch = *src++) != '\0') { -		const char *pch; - -		if ((pch = strchr(digits, ch)) != NULL) { -			unsigned int new = *tp * 10 + (pch - digits); - -			if (new > 255) -				return (0); -			*tp = new; -			if (! saw_digit) { -				if (++octets > 4) -					return (0); -				saw_digit = 1; -			} -		} else if (ch == '.' && saw_digit) { -			if (octets == 4) -				return (0); -			*++tp = 0; -			saw_digit = 0; -		} else -			return (0); -	} -	if (octets < 4) -		return (0); -	memcpy(dst, tmp, NS_INADDRSZ); -	return (1); -} - -/* int - * inet_pton6(src, dst) - *	convert presentation level address to network order binary form. - * return: - *	1 if `src' is a valid [RFC1884 2.2] address, else 0. - * notice: - *	(1) does not touch `dst' unless it's returning 1. - *	(2) :: in a full address is silently ignored. - * credit: - *	inspired by Mark Andrews. - * author: - *	Paul Vixie, 1996. - */ -#ifdef AF_INET6 -static int -inet_pton6(src, dst) -	const char *src; -	unsigned char *dst; -{ -	static const char xdigits_l[] = "0123456789abcdef", -			  xdigits_u[] = "0123456789ABCDEF"; -	unsigned char tmp[NS_IN6ADDRSZ], *tp, *endp, *colonp; -	const char *xdigits, *curtok; -	int ch, saw_xdigit; -	unsigned int val; - -	memset((tp = tmp), '\0', NS_IN6ADDRSZ); -	endp = tp + NS_IN6ADDRSZ; -	colonp = NULL; -	/* Leading :: requires some special handling. */ -	if (*src == ':') -		if (*++src != ':') -			return (0); -	curtok = src; -	saw_xdigit = 0; -	val = 0; -	while ((ch = *src++) != '\0') { -		const char *pch; - -		if ((pch = strchr((xdigits = xdigits_l), ch)) == NULL) -			pch = strchr((xdigits = xdigits_u), ch); -		if (pch != NULL) { -			val <<= 4; -			val |= (pch - xdigits); -			if (val > 0xffff) -				return (0); -			saw_xdigit = 1; -			continue; -		} -		if (ch == ':') { -			curtok = src; -			if (!saw_xdigit) { -				if (colonp) -					return (0); -				colonp = tp; -				continue; -			} -			if (tp + NS_INT16SZ > endp) -				return (0); -			*tp++ = (unsigned char) (val >> 8) & 0xff; -			*tp++ = (unsigned char) val & 0xff; -			saw_xdigit = 0; -			val = 0; -			continue; -		} -		if (ch == '.' && ((tp + NS_INADDRSZ) <= endp) && -		    inet_pton4(curtok, tp) > 0) { -			tp += NS_INADDRSZ; -			saw_xdigit = 0; -			break;	/* '\0' was seen by inet_pton4(). */ -		} -		return (0); -	} -	if (saw_xdigit) { -		if (tp + NS_INT16SZ > endp) -			return (0); -		*tp++ = (unsigned char) (val >> 8) & 0xff; -		*tp++ = (unsigned char) val & 0xff; -	} -	if (colonp != NULL) { -		/* -		 * Since some memmove()'s erroneously fail to handle -		 * overlapping regions, we'll do the shift by hand. -		 */ -		const int n = tp - colonp; -		int i; - -		for (i = 1; i <= n; i++) { -			endp[- i] = colonp[n - i]; -			colonp[n - i] = 0; -		} -		tp = endp; -	} -	if (tp != endp) -		return (0); -	memcpy(dst, tmp, NS_IN6ADDRSZ); -	return (1); -} -#endif diff --git a/source3/lib/replace/install-sh b/source3/lib/replace/install-sh deleted file mode 100755 index 58719246f0..0000000000 --- a/source3/lib/replace/install-sh +++ /dev/null @@ -1,238 +0,0 @@ -#! /bin/sh -# -# install - install a program, script, or datafile -# This comes from X11R5. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. -# - - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit="${DOITPROG-}" - - -# put in absolute paths if you don't have them in your path; or use env. vars. - -mvprog="${MVPROG-mv}" -cpprog="${CPPROG-cp}" -chmodprog="${CHMODPROG-chmod}" -chownprog="${CHOWNPROG-chown}" -chgrpprog="${CHGRPPROG-chgrp}" -stripprog="${STRIPPROG-strip}" -rmprog="${RMPROG-rm}" -mkdirprog="${MKDIRPROG-mkdir}" - -transformbasename="" -transform_arg="" -instcmd="$mvprog" -chmodcmd="$chmodprog 0755" -chowncmd="" -chgrpcmd="" -stripcmd="" -rmcmd="$rmprog -f" -mvcmd="$mvprog" -src="" -dst="" -dir_arg="" - -while [ x"$1" != x ]; do -    case $1 in -	-c) instcmd="$cpprog" -	    shift -	    continue;; - -	-d) dir_arg=true -	    shift -	    continue;; - -	-m) chmodcmd="$chmodprog $2" -	    shift -	    shift -	    continue;; - -	-o) chowncmd="$chownprog $2" -	    shift -	    shift -	    continue;; - -	-g) chgrpcmd="$chgrpprog $2" -	    shift -	    shift -	    continue;; - -	-s) stripcmd="$stripprog" -	    shift -	    continue;; - -	-t=*) transformarg=`echo $1 | sed 's/-t=//'` -	    shift -	    continue;; - -	-b=*) transformbasename=`echo $1 | sed 's/-b=//'` -	    shift -	    continue;; - -	*)  if [ x"$src" = x ] -	    then -		src=$1 -	    else -		# this colon is to work around a 386BSD /bin/sh bug -		: -		dst=$1 -	    fi -	    shift -	    continue;; -    esac -done - -if [ x"$src" = x ] -then -	echo "install:	no input file specified" -	exit 1 -else -	true -fi - -if [ x"$dir_arg" != x ]; then -	dst=$src -	src="" -	 -	if [ -d $dst ]; then -		instcmd=: -	else -		instcmd=mkdir -	fi -else - -# Waiting for this to be detected by the "$instcmd $src $dsttmp" command -# might cause directories to be created, which would be especially bad  -# if $src (and thus $dsttmp) contains '*'. - -	if [ -f $src -o -d $src ] -	then -		true -	else -		echo "install:  $src does not exist" -		exit 1 -	fi -	 -	if [ x"$dst" = x ] -	then -		echo "install:	no destination specified" -		exit 1 -	else -		true -	fi - -# If destination is a directory, append the input filename; if your system -# does not like double slashes in filenames, you may need to add some logic - -	if [ -d $dst ] -	then -		dst="$dst"/`basename $src` -	else -		true -	fi -fi - -## this sed command emulates the dirname command -dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` - -# Make sure that the destination directory exists. -#  this part is taken from Noah Friedman's mkinstalldirs script - -# Skip lots of stat calls in the usual case. -if [ ! -d "$dstdir" ]; then -defaultIFS='	 -' -IFS="${IFS-${defaultIFS}}" - -oIFS="${IFS}" -# Some sh's can't handle IFS=/ for some reason. -IFS='%' -set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` -IFS="${oIFS}" - -pathcomp='' - -while [ $# -ne 0 ] ; do -	pathcomp="${pathcomp}${1}" -	shift - -	if [ ! -d "${pathcomp}" ] ; -        then -		$mkdirprog "${pathcomp}" -	else -		true -	fi - -	pathcomp="${pathcomp}/" -done -fi - -if [ x"$dir_arg" != x ] -then -	$doit $instcmd $dst && - -	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && -	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && -	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && -	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi -else - -# If we're going to rename the final executable, determine the name now. - -	if [ x"$transformarg" = x ]  -	then -		dstfile=`basename $dst` -	else -		dstfile=`basename $dst $transformbasename |  -			sed $transformarg`$transformbasename -	fi - -# don't allow the sed command to completely eliminate the filename - -	if [ x"$dstfile" = x ]  -	then -		dstfile=`basename $dst` -	else -		true -	fi - -# Make a temp file name in the proper directory. - -	dsttmp=$dstdir/#inst.$$# - -# Move or copy the file name to the temp name - -	$doit $instcmd $src $dsttmp && - -	trap "rm -f ${dsttmp}" 0 && - -# and set any options; do chmod last to preserve setuid bits - -# If any of these fail, we abort the whole thing.  If we want to -# ignore errors from any of these, just make sure not to ignore -# errors from the above "$doit $instcmd $src $dsttmp" command. - -	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && -	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && -	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && -	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && - -# Now rename the file to the real destination. - -	$doit $rmcmd -f $dstdir/$dstfile && -	$doit $mvcmd $dsttmp $dstdir/$dstfile  - -fi && - - -exit 0 diff --git a/source3/lib/replace/libreplace.m4 b/source3/lib/replace/libreplace.m4 deleted file mode 100644 index 71fa041672..0000000000 --- a/source3/lib/replace/libreplace.m4 +++ /dev/null @@ -1,303 +0,0 @@ -AC_DEFUN_ONCE(AC_LIBREPLACE_LOCATION_CHECKS, -[ -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" -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) - -AC_CANONICAL_BUILD -AC_CANONICAL_HOST -AC_CANONICAL_TARGET - -echo "LIBREPLACE_LOCATION_CHECKS: END" -]) dnl end AC_LIBREPLACE_LOCATION_CHECKS - - -AC_DEFUN_ONCE(AC_LIBREPLACE_BROKEN_CHECKS, -[ -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 -	if test -f "$d/replace.c"; then -		libreplacedir="$d"		 -		AC_SUBST(libreplacedir) -		break; -	fi -done -LIBREPLACEOBJ="replace.o" -AC_SUBST(LIBREPLACEOBJ) - -LIBREPLACEOBJ="${LIBREPLACEOBJ} snprintf.o" - -AC_TYPE_SIGNAL -AC_TYPE_UID_T -AC_TYPE_MODE_T -AC_TYPE_OFF_T -AC_TYPE_SIZE_T -AC_TYPE_PID_T -AC_STRUCT_ST_RDEV -AC_CHECK_TYPE(ino_t,unsigned) -AC_CHECK_TYPE(loff_t,off_t) -AC_CHECK_TYPE(offset_t,loff_t) - -AC_FUNC_MEMCMP - -AC_CHECK_FUNCS(pipe strftime srandom random srand rand usleep setbuffer lstat getpgrp) - -AC_CHECK_HEADERS(stdbool.h stdint.h sys/select.h) -AC_CHECK_HEADERS(setjmp.h) - -LIBREPLACE_PROVIDE_HEADER([stdint.h]) -LIBREPLACE_PROVIDE_HEADER([stdbool.h]) - -AC_CHECK_TYPE(bool,  -[AC_DEFINE(HAVE_BOOL, 1, [Whether the bool type is available])],, -[ -AC_INCLUDES_DEFAULT -#ifdef HAVE_STDBOOL_H -#include <stdbool.h> -#endif] -) - -AC_CHECK_TYPE(_Bool,  -[AC_DEFINE(HAVE__Bool, 1, [Whether the _Bool type is available])],, -[ -AC_INCLUDES_DEFAULT -#ifdef HAVE_STDBOOL_H -#include <stdbool.h> -#endif] -) - -AC_CACHE_CHECK([for working mmap],libreplace_cv_HAVE_MMAP,[ -AC_TRY_RUN([#include "$libreplacedir/test/shared_mmap.c"], -           libreplace_cv_HAVE_MMAP=yes,libreplace_cv_HAVE_MMAP=no,libreplace_cv_HAVE_MMAP=cross)]) -if test x"$libreplace_cv_HAVE_MMAP" = x"yes"; then -    AC_DEFINE(HAVE_MMAP,1,[Whether mmap works]) -fi - - -AC_CHECK_HEADERS(sys/syslog.h syslog.h) -AC_CHECK_HEADERS(sys/time.h time.h) -AC_CHECK_HEADERS(stdarg.h vararg.h) -AC_CHECK_HEADERS(sys/mount.h mntent.h) -AC_CHECK_HEADERS(stropts.h) - -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) -AC_CHECK_FUNCS(isatty) -AC_HAVE_DECL(setresuid, [#include <unistd.h>]) -AC_HAVE_DECL(setresgid, [#include <unistd.h>]) -AC_HAVE_DECL(errno, [#include <errno.h>]) - -AC_CACHE_CHECK([for secure mkstemp],libreplace_cv_HAVE_SECURE_MKSTEMP,[ -AC_TRY_RUN([#include <stdlib.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <unistd.h> -main() {  -  struct stat st; -  char tpl[20]="/tmp/test.XXXXXX";  -  int fd = mkstemp(tpl);  -  if (fd == -1) exit(1); -  unlink(tpl); -  if (fstat(fd, &st) != 0) exit(1); -  if ((st.st_mode & 0777) != 0600) exit(1); -  exit(0); -}], -libreplace_cv_HAVE_SECURE_MKSTEMP=yes, -libreplace_cv_HAVE_SECURE_MKSTEMP=no, -libreplace_cv_HAVE_SECURE_MKSTEMP=cross)]) -if test x"$libreplace_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then -    AC_DEFINE(HAVE_SECURE_MKSTEMP,1,[Whether mkstemp is secure]) -fi - -dnl Provided by snprintf.c: -AC_CHECK_HEADERS(stdio.h strings.h) -AC_CHECK_DECLS([snprintf, vsnprintf, asprintf, vasprintf]) -AC_CHECK_FUNCS(snprintf vsnprintf asprintf vasprintf) - -AC_CACHE_CHECK([for C99 vsnprintf],libreplace_cv_HAVE_C99_VSNPRINTF,[ -AC_TRY_RUN([ -#include <sys/types.h> -#include <stdio.h> -#include <stdarg.h> -#include <stdlib.h> -void foo(const char *format, ...) {  -       va_list ap; -       int len; -       char buf[20]; -       long long l = 1234567890; -       l *= 100; - -       va_start(ap, format); -       len = vsnprintf(buf, 0, format, ap); -       va_end(ap); -       if (len != 5) exit(1); - -       va_start(ap, format); -       len = vsnprintf(0, 0, format, ap); -       va_end(ap); -       if (len != 5) exit(2); - -       if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(3); - -       if (snprintf(buf, 20, "%lld", l) != 12 || strcmp(buf, "123456789000") != 0) exit(4); -       if (snprintf(buf, 20, "%zu", 123456789) != 9 || strcmp(buf, "123456789") != 0) exit(5); -       if (snprintf(buf, 20, "%2\$d %1\$d", 3, 4) != 3 || strcmp(buf, "4 3") != 0) exit(6); -       if (snprintf(buf, 20, "%s", 0) < 3) exit(7); - -       exit(0); -} -main() { foo("hello"); } -], -libreplace_cv_HAVE_C99_VSNPRINTF=yes,libreplace_cv_HAVE_C99_VSNPRINTF=no,libreplace_cv_HAVE_C99_VSNPRINTF=cross)]) -if test x"$libreplace_cv_HAVE_C99_VSNPRINTF" = x"yes"; then -    AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Whether there is a C99 compliant vsnprintf]) -fi - - -dnl VA_COPY -AC_CACHE_CHECK([for va_copy],libreplace_cv_HAVE_VA_COPY,[ -AC_TRY_LINK([#include <stdarg.h> -va_list ap1,ap2;], [va_copy(ap1,ap2);], -libreplace_cv_HAVE_VA_COPY=yes,libreplace_cv_HAVE_VA_COPY=no)]) -if test x"$libreplace_cv_HAVE_VA_COPY" = x"yes"; then -    AC_DEFINE(HAVE_VA_COPY,1,[Whether va_copy() is available]) -fi - -if test x"$libreplace_cv_HAVE_VA_COPY" != x"yes"; then -AC_CACHE_CHECK([for __va_copy],libreplace_cv_HAVE___VA_COPY,[ -AC_TRY_LINK([#include <stdarg.h> -va_list ap1,ap2;], [__va_copy(ap1,ap2);], -libreplace_cv_HAVE___VA_COPY=yes,libreplace_cv_HAVE___VA_COPY=no)]) -if test x"$libreplace_cv_HAVE___VA_COPY" = x"yes"; then -    AC_DEFINE(HAVE___VA_COPY,1,[Whether __va_copy() is available]) -fi -fi - -dnl __FUNCTION__ macro -AC_CACHE_CHECK([for __FUNCTION__ macro],libreplace_cv_HAVE_FUNCTION_MACRO,[ -AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);], -libreplace_cv_HAVE_FUNCTION_MACRO=yes,libreplace_cv_HAVE_FUNCTION_MACRO=no)]) -if test x"$libreplace_cv_HAVE_FUNCTION_MACRO" = x"yes"; then -    AC_DEFINE(HAVE_FUNCTION_MACRO,1,[Whether there is a __FUNCTION__ macro]) -else -    dnl __func__ macro -    AC_CACHE_CHECK([for __func__ macro],libreplace_cv_HAVE_func_MACRO,[ -    AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __func__);], -    libreplace_cv_HAVE_func_MACRO=yes,libreplace_cv_HAVE_func_MACRO=no)]) -    if test x"$libreplace_cv_HAVE_func_MACRO" = x"yes"; then -       AC_DEFINE(HAVE_func_MACRO,1,[Whether there is a __func__ macro]) -    fi -fi - -AC_CHECK_HEADERS([sys/param.h limits.h]) - -AC_CHECK_TYPE(comparison_fn_t,  -[AC_DEFINE(HAVE_COMPARISON_FN_T, 1,[Whether or not we have comparison_fn_t])]) - -AC_HAVE_DECL(setenv, [#include <stdlib.h>]) -AC_CHECK_FUNCS(setenv unsetenv) - -AC_CHECK_FUNCS(strnlen) -AC_CHECK_FUNCS(strtoull __strtoull strtouq strtoll __strtoll strtoq) - -# this test disabled as we don't actually need __VA_ARGS__ yet -AC_TRY_CPP([ -#define eprintf(...) fprintf(stderr, __VA_ARGS__) -eprintf("bla", "bar"); -], AC_DEFINE(HAVE__VA_ARGS__MACRO, 1, [Whether the __VA_ARGS__ macro is available])) - - -AC_CACHE_CHECK([for sig_atomic_t type],libreplace_cv_sig_atomic_t, [ -    AC_TRY_COMPILE([ -#include <sys/types.h> -#if STDC_HEADERS -#include <stdlib.h> -#include <stddef.h> -#endif -#include <signal.h>],[sig_atomic_t i = 0], -	libreplace_cv_sig_atomic_t=yes,libreplace_cv_sig_atomic_t=no)]) -if test x"$libreplace_cv_sig_atomic_t" = x"yes"; then -   AC_DEFINE(HAVE_SIG_ATOMIC_T_TYPE,1,[Whether we have the atomic_t variable type]) -fi - - -AC_CACHE_CHECK([for O_DIRECT flag to open(2)],libreplace_cv_HAVE_OPEN_O_DIRECT,[ -AC_TRY_COMPILE([ -#include <unistd.h> -#ifdef HAVE_FCNTL_H -#include <fcntl.h> -#endif], -[int fd = open("/dev/null", O_DIRECT);], -libreplace_cv_HAVE_OPEN_O_DIRECT=yes,libreplace_cv_HAVE_OPEN_O_DIRECT=no)]) -if test x"$libreplace_cv_HAVE_OPEN_O_DIRECT" = x"yes"; then -    AC_DEFINE(HAVE_OPEN_O_DIRECT,1,[Whether the open(2) accepts O_DIRECT]) -fi - - -dnl Check if the C compiler understands volatile (it should, being ANSI). -AC_CACHE_CHECK([that the C compiler understands volatile],libreplace_cv_volatile, [ -	AC_TRY_COMPILE([#include <sys/types.h>],[volatile int i = 0], -		libreplace_cv_volatile=yes,libreplace_cv_volatile=no)]) -if test x"$libreplace_cv_volatile" = x"yes"; then -	AC_DEFINE(HAVE_VOLATILE, 1, [Whether the C compiler understands volatile]) -fi - -m4_include(system/config.m4) - -m4_include(dlfcn.m4) -m4_include(getpass.m4) -m4_include(strptime.m4) -m4_include(win32.m4) -m4_include(timegm.m4) -m4_include(repdir.m4) - -AC_CHECK_FUNCS([syslog printf memset memcpy],,[AC_MSG_ERROR([Required function not found])]) - -echo "LIBREPLACE_BROKEN_CHECKS: END" -]) dnl end AC_LIBREPLACE_BROKEN_CHECKS - -AC_DEFUN_ONCE(AC__LIBREPLACE_ALL_CHECKS_START, -[ -#LIBREPLACE_ALL_CHECKS: START" -]) -AC_DEFUN_ONCE(AC__LIBREPLACE_ALL_CHECKS_END, -[ -#LIBREPLACE_ALL_CHECKS: END" -]) -m4_define(AC_LIBREPLACE_ALL_CHECKS, -[ -AC__LIBREPLACE_ALL_CHECKS_START -AC_LIBREPLACE_LOCATION_CHECKS -AC_LIBREPLACE_CC_CHECKS -AC_LIBREPLACE_BROKEN_CHECKS -AC__LIBREPLACE_ALL_CHECKS_END -CFLAGS="$CFLAGS -I$libreplacedir" -]) - -m4_include(libreplace_cc.m4) -m4_include(libreplace_ld.m4) -m4_include(libreplace_network.m4) -m4_include(libreplace_macros.m4) - -m4_ifndef([AC_USE_SYSTEM_EXTENSIONS],[m4_include(autoconf-2.60.m4)]) diff --git a/source3/lib/replace/libreplace_cc.m4 b/source3/lib/replace/libreplace_cc.m4 deleted file mode 100644 index 30c63f2f05..0000000000 --- a/source3/lib/replace/libreplace_cc.m4 +++ /dev/null @@ -1,182 +0,0 @@ - -AC_DEFUN_ONCE(AC__LIBREPLACE_ONLY_CC_CHECKS_START, -[ -echo "LIBREPLACE_CC_CHECKS: START" -]) - -AC_DEFUN_ONCE(AC__LIBREPLACE_ONLY_CC_CHECKS_END, -[ -echo "LIBREPLACE_CC_CHECKS: END" -]) - -dnl -dnl -dnl AC_LIBREPLACE_CC_CHECKS -dnl -dnl Note: we need to use m4_define instead of AC_DEFUN because -dnl       of the ordering of tests -dnl        -dnl  -m4_define(AC_LIBREPLACE_CC_CHECKS, -[ -AC__LIBREPLACE_ONLY_CC_CHECKS_START - -dnl stop the C89 attempt by autoconf - if autoconf detects -Ae it will enable it -dnl which conflicts with C99 on HPUX -ac_cv_prog_cc_Ae=no - -savedCFLAGS=$CFLAGS -AC_PROG_CC -CFLAGS=$savedCFLAGS - -dnl don't try for C99 if we are using gcc, as otherwise we  -dnl lose immediate structure constants -if test x"$GCC" != x"yes" ; then -AC_PROG_CC_C99 -fi - -if test x"$GCC" = x"yes" ; then -	AC_MSG_CHECKING([for version of gcc]) -	GCC_VERSION=`$CC -dumpversion` -	AC_MSG_RESULT(${GCC_VERSION}) -fi -AC_USE_SYSTEM_EXTENSIONS -AC_C_BIGENDIAN -AC_C_INLINE -LIBREPLACE_C99_STRUCT_INIT([],[AC_MSG_WARN([c99 structure initializer are not supported])]) - -AC_PROG_INSTALL - -AC_ISC_POSIX -AC_N_DEFINE(_XOPEN_SOURCE_EXTENDED) - -AC_SYS_LARGEFILE - -dnl Add #include for broken IRIX header files -case "$host_os" in -	*irix6*) AC_ADD_INCLUDE(<standards.h>) -		;; -	*hpux*) -		# mmap on HPUX is completely broken... -		AC_DEFINE(MMAP_BLACKLIST, 1, [Whether MMAP is broken]) -		if test "`uname -r`" = "B.11.00" -o "`uname -r`" = "B.11.11"; then -			AC_MSG_WARN([Enabling HPUX 11.00/11.11 header bug workaround]) -			CFLAGS="$CFLAGS -Dpread=pread64 -Dpwrite=pwrite64" -		fi -		if test "`uname -r`" = "B.11.23"; then -			AC_MSG_WARN([Enabling HPUX 11.23 machine/sys/getppdp.h bug workaround]) -			CFLAGS="$CFLAGS -D_MACHINE_SYS_GETPPDP_INCLUDED" -		fi -		;; -	*aix*) -		AC_DEFINE(BROKEN_STRNDUP, 1, [Whether strndup is broken]) -		AC_DEFINE(BROKEN_STRNLEN, 1, [Whether strnlen is broken]) -		if test "${GCC}" != "yes"; then -			## for funky AIX compiler using strncpy() -			CFLAGS="$CFLAGS -D_LINUX_SOURCE_COMPAT -qmaxmem=32000" -		fi -		;; -	*osf*) -		# this brings in socklen_t -		AC_N_DEFINE(_XOPEN_SOURCE,600) -		AC_N_DEFINE(_OSF_SOURCE) -		;; -	# -	# VOS may need to have POSIX support and System V compatibility enabled. -	# -	*vos*) -		case "$CFLAGS" in -			*-D_POSIX_C_SOURCE*);; -			*) -				CFLAGS="$CFLAGS -D_POSIX_C_SOURCE=200112L" -				AC_DEFINE(_POSIX_C_SOURCE, 200112L, [Whether to enable POSIX support]) -				;; -		esac -		case "$CFLAGS" in -			*-D_SYSV*|*-D_SVID_SOURCE*);; -			*) -				CFLAGS="$CFLAGS -D_SYSV" -				AC_DEFINE(_SYSV, 1, [Whether to enable System V compatibility]) -				;; -		esac -		;; -esac - - - -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(off_t) -AC_CHECK_SIZEOF(size_t) -AC_CHECK_SIZEOF(ssize_t) - -AC_CHECK_TYPE(intptr_t, long long) -AC_CHECK_TYPE(uintptr_t, unsigned long long) -AC_CHECK_TYPE(ptrdiff_t, unsigned long long) - -if test x"$ac_cv_type_long_long" != x"yes";then -	AC_MSG_ERROR([LIBREPLACE needs type 'long long']) -fi -if test $ac_cv_sizeof_long_long -lt 8;then -	AC_MSG_ERROR([LIBREPLACE needs sizeof(long long) >= 8]) -fi - -############################################ -# check if the compiler can do immediate structures -AC_SUBST(libreplace_cv_immediate_structures) -AC_CACHE_CHECK([for immediate structures],libreplace_cv_immediate_structures,[ -	AC_TRY_COMPILE([ -		#include <stdio.h> -	],[ -		typedef struct {unsigned x;} FOOBAR; -		#define X_FOOBAR(x) ((FOOBAR) { x }) -		#define FOO_ONE X_FOOBAR(1) -		FOOBAR f = FOO_ONE;    -		static const struct { -			FOOBAR y;  -		} f2[] = { -			{FOO_ONE} -		}; -		static const FOOBAR f3[] = {FOO_ONE}; -	], -	libreplace_cv_immediate_structures=yes, -	libreplace_cv_immediate_structures=no, -	libreplace_cv_immediate_structures=cross) -]) -if test x"$libreplace_cv_immediate_structures" = x"yes"; then -	AC_DEFINE(HAVE_IMMEDIATE_STRUCTURES,1,[Whether the compiler supports immediate structures]) -fi - -AC__LIBREPLACE_ONLY_CC_CHECKS_END -]) dnl end AC_LIBREPLACE_CC_CHECKS diff --git a/source3/lib/replace/libreplace_ld.m4 b/source3/lib/replace/libreplace_ld.m4 deleted file mode 100644 index 81bde46219..0000000000 --- a/source3/lib/replace/libreplace_ld.m4 +++ /dev/null @@ -1,319 +0,0 @@ -# -# This offers a nice overview how to build shared libraries on all platforms -#        http://www.fortran-2000.com/ArnaudRecipes/sharedlib.html -# - -AC_DEFUN([AC_LIBREPLACE_STLD], -[ -	AC_PATH_PROG(PROG_AR, ar) - -	STLD=${PROG_AR} - -	AC_SUBST(STLD) -]) - -AC_DEFUN([AC_LIBREPLACE_STLD_FLAGS], -[ -	STLD_FLAGS="-rcs" -	AC_SUBST(STLD_FLAGS) -]) - -AC_DEFUN([AC_LD_EXPORT_DYNAMIC], -[ -saved_LDFLAGS="$LDFLAGS" -if AC_TRY_COMMAND([${CC-cc} $CFLAGS -Wl,--version 2>&1 | grep "GNU ld" >/dev/null]); then -	LD_EXPORT_DYNAMIC="-Wl,-export-dynamic" -else -	case "$host_os" in -		hpux* ) -		  LD_EXPORT_DYNAMIC="-Wl,-E" -		  ;; -		*) -		  LD_EXPORT_DYNAMIC="" -		  ;; -	  esac -fi -AC_SUBST(LD_EXPORT_DYNAMIC) -LDFLAGS="$saved_LDFLAGS" -]) - -AC_DEFUN([AC_LD_PICFLAG], -[ -case "$host_os" in -	*linux*)  -		PICFLAG="-fPIC"  -		;; -	*solaris*) -		if test "${GCC}" = "yes"; then -			PICFLAG="-fPIC" -		else -			PICFLAG="-KPIC" -		fi -		;; -	*sunos*) -		PICFLAG="-KPIC"   # Is this correct for SunOS -		;; -	*netbsd* | *freebsd* | *dragonfly* )   -		PICFLAG="-fPIC -DPIC" -		;; -	*openbsd*) -		PICFLAG="-fPIC" -		;; -	*irix*) -		if test "${GCC}" = "yes"; then -			PICFLAG="-fPIC" -		else  -			PICFLAG="-KPIC" -		fi -		;; -	*aix*) -		# as AIX code is always position independent... -		PICFLAG="-O2" -		;; -	*hpux*) -		if test $ac_cv_prog_cc_Ae = yes; then -			PICFLAG="+z +ESnolit" -		elif test "${GCC}" = "yes"; then -			PICFLAG="-fPIC" -		fi -		if test "$host_cpu" = "ia64"; then -			PICFLAG="+z" -		fi -		;; -	*osf*) -		PICFLAG="-fPIC" -		;; -	*unixware*) -		PICFLAG="-KPIC" -		;; -	*darwin*) -		PICFLAG="-fno-common" -		;; -esac -AC_SUBST(PICFLAG) -]) - -AC_DEFUN([AC_LIBREPLACE_LD_SHLIB_LINKER], -[ -	LD_SHLIB_LINKER="${CC}" - -	case "$host_os" in -		*irix*) -			LD_SHLIB_LINKER="${PROG_LD}" -			;; -	esac - -	AC_SUBST(LD_SHLIB_LINKER) -]) - -AC_DEFUN([AC_LIBREPLACE_LD_SHLIB_FLAGS], -[ -	LD_SHLIB_FLAGS="-shared" - -	case "$host_os" in -		*linux*) -			LD_SHLIB_FLAGS="-shared -Wl,-Bsymbolic" -			;; -		*solaris*) -			LD_SHLIB_FLAGS="-G" -			if test "${GCC}" = "no"; then -				## ${CFLAGS} added for building 64-bit shared  -				## libs using Sun's Compiler -				LD_SHLIB_FLAGS="-G \${CFLAGS}" -			fi -			;; -		*sunos*) -			LD_SHLIB_FLAGS="-G" -			;; -		*irix*) -			LD_SHLIB_FLAGS="-shared" -			;; -		*aix*) -			LD_SHLIB_FLAGS="-Wl,-G,-bexpall,-bbigtoc" -			;; -		*hpux*) -			if test "${GCC}" = "yes"; then -				LD_SHLIB_FLAGS="-shared" -			else -				LD_SHLIB_FLAGS="-b" -			fi -			;; -		*osf*) -			LD_SHLIB_FLAGS="-shared" -			;; -		*darwin*) -			LD_SHLIB_FLAGS="-dynamiclib -Wl,-search_paths_first" -			;; -	esac - -	AC_SUBST(LD_SHLIB_FLAGS) -]) - -AC_DEFUN([AC_LIBREPLACE_LD_SHLIB_DISALLOW_UNDEF_FLAG], -[ -	LD_SHLIB_DISALLOW_UNDEF_FLAG="" - -	# -	# TODO: enforce error not only warnings -	# -	# NOTE: -Wl,--no-allow-shlib-undefined isn't what we want... -	#       as it bails out on broken system libraries -	# -	case "$host_os" in -		*osf*) -			LD_SHLIB_DISALLOW_UNDEF_FLAG="-warning_unresolved" -			;; -		*darwin*) -			LD_SHLIB_DISALLOW_UNDEF_FLAG="-undefined error" -			;; -	esac - -	AC_SUBST(LD_SHLIB_DISALLOW_UNDEF_FLAG) -]) - -AC_DEFUN([AC_LIBREPLACE_SHLD], -[ -	AC_REQUIRE([AC_LIBREPLACE_LD_SHLIB_LINKER]) -	SHLD="$LD_SHLIB_LINKER" -	AC_SUBST(SHLD) -]) - -AC_DEFUN([AC_LIBREPLACE_SHLD_FLAGS], -[ -	AC_REQUIRE([AC_LIBREPLACE_LD_SHLIB_FLAGS]) -	AC_REQUIRE([AC_LIBREPLACE_LD_SHLIB_DISALLOW_UNDEF_FLAG]) -	SHLD_FLAGS="$LD_SHLIB_FLAGS $LD_SHLIB_DISALLOW_UNDEF_FLAG" -	AC_SUBST(SHLD_FLAGS) -]) - -AC_DEFUN([AC_LD_SHLIBEXT], -[ -	SHLIBEXT="so" -	case "$host_os" in -		*hpux*) -			if test "$host_cpu" = "ia64"; then -				SHLIBEXT="so" -			else -				SHLIBEXT="sl" -			fi -		;; -		*darwin*) -			SHLIBEXT="dylib" -		;; -	esac -	AC_SUBST(SHLIBEXT) -]) - -AC_DEFUN([AC_LD_SONAMEFLAG], -[ -	AC_SUBST(SONAMEFLAG) -	SONAMEFLAG="" -	case "$host_os" in  -		*linux*) -			SONAMEFLAG="-Wl,-soname=" -			;; -		*solaris*) -			SONAMEFLAG="-h " -			if test "${GCC}" = "yes"; then -				SONAMEFLAG="-Wl,-soname=" -			fi -			;; -		*sunos*) -			SONAMEFLAG="-Wl,-h," -			;; -		*netbsd* | *freebsd* | *dragonfly* ) -			SONAMEFLAG="-Wl,-soname," -			;; -		*openbsd*) -			SONAMEFLAG="-Wl,-soname," -			;; -		*irix*) -			SONAMEFLAG="-Wl,-soname," -			;; -		*hpux*) -			SONAMEFLAG="-Wl,+h," -			;; -		*osf*) -			SONAMEFLAG="-Wl,-soname," -			;; -		*unixware*) -			SONAMEFLAG="-Wl,-soname," -			;; -		*darwin*) -			SONAMEFLAG="#" -			;; -		*aix*) -			# Not supported -			SONAMEFLAG="#" -			;; -		esac -]) - -AC_DEFUN([AC_LIBREPLACE_MDLD], -[ -	AC_REQUIRE([AC_LIBREPLACE_LD_SHLIB_LINKER]) -	MDLD="$LD_SHLIB_LINKER" -	AC_SUBST(MDLD) -]) - -AC_DEFUN([AC_LIBREPLACE_LD_SHLIB_ALLOW_UNDEF_FLAG], -[ -	LD_ALLOW_SHLIB_UNDEF_FLAG="" - -	case "$host_os" in -		*linux*) -			LD_SHLIB_ALLOW_UNDEF_FLAG="-Wl,--allow-shlib-undefined" -			;; -		*osf*) -			LD_SHLIB_ALLOW_UNDEF_FLAG="-Wl,-expect_unresolved,\"*\"" -			;; -		*darwin*) -			LD_SHLIB_ALLOW_UNDEF_FLAG="-undefined dynamic_lookup" -			;; -		*aix*) -			LD_SHLIB_ALLOW_UNDEF_FLAG="-Wl,-bnoentry" -			;; -	esac - -	AC_SUBST(LD_SHLIB_ALLOW_UNDEF_FLAG) -]) - -AC_DEFUN([AC_LIBREPLACE_MDLD_FLAGS], -[ -	AC_REQUIRE([AC_LIBREPLACE_LD_SHLIB_FLAGS]) -	AC_REQUIRE([AC_LIBREPLACE_LD_SHLIB_ALLOW_UNDEF_FLAG]) -	MDLD_FLAGS="$LD_SHLIB_FLAGS $LD_SHLIB_ALLOW_UNDEF_FLAG" -	AC_SUBST(MDLD_FLAGS) -]) - -AC_DEFUN([AC_LIBREPLACE_RUNTIME_LIB_PATH_VAR], -[ -	case "$host_os" in -		*linux*) -			LIB_PATH_VAR=LD_LIBRARY_PATH -		;; -		*netbsd*) -			LIB_PATH_VAR=LD_LIBRARY_PATH -		;; -		*solaris*) -			LIB_PATH_VAR=LD_LIBRARY_PATH -		;; -		*hpux*) -			LIB_PATH_VAR=SHLIB_PATH -		;; -		*osf*) -			LIB_PATH_VAR=LD_LIBRARY_PATH -		;; -		*aix*) -			LIB_PATH_VAR=LIB_PATH -			;; -		*irix*) -			LIB_PATH_VAR=LD_LIBRARY_PATH -			;; -		*darwin*) -			LIB_PATH_VAR=DYLD_LIBRARY_PATH -			;; -	esac - -	AC_SUBST(LIB_PATH_VAR) -]) diff --git a/source3/lib/replace/libreplace_macros.m4 b/source3/lib/replace/libreplace_macros.m4 deleted file mode 100644 index 1856eacf66..0000000000 --- a/source3/lib/replace/libreplace_macros.m4 +++ /dev/null @@ -1,332 +0,0 @@ -# -# This is a collection of useful autoconf macros -# - -############################################ -# Check if the compiler handles c99 struct initialization, and if not try -AC99 and -c99 flags -# Usage: LIBREPLACE_C99_STRUCT_INIT(success-action,failure-action) -# changes CFLAGS to add -AC99 or -c99 if needed -AC_DEFUN([LIBREPLACE_C99_STRUCT_INIT], -[ -saved_CFLAGS="$CFLAGS"; -c99_init=no -if test x"$c99_init" = x"no"; then -    AC_MSG_CHECKING(for C99 designated initializers) -    CFLAGS="$saved_CFLAGS"; -    AC_TRY_COMPILE([#include <stdio.h>], -     [ struct foo {int x;char y;}; -       struct foo bar = { .y = 'X', .x = 1 };	  -     ], -     [AC_MSG_RESULT(yes); c99_init=yes],[AC_MSG_RESULT(no)]) -fi -if test x"$c99_init" = x"no"; then -    AC_MSG_CHECKING(for C99 designated initializers with -AC99) -    CFLAGS="$saved_CFLAGS -AC99"; -    AC_TRY_COMPILE([#include <stdio.h>], -     [ struct foo {int x;char y;}; -       struct foo bar = { .y = 'X', .x = 1 };	  -     ], -     [AC_MSG_RESULT(yes); c99_init=yes],[AC_MSG_RESULT(no)]) -fi -if test x"$c99_init" = x"no"; then -    AC_MSG_CHECKING(for C99 designated initializers with -qlanglvl=extc99) -    CFLAGS="$saved_CFLAGS -qlanglvl=extc99"; -    AC_TRY_COMPILE([#include <stdio.h>], -     [ struct foo {int x;char y;}; -       struct foo bar = { .y = 'X', .x = 1 };	  -     ], -     [AC_MSG_RESULT(yes); c99_init=yes],[AC_MSG_RESULT(no)]) -fi -if test x"$c99_init" = x"no"; then -    AC_MSG_CHECKING(for C99 designated initializers with -qlanglvl=stdc99) -    CFLAGS="$saved_CFLAGS -qlanglvl=stdc99"; -    AC_TRY_COMPILE([#include <stdio.h>], -     [ struct foo {int x;char y;}; -       struct foo bar = { .y = 'X', .x = 1 };	  -     ], -     [AC_MSG_RESULT(yes); c99_init=yes],[AC_MSG_RESULT(no)]) -fi -if test x"$c99_init" = x"no"; then -    AC_MSG_CHECKING(for C99 designated initializers with -c99) -    CFLAGS="$saved_CFLAGS -c99" -    AC_TRY_COMPILE([#include <stdio.h>], -     [ struct foo {int x;char y;}; -       struct foo bar = { .y = 'X', .x = 1 };	  -     ], -     [AC_MSG_RESULT(yes); c99_init=yes],[AC_MSG_RESULT(no)]) -fi - -if test "`uname`" = "HP-UX"; then -  if test "$ac_cv_c_compiler_gnu" = no; then -	# special override for broken HP-UX compiler - I can't find a way to test -	# this properly (its a compiler bug) -	CFLAGS="$CFLAGS -AC99"; -	c99_init=yes; -  fi -fi - -if test x"$c99_init" = x"yes"; then -    saved_CFLAGS="" -    $1 -else -    CFLAGS="$saved_CFLAGS" -    saved_CFLAGS="" -    $2 -fi -]) - -dnl AC_PROG_CC_FLAG(flag) -AC_DEFUN(AC_PROG_CC_FLAG, -[AC_CACHE_CHECK(whether ${CC-cc} accepts -$1, ac_cv_prog_cc_$1, -[echo 'void f(){}' > conftest.c -if test -z "`${CC-cc} -$1 -c conftest.c 2>&1`"; then -  ac_cv_prog_cc_$1=yes -else -  ac_cv_prog_cc_$1=no -fi -rm -f conftest* -])]) - -dnl see if a declaration exists for a function or variable -dnl defines HAVE_function_DECL if it exists -dnl AC_HAVE_DECL(var, includes) -AC_DEFUN(AC_HAVE_DECL, -[ - AC_CACHE_CHECK([for $1 declaration],ac_cv_have_$1_decl,[ -    AC_TRY_COMPILE([$2],[int i = (int)$1], -        ac_cv_have_$1_decl=yes,ac_cv_have_$1_decl=no)]) - if test x"$ac_cv_have_$1_decl" = x"yes"; then -    AC_DEFINE([HAVE_]translit([$1], [a-z], [A-Z])[_DECL],1,[Whether $1() is available]) - fi -]) - - -# AC_CHECK_LIB_EXT(LIBRARY, [EXT_LIBS], [FUNCTION], -#              [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND], -#              [ADD-ACTION-IF-FOUND],[OTHER-LIBRARIES]) -# ------------------------------------------------------ -# -# Use a cache variable name containing both the library and function name, -# because the test really is for library $1 defining function $3, not -# just for library $1.  Separate tests with the same $1 and different $3s -# may have different results. -# -# Note that using directly AS_VAR_PUSHDEF([ac_Lib], [ac_cv_lib_$1_$3]) -# is asking for trouble, since AC_CHECK_LIB($lib, fun) would give -# ac_cv_lib_$lib_fun, which is definitely not what was meant.  Hence -# the AS_LITERAL_IF indirection. -# -# FIXME: This macro is extremely suspicious.  It DEFINEs unconditionally, -# whatever the FUNCTION, in addition to not being a *S macro.  Note -# that the cache does depend upon the function we are looking for. -# -# It is on purpose we used `ac_check_lib_ext_save_LIBS' and not just -# `ac_save_LIBS': there are many macros which don't want to see `LIBS' -# changed but still want to use AC_CHECK_LIB_EXT, so they save `LIBS'. -# And ``ac_save_LIBS' is too tempting a name, so let's leave them some -# freedom. -AC_DEFUN([AC_CHECK_LIB_EXT], -[ -AH_CHECK_LIB_EXT([$1]) -ac_check_lib_ext_save_LIBS=$LIBS -LIBS="-l$1 $$2 $7 $LIBS" -AS_LITERAL_IF([$1], -      [AS_VAR_PUSHDEF([ac_Lib_ext], [ac_cv_lib_ext_$1])], -      [AS_VAR_PUSHDEF([ac_Lib_ext], [ac_cv_lib_ext_$1''])])dnl - -m4_ifval([$3], - [ -    AH_CHECK_FUNC_EXT([$3]) -    AS_LITERAL_IF([$1], -              [AS_VAR_PUSHDEF([ac_Lib_func], [ac_cv_lib_ext_$1_$3])], -              [AS_VAR_PUSHDEF([ac_Lib_func], [ac_cv_lib_ext_$1''_$3])])dnl -    AC_CACHE_CHECK([for $3 in -l$1], ac_Lib_func, -	[AC_TRY_LINK_FUNC($3, -                 [AS_VAR_SET(ac_Lib_func, yes); -		  AS_VAR_SET(ac_Lib_ext, yes)], -                 [AS_VAR_SET(ac_Lib_func, no); -		  AS_VAR_SET(ac_Lib_ext, no)]) -	]) -    AS_IF([test AS_VAR_GET(ac_Lib_func) = yes], -        [AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_$3))])dnl -    AS_VAR_POPDEF([ac_Lib_func])dnl - ],[ -    AC_CACHE_CHECK([for -l$1], ac_Lib_ext, -	[AC_TRY_LINK_FUNC([main], -                 [AS_VAR_SET(ac_Lib_ext, yes)], -                 [AS_VAR_SET(ac_Lib_ext, no)]) -	]) - ]) -LIBS=$ac_check_lib_ext_save_LIBS - -AS_IF([test AS_VAR_GET(ac_Lib_ext) = yes], -    [m4_default([$4],  -        [AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_LIB$1)) -		case "$$2" in -		    *-l$1*) -			;; -		    *) -			$2="-l$1 $$2" -			;; -		esac]) -		[$6] -	    ], -	    [$5])dnl -AS_VAR_POPDEF([ac_Lib_ext])dnl -])# AC_CHECK_LIB_EXT - -# AH_CHECK_LIB_EXT(LIBNAME) -# --------------------- -m4_define([AH_CHECK_LIB_EXT], -[AH_TEMPLATE(AS_TR_CPP(HAVE_LIB$1), -             [Define to 1 if you have the `]$1[' library (-l]$1[).])]) - -dnl AC_SEARCH_LIBS_EXT(FUNCTION, SEARCH-LIBS, EXT_LIBS, -dnl                    [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND], -dnl                    [OTHER-LIBRARIES]) -dnl -------------------------------------------------------- -dnl Search for a library defining FUNC, if it's not already available. -AC_DEFUN([AC_SEARCH_LIBS_EXT], -[AC_CACHE_CHECK([for library containing $1], [ac_cv_search_ext_$1], -[ -ac_func_search_ext_save_LIBS=$LIBS -ac_cv_search_ext_$1=no -AC_LINK_IFELSE([AC_LANG_CALL([], [$1])], -	       [ac_cv_search_ext_$1="none required"]) -if test "$ac_cv_search_ext_$1" = no; then -  for ac_lib in $2; do -    LIBS="-l$ac_lib $$3 $6 $ac_func_search_save_ext_LIBS" -    AC_LINK_IFELSE([AC_LANG_CALL([], [$1])], -		   [ac_cv_search_ext_$1="-l$ac_lib" -break]) -  done -fi -LIBS=$ac_func_search_ext_save_LIBS]) -AS_IF([test "$ac_cv_search_ext_$1" != no], -  [test "$ac_cv_search_ext_$1" = "none required" || $3="$ac_cv_search_ext_$1 $$3" -  $4], -      [$5])dnl -]) - -dnl check for a function in a $LIBS and $OTHER_LIBS libraries variable. -dnl AC_CHECK_FUNC_EXT(func,OTHER_LIBS,IF-TRUE,IF-FALSE) -AC_DEFUN([AC_CHECK_FUNC_EXT], -[ -    AH_CHECK_FUNC_EXT($1)	 -    ac_check_func_ext_save_LIBS=$LIBS -    LIBS="$2 $LIBS" -    AS_VAR_PUSHDEF([ac_var], [ac_cv_func_ext_$1])dnl -    AC_CACHE_CHECK([for $1], ac_var, -	[AC_LINK_IFELSE([AC_LANG_FUNC_LINK_TRY([$1])], -                [AS_VAR_SET(ac_var, yes)], -                [AS_VAR_SET(ac_var, no)])]) -    LIBS=$ac_check_func_ext_save_LIBS -    AS_IF([test AS_VAR_GET(ac_var) = yes],  -	    [AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_$1])) $3],  -	    [$4])dnl -AS_VAR_POPDEF([ac_var])dnl -])# AC_CHECK_FUNC - -# AH_CHECK_FUNC_EXT(FUNCNAME) -# --------------------- -m4_define([AH_CHECK_FUNC_EXT], -[AH_TEMPLATE(AS_TR_CPP(HAVE_$1), -             [Define to 1 if you have the `]$1[' function.])]) - -dnl Define an AC_DEFINE with ifndef guard. -dnl AC_N_DEFINE(VARIABLE [, VALUE]) -AC_DEFUN([AC_N_DEFINE], -[ -AH_VERBATIM([$1], [ -#ifndef $1 -# undef $1 -#endif -]) - - cat >>confdefs.h <<\EOF -#ifndef $1 -[#define] $1 m4_if($#, 1, 1, [$2]) -#endif -EOF -]) - -dnl Add an #include -dnl AC_ADD_INCLUDE(VARIABLE) -define(AC_ADD_INCLUDE, -[cat >> confdefs.h <<\EOF -[#include] $1 -EOF -]) - -dnl remove an #include -dnl AC_REMOVE_INCLUDE(VARIABLE) -define(AC_REMOVE_INCLUDE, -[ -grep -v '[#include] $1' confdefs.h >confdefs.h.tmp -cat confdefs.h.tmp > confdefs.h -rm confdefs.h.tmp -]) - -dnl remove an #define -dnl AC_REMOVE_DEFINE(VARIABLE) -define(AC_REMOVE_DEFINE, -[ -grep -v '[#define] $1 ' confdefs.h |grep -v '[#define] $1[$]'>confdefs.h.tmp -cat confdefs.h.tmp > confdefs.h -rm confdefs.h.tmp -]) - -dnl AS_HELP_STRING is not available in autoconf 2.57, and AC_HELP_STRING is deprecated -dnl in autoconf 2.59, so define AS_HELP_STRING to be AC_HELP_STRING unless it is already -dnl defined. -m4_ifdef([AS_HELP_STRING], , [m4_define([AS_HELP_STRING], m4_defn([AC_HELP_STRING]))]) - -dnl check if the prototype in the header matches the given one -dnl AC_VERIFY_C_PROTOTYPE(prototype,functionbody,[IF-TRUE].[IF-FALSE],[extraheaders]) -AC_DEFUN(AC_VERIFY_C_PROTOTYPE, -[AC_CACHE_CHECK([for prototype $1], AS_TR_SH([ac_cv_c_prototype_$1]), -	AC_COMPILE_IFELSE([AC_LANG_SOURCE([ -		AC_INCLUDES_DEFAULT -		$5 -		$1 -		{ -			$2 -		} -	])],[ -		AS_TR_SH([ac_cv_c_prototype_$1])=yes -	],[ -		AS_TR_SH([ac_cv_c_prototype_$1])=no -	]) -) -AS_IF([test $AS_TR_SH([ac_cv_c_prototype_$1]) = yes],[$3],[$4]) -]) - -AC_DEFUN(LIBREPLACE_PROVIDE_HEADER,  -[AC_CHECK_HEADER([$1],  -		[ AC_CONFIG_COMMANDS(rm-$1, [rm -f $libreplacedir/$1], [libreplacedir=$libreplacedir]) ], -		[ AC_CONFIG_COMMANDS(mk-$1, [echo "#include \"replace.h\"" > $libreplacedir/$1], [libreplacedir=$libreplacedir]) ] -	) -]) - -dnl AC_HAVE_TYPE(TYPE,INCLUDES) -AC_DEFUN([AC_HAVE_TYPE], [ -AC_REQUIRE([AC_HEADER_STDC]) -cv=`echo "$1" | sed 'y%./+- %__p__%'` -AC_MSG_CHECKING(for $1) -AC_CACHE_VAL([ac_cv_type_$cv], -AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ -AC_INCLUDES_DEFAULT -$2]], -[[$1 foo;]])], -[eval "ac_cv_type_$cv=yes"], -[eval "ac_cv_type_$cv=no"]))dnl -ac_foo=`eval echo \\$ac_cv_type_$cv` -AC_MSG_RESULT($ac_foo) -if test "$ac_foo" = yes; then -  ac_tr_hdr=HAVE_`echo $1 | sed 'y%abcdefghijklmnopqrstuvwxyz./- %ABCDEFGHIJKLMNOPQRSTUVWXYZ____%'` -if false; then -	AC_CHECK_TYPES($1) -fi -  AC_DEFINE_UNQUOTED($ac_tr_hdr, 1, [Define if you have type `$1']) -fi -]) diff --git a/source3/lib/replace/libreplace_network.m4 b/source3/lib/replace/libreplace_network.m4 deleted file mode 100644 index 4edb55c03a..0000000000 --- a/source3/lib/replace/libreplace_network.m4 +++ /dev/null @@ -1,377 +0,0 @@ -AC_DEFUN_ONCE(AC_LIBREPLACE_NETWORK_CHECKS, -[ -echo "LIBREPLACE_NETWORK_CHECKS: START" - -AC_DEFINE(LIBREPLACE_NETWORK_CHECKS, 1, [LIBREPLACE_NETWORK_CHECKS were used]) -LIBREPLACE_NETWORK_OBJS="" -LIBREPLACE_NETWORK_LIBS="" - -AC_CHECK_HEADERS(sys/socket.h netinet/in.h netdb.h arpa/inet.h) -AC_CHECK_HEADERS(netinet/ip.h netinet/tcp.h netinet/in_systm.h netinet/in_ip.h) -AC_CHECK_HEADERS(sys/sockio.h sys/un.h) - -dnl we need to check that net/if.h really can be used, to cope with hpux -dnl where including it always fails -AC_CACHE_CHECK([for usable net/if.h],libreplace_cv_USABLE_NET_IF_H,[ -	AC_COMPILE_IFELSE([AC_LANG_SOURCE([ -		AC_INCLUDES_DEFAULT -		#if HAVE_SYS_SOCKET_H -		# include <sys/socket.h> -		#endif -		#include <net/if.h> -		int main(void) {return 0;}])], -		[libreplace_cv_USABLE_NET_IF_H=yes], -		[libreplace_cv_USABLE_NET_IF_H=no] -	) -]) -if test x"$libreplace_cv_USABLE_NET_IF_H" = x"yes";then -	AC_DEFINE(HAVE_NET_IF_H, 1, usability of net/if.h) -fi - -AC_HAVE_TYPE([socklen_t],[#include <sys/socket.h>]) -AC_HAVE_TYPE([sa_family_t],[#include <sys/socket.h>]) -AC_HAVE_TYPE([struct addrinfo], [#include <netdb.h>]) -AC_HAVE_TYPE([struct sockaddr], [#include <sys/socket.h>]) -AC_HAVE_TYPE([struct sockaddr_storage], [ -#include <sys/socket.h> -#include <sys/types.h> -#include <netinet/in.h> -]) -AC_HAVE_TYPE([struct sockaddr_in6], [ -#include <sys/socket.h> -#include <sys/types.h> -#include <netinet/in.h> -]) - -if test x"$ac_cv_type_struct_sockaddr_storage" = x"yes"; then -AC_CHECK_MEMBER(struct sockaddr_storage.ss_family, -                AC_DEFINE(HAVE_SS_FAMILY, 1, [Defined if struct sockaddr_storage has ss_family field]),, -                [ -#include <sys/socket.h> -#include <sys/types.h> -#include <netinet/in.h> -		]) - -if test x"$ac_cv_member_struct_sockaddr_storage_ss_family" != x"yes"; then -AC_CHECK_MEMBER(struct sockaddr_storage.__ss_family, -                AC_DEFINE(HAVE___SS_FAMILY, 1, [Defined if struct sockaddr_storage has __ss_family field]),, -                [ -#include <sys/socket.h> -#include <sys/types.h> -#include <netinet/in.h> -		]) -fi -fi - -AC_CACHE_CHECK([for sin_len in sock],libreplace_cv_HAVE_SOCK_SIN_LEN,[ -	AC_TRY_COMPILE( -		[ -#include <sys/types.h> -#include <sys/socket.h> -#include <netinet/in.h> -		],[ -struct sockaddr_in sock; sock.sin_len = sizeof(sock); -		],[ -		libreplace_cv_HAVE_SOCK_SIN_LEN=yes -		],[ -		libreplace_cv_HAVE_SOCK_SIN_LEN=no -		]) -]) -if test x"$libreplace_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then -	AC_DEFINE(HAVE_SOCK_SIN_LEN,1,[Whether the sockaddr_in struct has a sin_len property]) -fi - -############################################ -# check for unix domain sockets -AC_CACHE_CHECK([for unix domain sockets],libreplace_cv_HAVE_UNIXSOCKET,[ -	AC_TRY_COMPILE([ -#include <sys/types.h> -#include <stdlib.h> -#include <stddef.h> -#include <sys/socket.h> -#include <sys/un.h> -		],[ -struct sockaddr_un sunaddr; -sunaddr.sun_family = AF_UNIX; -		],[ -		libreplace_cv_HAVE_UNIXSOCKET=yes -		],[ -		libreplace_cv_HAVE_UNIXSOCKET=no -		]) -]) -if test x"$libreplace_cv_HAVE_UNIXSOCKET" = x"yes"; then -	AC_DEFINE(HAVE_UNIXSOCKET,1,[If we need to build with unixscoket support]) -fi - -dnl The following test is roughl taken from the cvs sources. -dnl -dnl If we can't find connect, try looking in -lsocket, -lnsl, and -linet. -dnl The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has -dnl libsocket.so which has a bad implementation of gethostbyname (it -dnl only looks in /etc/hosts), so we only look for -lsocket if we need -dnl it. -AC_CHECK_FUNCS(connect) -if test x"$ac_cv_func_connect" = x"no"; then -	AC_CHECK_LIB_EXT(nsl_s, LIBREPLACE_NETWORK_LIBS, connect) -	AC_CHECK_LIB_EXT(nsl, LIBREPLACE_NETWORK_LIBS, connect) -	AC_CHECK_LIB_EXT(socket, LIBREPLACE_NETWORK_LIBS, connect) -	AC_CHECK_LIB_EXT(inet, LIBREPLACE_NETWORK_LIBS, connect) -	dnl We can't just call AC_CHECK_FUNCS(connect) here, -	dnl because the value has been cached. -	if test x"$ac_cv_lib_ext_nsl_s_connect" = x"yes" || -		test x"$ac_cv_lib_ext_nsl_connect" = x"yes" || -		test x"$ac_cv_lib_ext_socket_connect" = x"yes" || -		test x"$ac_cv_lib_ext_inet_connect" = x"yes" -	then -		AC_DEFINE(HAVE_CONNECT,1,[Whether the system has connect()]) -	fi -fi - -AC_CHECK_FUNCS(gethostbyname) -if test x"$ac_cv_func_gethostbyname" = x"no"; then -	AC_CHECK_LIB_EXT(nsl_s, LIBREPLACE_NETWORK_LIBS, gethostbyname) -	AC_CHECK_LIB_EXT(nsl, LIBREPLACE_NETWORK_LIBS, gethostbyname) -	AC_CHECK_LIB_EXT(socket, LIBREPLACE_NETWORK_LIBS, gethostbyname) -	dnl We can't just call AC_CHECK_FUNCS(gethostbyname) here, -	dnl because the value has been cached. -	if test x"$ac_cv_lib_ext_nsl_s_gethostbyname" = x"yes" || -		test x"$ac_cv_lib_ext_nsl_gethostbyname" = x"yes" || -		test x"$ac_cv_lib_ext_socket_gethostbyname" = x"yes" -	then -		AC_DEFINE(HAVE_GETHOSTBYNAME,1, -			  [Whether the system has gethostbyname()]) -	fi -fi - -dnl HP-UX has if_nametoindex in -lipv6 -AC_CHECK_FUNCS(if_nametoindex) -if test x"$ac_cv_func_if_nametoindex" = x"no"; then -	AC_CHECK_LIB_EXT(ipv6, LIBREPLACE_NETWORK_LIBS, if_nametoindex) -	dnl We can't just call AC_CHECK_FUNCS(if_nametoindex) here, -	dnl because the value has been cached. -	if test x"$ac_cv_lib_ext_ipv6_if_nametoindex" = x"yes" -	then -		AC_DEFINE(HAVE_IF_NAMETOINDEX, 1, -			  [Whether the system has if_nametoindex()]) -	fi -fi - -# The following tests need LIBS="${LIBREPLACE_NETWORK_LIBS}" -old_LIBS=$LIBS -LIBS="${LIBREPLACE_NETWORK_LIBS}" -SAVE_CPPFLAGS="$CPPFLAGS" -CPPFLAGS="$CPPFLAGS -I$libreplacedir" - -AC_CHECK_FUNCS(socketpair,[],[LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} socketpair.o"]) - -AC_CACHE_CHECK([for broken inet_ntoa],libreplace_cv_REPLACE_INET_NTOA,[ -AC_TRY_RUN([ -#include <stdio.h> -#include <unistd.h> -#include <sys/types.h> -#include <netinet/in.h> -#ifdef HAVE_ARPA_INET_H -#include <arpa/inet.h> -#endif -main() { struct in_addr ip; ip.s_addr = 0x12345678; -if (strcmp(inet_ntoa(ip),"18.52.86.120") && -    strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); } -exit(1);}], -           libreplace_cv_REPLACE_INET_NTOA=yes,libreplace_cv_REPLACE_INET_NTOA=no,libreplace_cv_REPLACE_INET_NTOA=cross)]) - -AC_CHECK_FUNCS(inet_ntoa,[],[libreplace_cv_REPLACE_INET_NTOA=yes]) -if test x"$libreplace_cv_REPLACE_INET_NTOA" = x"yes"; then -    AC_DEFINE(REPLACE_INET_NTOA,1,[Whether inet_ntoa should be replaced]) -    LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} inet_ntoa.o" -fi - -AC_CHECK_FUNCS(inet_aton,[],[LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} inet_aton.o"]) - -AC_CHECK_FUNCS(inet_ntop,[],[LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} inet_ntop.o"]) - -AC_CHECK_FUNCS(inet_pton,[],[LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} inet_pton.o"]) - -dnl test for getaddrinfo/getnameinfo -AC_CACHE_CHECK([for getaddrinfo],libreplace_cv_HAVE_GETADDRINFO,[ -AC_TRY_LINK([ -#include <sys/types.h> -#if STDC_HEADERS -#include <stdlib.h> -#include <stddef.h> -#endif -#include <sys/socket.h> -#include <netdb.h>], -[ -struct sockaddr sa; -struct addrinfo *ai = NULL; -int ret = getaddrinfo(NULL, NULL, NULL, &ai); -if (ret != 0) { -	const char *es = gai_strerror(ret); -} -freeaddrinfo(ai); -ret = getnameinfo(&sa, sizeof(sa), -		NULL, 0, -		NULL, 0, 0); - -], -libreplace_cv_HAVE_GETADDRINFO=yes,libreplace_cv_HAVE_GETADDRINFO=no)]) -if test x"$libreplace_cv_HAVE_GETADDRINFO" = x"yes"; then -	AC_DEFINE(HAVE_GETADDRINFO,1,[Whether the system has getaddrinfo]) -	AC_DEFINE(HAVE_GETNAMEINFO,1,[Whether the system has getnameinfo]) -	AC_DEFINE(HAVE_FREEADDRINFO,1,[Whether the system has freeaddrinfo]) -	AC_DEFINE(HAVE_GAI_STRERROR,1,[Whether the system has gai_strerror]) -else -	LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} getaddrinfo.o" -fi - -AC_CHECK_HEADERS([ifaddrs.h]) - -dnl Used when getifaddrs is not available -AC_CHECK_MEMBERS([struct sockaddr.sa_len],  -	 [AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Whether struct sockaddr has a sa_len member])], -	 [], -	 [#include <sys/socket.h>]) - -dnl test for getifaddrs and freeifaddrs -AC_CACHE_CHECK([for getifaddrs and freeifaddrs],libreplace_cv_HAVE_GETIFADDRS,[ -AC_TRY_COMPILE([ -#include <sys/types.h> -#if STDC_HEADERS -#include <stdlib.h> -#include <stddef.h> -#endif -#include <sys/socket.h> -#include <netinet/in.h> -#include <arpa/inet.h> -#include <ifaddrs.h> -#include <netdb.h>], -[ -struct ifaddrs *ifp = NULL; -int ret = getifaddrs (&ifp); -freeifaddrs(ifp); -], -libreplace_cv_HAVE_GETIFADDRS=yes,libreplace_cv_HAVE_GETIFADDRS=no)]) -if test x"$libreplace_cv_HAVE_GETIFADDRS" = x"yes"; then -    AC_DEFINE(HAVE_GETIFADDRS,1,[Whether the system has getifaddrs]) -    AC_DEFINE(HAVE_FREEIFADDRS,1,[Whether the system has freeifaddrs]) -	AC_DEFINE(HAVE_STRUCT_IFADDRS,1,[Whether struct ifaddrs is available]) -fi - -################## -# look for a method of finding the list of network interfaces -iface=no; -AC_CACHE_CHECK([for iface getifaddrs],libreplace_cv_HAVE_IFACE_GETIFADDRS,[ -AC_TRY_RUN([ -#define HAVE_IFACE_GETIFADDRS 1 -#define NO_CONFIG_H 1 -#define AUTOCONF_TEST 1 -#define SOCKET_WRAPPER_NOT_REPLACE -#include "$libreplacedir/replace.c" -#include "$libreplacedir/inet_ntop.c" -#include "$libreplacedir/snprintf.c" -#include "$libreplacedir/getifaddrs.c" -#define getifaddrs_test main -#include "$libreplacedir/test/getifaddrs.c"], -           libreplace_cv_HAVE_IFACE_GETIFADDRS=yes,libreplace_cv_HAVE_IFACE_GETIFADDRS=no,libreplace_cv_HAVE_IFACE_GETIFADDRS=cross)]) -if test x"$libreplace_cv_HAVE_IFACE_GETIFADDRS" = x"yes"; then -    iface=yes;AC_DEFINE(HAVE_IFACE_GETIFADDRS,1,[Whether iface getifaddrs is available]) -else -	LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} getifaddrs.o" -fi - - -if test $iface = no; then -AC_CACHE_CHECK([for iface AIX],libreplace_cv_HAVE_IFACE_AIX,[ -AC_TRY_RUN([ -#define HAVE_IFACE_AIX 1 -#define NO_CONFIG_H 1 -#define AUTOCONF_TEST 1 -#undef _XOPEN_SOURCE_EXTENDED -#define SOCKET_WRAPPER_NOT_REPLACE -#include "$libreplacedir/replace.c" -#include "$libreplacedir/inet_ntop.c" -#include "$libreplacedir/snprintf.c" -#include "$libreplacedir/getifaddrs.c" -#define getifaddrs_test main -#include "$libreplacedir/test/getifaddrs.c"], -           libreplace_cv_HAVE_IFACE_AIX=yes,libreplace_cv_HAVE_IFACE_AIX=no,libreplace_cv_HAVE_IFACE_AIX=cross)]) -if test x"$libreplace_cv_HAVE_IFACE_AIX" = x"yes"; then -    iface=yes;AC_DEFINE(HAVE_IFACE_AIX,1,[Whether iface AIX is available]) -fi -fi - - -if test $iface = no; then -AC_CACHE_CHECK([for iface ifconf],libreplace_cv_HAVE_IFACE_IFCONF,[ -AC_TRY_RUN([ -#define HAVE_IFACE_IFCONF 1 -#define NO_CONFIG_H 1 -#define AUTOCONF_TEST 1 -#define SOCKET_WRAPPER_NOT_REPLACE -#include "$libreplacedir/replace.c" -#include "$libreplacedir/inet_ntop.c" -#include "$libreplacedir/snprintf.c" -#include "$libreplacedir/getifaddrs.c" -#define getifaddrs_test main -#include "$libreplacedir/test/getifaddrs.c"], -           libreplace_cv_HAVE_IFACE_IFCONF=yes,libreplace_cv_HAVE_IFACE_IFCONF=no,libreplace_cv_HAVE_IFACE_IFCONF=cross)]) -if test x"$libreplace_cv_HAVE_IFACE_IFCONF" = x"yes"; then -    iface=yes;AC_DEFINE(HAVE_IFACE_IFCONF,1,[Whether iface ifconf is available]) -fi -fi - -if test $iface = no; then -AC_CACHE_CHECK([for iface ifreq],libreplace_cv_HAVE_IFACE_IFREQ,[ -AC_TRY_RUN([ -#define HAVE_IFACE_IFREQ 1 -#define NO_CONFIG_H 1 -#define AUTOCONF_TEST 1 -#define SOCKET_WRAPPER_NOT_REPLACE -#include "$libreplacedir/replace.c" -#include "$libreplacedir/inet_ntop.c" -#include "$libreplacedir/snprintf.c" -#include "$libreplacedir/getifaddrs.c" -#define getifaddrs_test main -#include "$libreplacedir/test/getifaddrs.c"], -           libreplace_cv_HAVE_IFACE_IFREQ=yes,libreplace_cv_HAVE_IFACE_IFREQ=no,libreplace_cv_HAVE_IFACE_IFREQ=cross)]) -if test x"$libreplace_cv_HAVE_IFACE_IFREQ" = x"yes"; then -    iface=yes;AC_DEFINE(HAVE_IFACE_IFREQ,1,[Whether iface ifreq is available]) -fi -fi - -dnl test for ipv6 -AC_CACHE_CHECK([for ipv6 support],libreplace_cv_HAVE_IPV6,[ -	AC_TRY_LINK([ -#include <stdlib.h> /* for NULL */ -#include <sys/socket.h> -#include <sys/types.h> -#include <netdb.h> -		], -		[ -struct sockaddr_storage sa_store; -struct addrinfo *ai = NULL; -struct in6_addr in6addr; -int idx = if_nametoindex("iface1"); -int s = socket(AF_INET6, SOCK_STREAM, 0); -int ret = getaddrinfo(NULL, NULL, NULL, &ai); -if (ret != 0) { -	const char *es = gai_strerror(ret); -} -freeaddrinfo(ai); -		],[ -		libreplace_cv_HAVE_IPV6=yes -		],[ -		libreplace_cv_HAVE_IPV6=no -		]) -]) -if test x"$libreplace_cv_HAVE_IPV6" = x"yes"; then -    AC_DEFINE(HAVE_IPV6,1,[Whether the system has IPv6 support]) -fi - -LIBS=$old_LIBS -CPPFLAGS="$SAVE_CPPFLAGS" - -LIBREPLACEOBJ="${LIBREPLACEOBJ} ${LIBREPLACE_NETWORK_OBJS}" - -echo "LIBREPLACE_NETWORK_CHECKS: END" -]) dnl end AC_LIBREPLACE_NETWORK_CHECKS diff --git a/source3/lib/replace/repdir.m4 b/source3/lib/replace/repdir.m4 deleted file mode 100644 index f53a4c2974..0000000000 --- a/source3/lib/replace/repdir.m4 +++ /dev/null @@ -1,78 +0,0 @@ -AC_CACHE_CHECK([for broken readdir],libreplace_cv_READDIR_NEEDED,[ -	AC_TRY_RUN([ -#define test_readdir_os2_delete main -#include "$libreplacedir/test/os2_delete.c"], -	[libreplace_cv_READDIR_NEEDED=no], -	[libreplace_cv_READDIR_NEEDED=yes], -	[libreplace_cv_READDIR_NEEDED="assuming not"]) -]) - -# -# try to replace with getdirentries() if needed -# -if test x"$libreplace_cv_READDIR_NEEDED" = x"yes"; then -AC_CHECK_FUNCS(getdirentries) -AC_VERIFY_C_PROTOTYPE([long telldir(const DIR *dir)], -	[ -	return 0; -	],[ -	AC_DEFINE(TELLDIR_TAKES_CONST_DIR, 1, [Whether telldir takes a const pointer]) -	],[],[ -	#include <dirent.h> -	]) - -AC_VERIFY_C_PROTOTYPE([int seekdir(DIR *dir, long ofs)], -	[ -	return 0; -	],[ -	AC_DEFINE(SEEKDIR_RETURNS_INT, 1, [Whether seekdir returns an int]) -	],[],[ -	#include <dirent.h> -	]) -AC_CACHE_CHECK([for replacing readdir using getdirentries()],libreplace_cv_READDIR_GETDIRENTRIES,[ -	AC_TRY_RUN([ -#define _LIBREPLACE_REPLACE_H -#include "$libreplacedir/repdir_getdirentries.c" -#define test_readdir_os2_delete main -#include "$libreplacedir/test/os2_delete.c"], -	[libreplace_cv_READDIR_GETDIRENTRIES=yes], -	[libreplace_cv_READDIR_GETDIRENTRIES=no]) -]) -fi -if test x"$libreplace_cv_READDIR_GETDIRENTRIES" = x"yes"; then -	AC_DEFINE(REPLACE_READDIR,1,[replace readdir]) -	AC_DEFINE(REPLACE_READDIR_GETDIRENTRIES,1,[replace readdir using getdirentries()]) -	LIBREPLACEOBJ="${LIBREPLACEOBJ} repdir_getdirentries.o" -	libreplace_cv_READDIR_NEEDED=no -fi - -# -# try to replace with getdents() if needed -# -if test x"$libreplace_cv_READDIR_NEEDED" = x"yes"; then -AC_CHECK_FUNCS(getdents) -AC_CACHE_CHECK([for replacing readdir using getdents()],libreplace_cv_READDIR_GETDENTS,[ -	AC_TRY_RUN([ -#define _LIBREPLACE_REPLACE_H -#error _donot_use_getdents_replacement_anymore -#include "$libreplacedir/repdir_getdents.c" -#define test_readdir_os2_delete main -#include "$libreplacedir/test/os2_delete.c"], -	[libreplace_cv_READDIR_GETDENTS=yes], -	[libreplace_cv_READDIR_GETDENTS=no]) -]) -fi -if test x"$libreplace_cv_READDIR_GETDENTS" = x"yes"; then -	AC_DEFINE(REPLACE_READDIR,1,[replace readdir]) -	AC_DEFINE(REPLACE_READDIR_GETDENTS,1,[replace readdir using getdents()]) -	LIBREPLACEOBJ="${LIBREPLACEOBJ} repdir_getdents.o" -	libreplace_cv_READDIR_NEEDED=no -fi - -AC_MSG_CHECKING([a usable readdir()]) -if test x"$libreplace_cv_READDIR_NEEDED" = x"yes"; then -	AC_MSG_RESULT(no) -	AC_MSG_WARN([the provided readdir() is broken]) -else -	AC_MSG_RESULT(yes) -fi diff --git a/source3/lib/replace/repdir_getdents.c b/source3/lib/replace/repdir_getdents.c deleted file mode 100644 index afc634a796..0000000000 --- a/source3/lib/replace/repdir_getdents.c +++ /dev/null @@ -1,166 +0,0 @@ -/*  -   Unix SMB/CIFS implementation. - -   Copyright (C) Andrew Tridgell 2005 - -     ** 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/>. -*/ -/* -  a replacement for opendir/readdir/telldir/seekdir/closedir for BSD systems - -  This is needed because the existing directory handling in FreeBSD -  and OpenBSD (and possibly NetBSD) doesn't correctly handle unlink() -  on files in a directory where telldir() has been used. On a block -  boundary it will occasionally miss a file when seekdir() is used to -  return to a position previously recorded with telldir(). - -  This also fixes a severe performance and memory usage problem with -  telldir() on BSD systems. Each call to telldir() in BSD adds an -  entry to a linked list, and those entries are cleaned up on -  closedir(). This means with a large directory closedir() can take an -  arbitrary amount of time, causing network timeouts as millions of -  telldir() entries are freed - -  Note! This replacement code is not portable. It relies on getdents() -  always leaving the file descriptor at a seek offset that is a -  multiple of DIR_BUF_SIZE. If the code detects that this doesn't -  happen then it will abort(). It also does not handle directories -  with offsets larger than can be stored in a long, - -  This code is available under other free software licenses as -  well. Contact the author. -*/ - -#include <stdlib.h> -#include <sys/stat.h> -#include <unistd.h> -#include <sys/types.h> -#include <errno.h> -#include <fcntl.h> -#include <dirent.h> - -#define DIR_BUF_BITS 9 -#define DIR_BUF_SIZE (1<<DIR_BUF_BITS) - -struct dir_buf { -	int fd; -	int nbytes, ofs; -	off_t seekpos; -	char buf[DIR_BUF_SIZE]; -}; - -DIR *opendir(const char *dname) -{ -	struct dir_buf *d; -	struct stat sb; -	d = malloc(sizeof(*d)); -	if (d == NULL) { -		errno = ENOMEM; -		return NULL; -	} -	d->fd = open(dname, O_RDONLY); -	if (d->fd == -1) { -		free(d); -		return NULL; -	} -	if (fstat(d->fd, &sb) < 0) { -		close(d->fd); -		free(d); -		return NULL; -	} -	if (!S_ISDIR(sb.st_mode)) { -		close(d->fd); -		free(d);    -		errno = ENOTDIR; -		return NULL; -	} -	d->ofs = 0; -	d->seekpos = 0; -	d->nbytes = 0; -	return (DIR *)d; -} - -struct dirent *readdir(DIR *dir) -{ -	struct dir_buf *d = (struct dir_buf *)dir; -	struct dirent *de; - -	if (d->ofs >= d->nbytes) { -		d->seekpos = lseek(d->fd, 0, SEEK_CUR); -		d->nbytes = getdents(d->fd, d->buf, DIR_BUF_SIZE); -		d->ofs = 0; -	} -	if (d->ofs >= d->nbytes) { -		return NULL; -	} -	de = (struct dirent *)&d->buf[d->ofs]; -	d->ofs += de->d_reclen; -	return de; -} - -long telldir(DIR *dir) -{ -	struct dir_buf *d = (struct dir_buf *)dir; -	if (d->ofs >= d->nbytes) { -		d->seekpos = lseek(d->fd, 0, SEEK_CUR); -		d->ofs = 0; -		d->nbytes = 0; -	} -	/* this relies on seekpos always being a multiple of -	   DIR_BUF_SIZE. Is that always true on BSD systems? */ -	if (d->seekpos & (DIR_BUF_SIZE-1)) { -		abort(); -	} -	return d->seekpos + d->ofs; -} - -void seekdir(DIR *dir, long ofs) -{ -	struct dir_buf *d = (struct dir_buf *)dir; -	d->seekpos = lseek(d->fd, ofs & ~(DIR_BUF_SIZE-1), SEEK_SET); -	d->nbytes = getdents(d->fd, d->buf, DIR_BUF_SIZE); -	d->ofs = 0; -	while (d->ofs < (ofs & (DIR_BUF_SIZE-1))) { -		if (readdir(dir) == NULL) break; -	} -} - -void rewinddir(DIR *dir) -{ -	seekdir(dir, 0); -} - -int closedir(DIR *dir) -{ -	struct dir_buf *d = (struct dir_buf *)dir; -	int r = close(d->fd); -	if (r != 0) { -		return r; -	} -	free(d); -	return 0; -} - -#ifndef dirfd -/* darn, this is a macro on some systems. */ -int dirfd(DIR *dir) -{ -	struct dir_buf *d = (struct dir_buf *)dir; -	return d->fd; -} -#endif diff --git a/source3/lib/replace/repdir_getdirentries.c b/source3/lib/replace/repdir_getdirentries.c deleted file mode 100644 index 197e5931fc..0000000000 --- a/source3/lib/replace/repdir_getdirentries.c +++ /dev/null @@ -1,183 +0,0 @@ -/*  -   Unix SMB/CIFS implementation. - -   Copyright (C) Andrew Tridgell 2005 - -     ** 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/>. -*/ -/* -  a replacement for opendir/readdir/telldir/seekdir/closedir for BSD -  systems using getdirentries - -  This is needed because the existing directory handling in FreeBSD -  and OpenBSD (and possibly NetBSD) doesn't correctly handle unlink() -  on files in a directory where telldir() has been used. On a block -  boundary it will occasionally miss a file when seekdir() is used to -  return to a position previously recorded with telldir(). - -  This also fixes a severe performance and memory usage problem with -  telldir() on BSD systems. Each call to telldir() in BSD adds an -  entry to a linked list, and those entries are cleaned up on -  closedir(). This means with a large directory closedir() can take an -  arbitrary amount of time, causing network timeouts as millions of -  telldir() entries are freed - -  Note! This replacement code is not portable. It relies on -  getdirentries() always leaving the file descriptor at a seek offset -  that is a multiple of DIR_BUF_SIZE. If the code detects that this -  doesn't happen then it will abort(). It also does not handle -  directories with offsets larger than can be stored in a long, - -  This code is available under other free software licenses as -  well. Contact the author. -*/ - -#include "replace.h" -#include <stdlib.h> -#include <sys/stat.h> -#include <unistd.h> -#include <sys/types.h> -#include <errno.h> -#include <fcntl.h> -#include <dirent.h> - -#define DIR_BUF_BITS 9 -#define DIR_BUF_SIZE (1<<DIR_BUF_BITS) - -struct dir_buf { -	int fd; -	int nbytes, ofs; -	off_t seekpos; -	char buf[DIR_BUF_SIZE]; -}; - -DIR *opendir(const char *dname) -{ -	struct dir_buf *d; -	struct stat sb; -	d = malloc(sizeof(*d)); -	if (d == NULL) { -		errno = ENOMEM; -		return NULL; -	} -	d->fd = open(dname, O_RDONLY); -	if (d->fd == -1) { -		free(d); -		return NULL; -	} -	if (fstat(d->fd, &sb) < 0) { -		close(d->fd); -		free(d); -		return NULL; -	} -	if (!S_ISDIR(sb.st_mode)) { -		close(d->fd); -		free(d);    -		errno = ENOTDIR; -		return NULL; -	} -	d->ofs = 0; -	d->seekpos = 0; -	d->nbytes = 0; -	return (DIR *)d; -} - -struct dirent *readdir(DIR *dir) -{ -	struct dir_buf *d = (struct dir_buf *)dir; -	struct dirent *de; - -	if (d->ofs >= d->nbytes) { -		long pos; -		d->nbytes = getdirentries(d->fd, d->buf, DIR_BUF_SIZE, &pos); -		d->seekpos = pos; -		d->ofs = 0; -	} -	if (d->ofs >= d->nbytes) { -		return NULL; -	} -	de = (struct dirent *)&d->buf[d->ofs]; -	d->ofs += de->d_reclen; -	return de; -} - -#ifdef TELLDIR_TAKES_CONST_DIR -long telldir(const DIR *dir) -#else -long telldir(DIR *dir) -#endif -{ -	struct dir_buf *d = (struct dir_buf *)dir; -	if (d->ofs >= d->nbytes) { -		d->seekpos = lseek(d->fd, 0, SEEK_CUR); -		d->ofs = 0; -		d->nbytes = 0; -	} -	/* this relies on seekpos always being a multiple of -	   DIR_BUF_SIZE. Is that always true on BSD systems? */ -	if (d->seekpos & (DIR_BUF_SIZE-1)) { -		abort(); -	} -	return d->seekpos + d->ofs; -} - -#ifdef SEEKDIR_RETURNS_INT -int seekdir(DIR *dir, long ofs) -#else -void seekdir(DIR *dir, long ofs) -#endif -{ -	struct dir_buf *d = (struct dir_buf *)dir; -	long pos; -	d->seekpos = lseek(d->fd, ofs & ~(DIR_BUF_SIZE-1), SEEK_SET); -	d->nbytes = getdirentries(d->fd, d->buf, DIR_BUF_SIZE, &pos); -	d->ofs = 0; -	while (d->ofs < (ofs & (DIR_BUF_SIZE-1))) { -		if (readdir(dir) == NULL) break; -	} -#ifdef SEEKDIR_RETURNS_INT -	return -1; -#endif -} - -void rewinddir(DIR *dir) -{ -	seekdir(dir, 0); -} - -int closedir(DIR *dir) -{ -	struct dir_buf *d = (struct dir_buf *)dir; -	int r = close(d->fd); -	if (r != 0) { -		return r; -	} -	free(d); -	return 0; -} - -#ifndef dirfd -/* darn, this is a macro on some systems. */ -int dirfd(DIR *dir) -{ -	struct dir_buf *d = (struct dir_buf *)dir; -	return d->fd; -} -#endif - - diff --git a/source3/lib/replace/replace.c b/source3/lib/replace/replace.c deleted file mode 100644 index 98d799b07e..0000000000 --- a/source3/lib/replace/replace.c +++ /dev/null @@ -1,616 +0,0 @@ -/*  -   Unix SMB/CIFS implementation. -   replacement routines for broken systems -   Copyright (C) Andrew Tridgell 1992-1998 - -     ** 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/filesys.h" -#include "system/time.h" -#include "system/passwd.h" -#include "system/syslog.h" -#include "system/locale.h" -#include "system/wait.h" - -void replace_dummy(void); -void replace_dummy(void) {} - -#ifndef HAVE_FTRUNCATE - /******************************************************************* -ftruncate for operating systems that don't have it -********************************************************************/ -int rep_ftruncate(int f, off_t l) -{ -#ifdef HAVE_CHSIZE -      return chsize(f,l); -#elif defined(F_FREESP) -      struct  flock   fl; - -      fl.l_whence = 0; -      fl.l_len = 0; -      fl.l_start = l; -      fl.l_type = F_WRLCK; -      return fcntl(f, F_FREESP, &fl); -#else -#error "you must have a ftruncate function" -#endif -} -#endif /* HAVE_FTRUNCATE */ - - -#ifndef HAVE_STRLCPY -/* like strncpy but does not 0 fill the buffer and always null  -   terminates. bufsize is the size of the destination buffer */ -size_t rep_strlcpy(char *d, const char *s, size_t bufsize) -{ -	size_t len = strlen(s); -	size_t ret = len; -	if (bufsize <= 0) return 0; -	if (len >= bufsize) len = bufsize-1; -	memcpy(d, s, len); -	d[len] = 0; -	return ret; -} -#endif - -#ifndef HAVE_STRLCAT -/* like strncat but does not 0 fill the buffer and always null  -   terminates. bufsize is the length of the buffer, which should -   be one more than the maximum resulting string length */ -size_t rep_strlcat(char *d, const char *s, size_t bufsize) -{ -	size_t len1 = strlen(d); -	size_t len2 = strlen(s); -	size_t ret = len1 + len2; - -	if (len1+len2 >= bufsize) { -		if (bufsize < (len1+1)) { -			return ret; -		} -		len2 = bufsize - (len1+1); -	} -	if (len2 > 0) { -		memcpy(d+len1, s, len2); -		d[len1+len2] = 0; -	} -	return ret; -} -#endif - -#ifndef HAVE_MKTIME -/******************************************************************* -a mktime() replacement for those who don't have it - contributed by  -C.A. Lademann <cal@zls.com> -Corrections by richard.kettlewell@kewill.com -********************************************************************/ - -#define  MINUTE  60 -#define  HOUR    60*MINUTE -#define  DAY             24*HOUR -#define  YEAR    365*DAY -time_t rep_mktime(struct tm *t) -{ -  struct tm       *u; -  time_t  epoch = 0; -  int n; -  int             mon [] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }, -  y, m, i; - -  if(t->tm_year < 70) -    return((time_t)-1); - -  n = t->tm_year + 1900 - 1; -  epoch = (t->tm_year - 70) * YEAR +  -    ((n / 4 - n / 100 + n / 400) - (1969 / 4 - 1969 / 100 + 1969 / 400)) * DAY; - -  y = t->tm_year + 1900; -  m = 0; - -  for(i = 0; i < t->tm_mon; i++) { -    epoch += mon [m] * DAY; -    if(m == 1 && y % 4 == 0 && (y % 100 != 0 || y % 400 == 0)) -      epoch += DAY; -     -    if(++m > 11) { -      m = 0; -      y++; -    } -  } - -  epoch += (t->tm_mday - 1) * DAY; -  epoch += t->tm_hour * HOUR + t->tm_min * MINUTE + t->tm_sec; -   -  if((u = localtime(&epoch)) != NULL) { -    t->tm_sec = u->tm_sec; -    t->tm_min = u->tm_min; -    t->tm_hour = u->tm_hour; -    t->tm_mday = u->tm_mday; -    t->tm_mon = u->tm_mon; -    t->tm_year = u->tm_year; -    t->tm_wday = u->tm_wday; -    t->tm_yday = u->tm_yday; -    t->tm_isdst = u->tm_isdst; -  } - -  return(epoch); -} -#endif /* !HAVE_MKTIME */ - - -#ifndef HAVE_INITGROUPS -/**************************************************************************** - some systems don't have an initgroups call  -****************************************************************************/ -int rep_initgroups(char *name, gid_t id) -{ -#ifndef HAVE_SETGROUPS -	/* yikes! no SETGROUPS or INITGROUPS? how can this work? */ -	errno = ENOSYS; -	return -1; -#else /* HAVE_SETGROUPS */ - -#include <grp.h> - -	gid_t *grouplst = NULL; -	int max_gr = NGROUPS_MAX; -	int ret; -	int    i,j; -	struct group *g; -	char   *gr; -	 -	if((grouplst = malloc(sizeof(gid_t) * max_gr)) == NULL) { -		errno = ENOMEM; -		return -1; -	} - -	grouplst[0] = id; -	i = 1; -	while (i < max_gr && ((g = (struct group *)getgrent()) != (struct group *)NULL)) { -		if (g->gr_gid == id) -			continue; -		j = 0; -		gr = g->gr_mem[0]; -		while (gr && (*gr != (char)NULL)) { -			if (strcmp(name,gr) == 0) { -				grouplst[i] = g->gr_gid; -				i++; -				gr = (char *)NULL; -				break; -			} -			gr = g->gr_mem[++j]; -		} -	} -	endgrent(); -	ret = setgroups(i, grouplst); -	free(grouplst); -	return ret; -#endif /* HAVE_SETGROUPS */ -} -#endif /* HAVE_INITGROUPS */ - - -#if (defined(SecureWare) && defined(SCO)) -/* This is needed due to needing the nap() function but we don't want -   to include the Xenix libraries since that will break other things... -   BTW: system call # 0x0c28 is the same as calling nap() */ -long nap(long milliseconds) { -	 return syscall(0x0c28, milliseconds); - } -#endif - - -#ifndef HAVE_MEMMOVE -/******************************************************************* -safely copies memory, ensuring no overlap problems. -this is only used if the machine does not have its own memmove(). -this is not the fastest algorithm in town, but it will do for our -needs. -********************************************************************/ -void *rep_memmove(void *dest,const void *src,int size) -{ -	unsigned long d,s; -	int i; -	if (dest==src || !size) return(dest); - -	d = (unsigned long)dest; -	s = (unsigned long)src; - -	if ((d >= (s+size)) || (s >= (d+size))) { -		/* no overlap */ -		memcpy(dest,src,size); -		return(dest); -	} - -	if (d < s) { -		/* we can forward copy */ -		if (s-d >= sizeof(int) &&  -		    !(s%sizeof(int)) &&  -		    !(d%sizeof(int)) &&  -		    !(size%sizeof(int))) { -			/* do it all as words */ -			int *idest = (int *)dest; -			int *isrc = (int *)src; -			size /= sizeof(int); -			for (i=0;i<size;i++) idest[i] = isrc[i]; -		} else { -			/* simplest */ -			char *cdest = (char *)dest; -			char *csrc = (char *)src; -			for (i=0;i<size;i++) cdest[i] = csrc[i]; -		} -	} else { -		/* must backward copy */ -		if (d-s >= sizeof(int) &&  -		    !(s%sizeof(int)) &&  -		    !(d%sizeof(int)) &&  -		    !(size%sizeof(int))) { -			/* do it all as words */ -			int *idest = (int *)dest; -			int *isrc = (int *)src; -			size /= sizeof(int); -			for (i=size-1;i>=0;i--) idest[i] = isrc[i]; -		} else { -			/* simplest */ -			char *cdest = (char *)dest; -			char *csrc = (char *)src; -			for (i=size-1;i>=0;i--) cdest[i] = csrc[i]; -		}       -	} -	return(dest); -} -#endif /* HAVE_MEMMOVE */ - -#ifndef HAVE_STRDUP -/**************************************************************************** -duplicate a string -****************************************************************************/ -char *rep_strdup(const char *s) -{ -	size_t len; -	char *ret; - -	if (!s) return(NULL); - -	len = strlen(s)+1; -	ret = (char *)malloc(len); -	if (!ret) return(NULL); -	memcpy(ret,s,len); -	return(ret); -} -#endif /* HAVE_STRDUP */ - -#ifndef HAVE_SETLINEBUF -void rep_setlinebuf(FILE *stream) -{ -	setvbuf(stream, (char *)NULL, _IOLBF, 0); -} -#endif /* HAVE_SETLINEBUF */ - -#ifndef HAVE_VSYSLOG -#ifdef HAVE_SYSLOG -void rep_vsyslog (int facility_priority, const char *format, va_list arglist) -{ -	char *msg = NULL; -	vasprintf(&msg, format, arglist); -	if (!msg) -		return; -	syslog(facility_priority, "%s", msg); -	free(msg); -} -#endif /* HAVE_SYSLOG */ -#endif /* HAVE_VSYSLOG */ - -#ifndef HAVE_STRNLEN -/** - Some platforms don't have strnlen -**/ - size_t rep_strnlen(const char *s, size_t max) -{ -        size_t len; -   -        for (len = 0; len < max; len++) { -                if (s[len] == '\0') { -                        break; -                } -        } -        return len;   -} -#endif -   -#ifndef HAVE_STRNDUP -/** - Some platforms don't have strndup. -**/ -char *rep_strndup(const char *s, size_t n) -{ -	char *ret; -	 -	n = strnlen(s, n); -	ret = malloc(n+1); -	if (!ret) -		return NULL; -	memcpy(ret, s, n); -	ret[n] = 0; - -	return ret; -} -#endif - -#ifndef HAVE_WAITPID -int rep_waitpid(pid_t pid,int *status,int options) -{ -  return wait4(pid, status, options, NULL); -} -#endif - -#ifndef HAVE_SETEUID -int rep_seteuid(uid_t euid) -{ -#ifdef HAVE_SETRESUID -	return setresuid(-1, euid, -1); -#else -#  error "You need a seteuid function" -#endif -} -#endif - -#ifndef HAVE_SETEGID -int rep_setegid(gid_t egid) -{ -#ifdef HAVE_SETRESGID -	return setresgid(-1, egid, -1); -#else -#  error "You need a setegid function" -#endif -} -#endif - -/******************************************************************* -os/2 also doesn't have chroot -********************************************************************/ -#ifndef HAVE_CHROOT -int rep_chroot(const char *dname) -{ -	errno = ENOSYS; -	return -1; -} -#endif - -/***************************************************************** - Possibly replace mkstemp if it is broken. -*****************************************************************/   - -#ifndef HAVE_SECURE_MKSTEMP -int rep_mkstemp(char *template) -{ -	/* have a reasonable go at emulating it. Hope that -	   the system mktemp() isn't completly hopeless */ -	char *p = mktemp(template); -	if (!p) -		return -1; -	return open(p, O_CREAT|O_EXCL|O_RDWR, 0600); -} -#endif - -#ifndef HAVE_MKDTEMP -char *rep_mkdtemp(char *template) -{ -	char *dname; -	 -	if ((dname = mktemp(template))) { -		if (mkdir(dname, 0700) >= 0) { -			return dname; -		} -	} - -	return NULL; -} -#endif - -/***************************************************************** - Watch out: this is not thread safe. -*****************************************************************/ - -#ifndef HAVE_PREAD -ssize_t rep_pread(int __fd, void *__buf, size_t __nbytes, off_t __offset) -{ -	if (lseek(__fd, __offset, SEEK_SET) != __offset) { -		return -1; -	} -	return read(__fd, __buf, __nbytes); -} -#endif - -/***************************************************************** - Watch out: this is not thread safe. -*****************************************************************/ - -#ifndef HAVE_PWRITE -ssize_t rep_pwrite(int __fd, const void *__buf, size_t __nbytes, off_t __offset) -{ -	if (lseek(__fd, __offset, SEEK_SET) != __offset) { -		return -1; -	} -	return write(__fd, __buf, __nbytes); -} -#endif - -#ifndef HAVE_STRCASESTR -char *rep_strcasestr(const char *haystack, const char *needle) -{ -	const char *s; -	size_t nlen = strlen(needle); -	for (s=haystack;*s;s++) { -		if (toupper(*needle) == toupper(*s) && -		    strncasecmp(s, needle, nlen) == 0) { -			return (char *)((uintptr_t)s); -		} -	} -	return NULL; -} -#endif - -#ifndef HAVE_STRTOK_R -/* based on GLIBC version, copyright Free Software Foundation */ -char *rep_strtok_r(char *s, const char *delim, char **save_ptr) -{ -	char *token; - -	if (s == NULL) s = *save_ptr; - -	s += strspn(s, delim); -	if (*s == '\0') { -		*save_ptr = s; -		return NULL; -	} - -	token = s; -	s = strpbrk(token, delim); -	if (s == NULL) { -		*save_ptr = token + strlen(token); -	} else { -		*s = '\0'; -		*save_ptr = s + 1; -	} - -	return token; -} -#endif - -#ifndef HAVE_STRTOLL -long long int rep_strtoll(const char *str, char **endptr, int base) -{ -#ifdef HAVE_STRTOQ -	return strtoq(str, endptr, base); -#elif defined(HAVE___STRTOLL)  -	return __strtoll(str, endptr, base); -#elif SIZEOF_LONG == SIZEOF_LONG_LONG -	return (long long int) strtol(str, endptr, base); -#else -# error "You need a strtoll function" -#endif -} -#endif - - -#ifndef HAVE_STRTOULL -unsigned long long int rep_strtoull(const char *str, char **endptr, int base) -{ -#ifdef HAVE_STRTOUQ -	return strtouq(str, endptr, base); -#elif defined(HAVE___STRTOULL)  -	return __strtoull(str, endptr, base); -#elif SIZEOF_LONG == SIZEOF_LONG_LONG -	return (unsigned long long int) strtoul(str, endptr, base); -#else -# error "You need a strtoull function" -#endif -} -#endif - -#ifndef HAVE_SETENV -int rep_setenv(const char *name, const char *value, int overwrite)  -{ -	char *p; -	size_t l1, l2; -	int ret; - -	if (!overwrite && getenv(name)) { -		return 0; -	} - -	l1 = strlen(name); -	l2 = strlen(value); - -	p = malloc(l1+l2+2); -	if (p == NULL) { -		return -1; -	} -	memcpy(p, name, l1); -	p[l1] = '='; -	memcpy(p+l1+1, value, l2); -	p[l1+l2+1] = 0; - -	ret = putenv(p); -	if (ret != 0) { -		free(p); -	} - -	return ret; -} -#endif - -#ifndef HAVE_UNSETENV -int rep_unsetenv(const char *name) -{ -	extern char **environ; -	size_t len = strlen(name); -	size_t i, count; - -	if (environ == NULL || getenv(name) == NULL) { -		return 0; -	} - -	for (i=0;environ[i];i++) /* noop */ ; - -	count=i; -	 -	for (i=0;i<count;) { -		if (strncmp(environ[i], name, len) == 0 && environ[i][len] == '=') { -			/* note: we do _not_ free the old variable here. It is unsafe to  -			   do so, as the pointer may not have come from malloc */ -			memmove(&environ[i], &environ[i+1], (count-i)*sizeof(char *)); -			count--; -		} else { -			i++; -		} -	} - -	return 0; -} -#endif - -#ifndef HAVE_UTIME -int rep_utime(const char *filename, const struct utimbuf *buf) -{ -	errno = ENOSYS; -	return -1; -} -#endif - -#ifndef HAVE_UTIMES -int rep_utimes(const char *filename, const struct timeval tv[2]) -{ -	struct utimbuf u; - -	u.actime = tv[0].tv_sec; -	if (tv[0].tv_usec > 500000) { -		u.actime += 1; -	} - -	u.modtime = tv[1].tv_sec; -	if (tv[1].tv_usec > 500000) { -		u.modtime += 1; -	} - -	return utime(filename, &u); -} -#endif diff --git a/source3/lib/replace/replace.h b/source3/lib/replace/replace.h deleted file mode 100644 index c69ea6cdac..0000000000 --- a/source3/lib/replace/replace.h +++ /dev/null @@ -1,582 +0,0 @@ -/* -   Unix SMB/CIFS implementation. - -   macros to go along with the lib/replace/ portability layer code - -   Copyright (C) Andrew Tridgell 2005 -   Copyright (C) Jelmer Vernooij 2006 -   Copyright (C) Jeremy Allison 2007. - -     ** 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/>. -*/ - -#ifndef _LIBREPLACE_REPLACE_H -#define _LIBREPLACE_REPLACE_H - -#ifndef NO_CONFIG_H -#include "config.h" -#endif - -#ifdef HAVE_STANDARDS_H -#include <standards.h> -#endif - -#include <stdio.h> -#include <stdlib.h> -#include <stdarg.h> -#include <errno.h> - -#if defined(_MSC_VER) || defined(__MINGW32__) -#include "win32_replace.h" -#endif - - -#ifdef HAVE_STDINT_H -#include <stdint.h> -/* force off HAVE_INTTYPES_H so that roken doesn't try to include both, -   which causes a warning storm on irix */ -#undef HAVE_INTTYPES_H -#elif HAVE_INTTYPES_H -#include <inttypes.h> -#endif - -#ifdef HAVE_STRING_H -#include <string.h> -#endif - -#ifdef HAVE_STRINGS_H -#include <strings.h> -#endif - -#ifdef HAVE_SYS_TYPES_H -#include <sys/types.h> -#endif - -#if STDC_HEADERS -#include <stdlib.h> -#include <stddef.h> -#endif - -#ifndef HAVE_STRERROR -extern char *sys_errlist[]; -#define strerror(i) sys_errlist[i] -#endif - -#ifndef HAVE_ERRNO_DECL -extern int errno; -#endif - -#ifndef HAVE_STRDUP -#define strdup rep_strdup -char *rep_strdup(const char *s); -#endif - -#ifndef HAVE_MEMMOVE -#define memmove rep_memmove -void *rep_memmove(void *dest,const void *src,int size); -#endif - -#ifndef HAVE_MKTIME -#define mktime rep_mktime -/* prototype is in "system/time.h" */ -#endif - -#ifndef HAVE_TIMEGM -#define timegm rep_timegm -/* prototype is in "system/time.h" */ -#endif - -#ifndef HAVE_UTIME -#define utime rep_utime -/* prototype is in "system/time.h" */ -#endif - -#ifndef HAVE_UTIMES -#define utimes rep_utimes -/* prototype is in "system/time.h" */ -#endif - -#ifndef HAVE_STRLCPY -#define strlcpy rep_strlcpy -size_t rep_strlcpy(char *d, const char *s, size_t bufsize); -#endif - -#ifndef HAVE_STRLCAT -#define strlcat rep_strlcat -size_t rep_strlcat(char *d, const char *s, size_t bufsize); -#endif - -#if (defined(BROKEN_STRNDUP) || !defined(HAVE_STRNDUP)) -#undef HAVE_STRNDUP -#define strndup rep_strndup -char *rep_strndup(const char *s, size_t n); -#endif - -#if (defined(BROKEN_STRNLEN) || !defined(HAVE_STRNLEN)) -#undef HAVE_STRNLEN -#define strnlen rep_strnlen -size_t rep_strnlen(const char *s, size_t n); -#endif - -#ifndef HAVE_SETENV -#define setenv rep_setenv -int rep_setenv(const char *name, const char *value, int overwrite); -#else -#ifndef HAVE_SETENV_DECL -int setenv(const char *name, const char *value, int overwrite); -#endif -#endif - -#ifndef HAVE_UNSETENV -#define unsetenv rep_unsetenv -int rep_unsetenv(const char *name); -#endif - -#ifndef HAVE_SETEUID -#define seteuid rep_seteuid -int rep_seteuid(uid_t); -#endif - -#ifndef HAVE_SETEGID -#define setegid rep_setegid -int rep_setegid(gid_t); -#endif - -#ifndef HAVE_SETLINEBUF -#define setlinebuf rep_setlinebuf -void rep_setlinebuf(FILE *); -#endif - -#ifndef HAVE_STRCASESTR -#define strcasestr rep_strcasestr -char *rep_strcasestr(const char *haystack, const char *needle); -#endif - -#ifndef HAVE_STRTOK_R -#define strtok_r rep_strtok_r -char *rep_strtok_r(char *s, const char *delim, char **save_ptr); -#endif - -#ifndef HAVE_STRTOLL -#define strtoll rep_strtoll -long long int rep_strtoll(const char *str, char **endptr, int base); -#endif - -#ifndef HAVE_STRTOULL -#define strtoull rep_strtoull -unsigned long long int rep_strtoull(const char *str, char **endptr, int base); -#endif - -#ifndef HAVE_FTRUNCATE -#define ftruncate rep_ftruncate -int rep_ftruncate(int,off_t); -#endif - -#ifndef HAVE_INITGROUPS -#define initgroups rep_initgroups -int rep_initgroups(char *name, gid_t id); -#endif - -#if !defined(HAVE_BZERO) && defined(HAVE_MEMSET) -#define bzero(a,b) memset((a),'\0',(b)) -#endif - -#ifndef HAVE_DLERROR -#define dlerror rep_dlerror -char *rep_dlerror(void); -#endif - -#ifndef HAVE_DLOPEN -#define dlopen rep_dlopen -#ifdef DLOPEN_TAKES_UNSIGNED_FLAGS -void *rep_dlopen(const char *name, unsigned int flags); -#else -void *rep_dlopen(const char *name, int flags); -#endif -#endif - -#ifndef HAVE_DLSYM -#define dlsym rep_dlsym -void *rep_dlsym(void *handle, const char *symbol); -#endif - -#ifndef HAVE_DLCLOSE -#define dlclose rep_dlclose -int rep_dlclose(void *handle); -#endif - -#ifndef HAVE_SOCKETPAIR -#define socketpair rep_socketpair -/* prototype is in system/network.h */ -#endif - -#ifndef PRINTF_ATTRIBUTE -#if (__GNUC__ >= 3) && (__GNUC_MINOR__ >= 1 ) -/** Use gcc attribute to check printf fns.  a1 is the 1-based index of - * the parameter containing the format, and a2 the index of the first - * argument. Note that some gcc 2.x versions don't handle this - * properly **/ -#define PRINTF_ATTRIBUTE(a1, a2) __attribute__ ((format (__printf__, a1, a2))) -#else -#define PRINTF_ATTRIBUTE(a1, a2) -#endif -#endif - -#ifndef _DEPRECATED_ -#if (__GNUC__ >= 3) && (__GNUC_MINOR__ >= 1 ) -#define _DEPRECATED_ __attribute__ ((deprecated)) -#else -#define _DEPRECATED_ -#endif -#endif - -#ifndef HAVE_VASPRINTF -#define vasprintf rep_vasprintf -int rep_vasprintf(char **ptr, const char *format, va_list ap) PRINTF_ATTRIBUTE(2,0); -#endif - -#if !defined(HAVE_SNPRINTF) || !defined(HAVE_C99_VSNPRINTF) -#define snprintf rep_snprintf -int rep_snprintf(char *,size_t ,const char *, ...) PRINTF_ATTRIBUTE(3,4); -#endif - -#if !defined(HAVE_VSNPRINTF) || !defined(HAVE_C99_VSNPRINTF) -#define vsnprintf rep_vsnprintf -int rep_vsnprintf(char *,size_t ,const char *, va_list ap) PRINTF_ATTRIBUTE(3,0); -#endif - -#ifndef HAVE_ASPRINTF -#define asprintf rep_asprintf -int rep_asprintf(char **,const char *, ...) PRINTF_ATTRIBUTE(2,3); -#endif - -#ifndef HAVE_VSYSLOG -#ifdef HAVE_SYSLOG -#define vsyslog rep_vsyslog -void rep_vsyslog (int facility_priority, const char *format, va_list arglist) PRINTF_ATTRIBUTE(2,0); -#endif -#endif - -/* we used to use these fns, but now we have good replacements -   for snprintf and vsnprintf */ -#define slprintf snprintf - - -#ifndef HAVE_VA_COPY -#undef va_copy -#ifdef HAVE___VA_COPY -#define va_copy(dest, src) __va_copy(dest, src) -#else -#define va_copy(dest, src) (dest) = (src) -#endif -#endif - -#ifndef HAVE_VOLATILE -#define volatile -#endif - -#ifndef HAVE_COMPARISON_FN_T -typedef int (*comparison_fn_t)(const void *, const void *); -#endif - -#ifdef REPLACE_STRPTIME -#define strptime rep_strptime -struct tm; -char *rep_strptime(const char *buf, const char *format, struct tm *tm); -#endif - -/* Load header file for dynamic linking stuff */ -#ifdef HAVE_DLFCN_H -#include <dlfcn.h> -#endif - -#ifndef RTLD_LAZY -#define RTLD_LAZY 0 -#endif -#ifndef RTLD_NOW -#define RTLD_NOW 0 -#endif -#ifndef RTLD_GLOBAL -#define RTLD_GLOBAL 0 -#endif - -#ifndef HAVE_SECURE_MKSTEMP -#define mkstemp(path) rep_mkstemp(path) -int rep_mkstemp(char *temp); -#endif - -#ifndef HAVE_MKDTEMP -#define mkdtemp rep_mkdtemp -char *rep_mkdtemp(char *template); -#endif - -#ifndef HAVE_PREAD -#define pread rep_pread -ssize_t rep_pread(int __fd, void *__buf, size_t __nbytes, off_t __offset); -#endif - -#ifndef HAVE_PWRITE -#define pwrite rep_pwrite -ssize_t rep_pwrite(int __fd, const void *__buf, size_t __nbytes, off_t __offset); -#endif - -#if !defined(HAVE_INET_NTOA) || defined(REPLACE_INET_NTOA) -#define inet_ntoa rep_inet_ntoa -/* prototype is in "system/network.h" */ -#endif - -#ifndef HAVE_INET_PTON -#define inet_pton rep_inet_pton -/* prototype is in "system/network.h" */ -#endif - -#ifndef HAVE_INET_NTOP -#define inet_ntop rep_inet_ntop -/* prototype is in "system/network.h" */ -#endif - -#ifndef HAVE_INET_ATON -#define inet_aton rep_inet_aton -/* prototype is in "system/network.h" */ -#endif - -#ifndef HAVE_CONNECT -#define connect rep_connect -/* prototype is in "system/network.h" */ -#endif - -#ifndef HAVE_GETHOSTBYNAME -#define gethostbyname rep_gethostbyname -/* prototype is in "system/network.h" */ -#endif - -#ifndef HAVE_GETIFADDRS -#define getifaddrs rep_getifaddrs -/* prototype is in "system/network.h" */ -#endif - -#ifndef HAVE_FREEIFADDRS -#define freeifaddrs rep_freeifaddrs -/* prototype is in "system/network.h" */ -#endif - -#ifdef HAVE_LIMITS_H -#include <limits.h> -#endif - -#ifdef HAVE_SYS_PARAM_H -#include <sys/param.h> -#endif - -/* The extra casts work around common compiler bugs.  */ -#define _TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) -/* The outer cast is needed to work around a bug in Cray C 5.0.3.0. -   It is necessary at least when t == time_t.  */ -#define _TYPE_MINIMUM(t) ((t) (_TYPE_SIGNED (t) \ -  			      ? ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1) : (t) 0)) -#define _TYPE_MAXIMUM(t) ((t) (~ (t) 0 - _TYPE_MINIMUM (t))) - -#ifndef HOST_NAME_MAX -#define HOST_NAME_MAX 255 -#endif - -/* - * Some older systems seem not to have MAXHOSTNAMELEN - * defined. - */ -#ifndef MAXHOSTNAMELEN -#define MAXHOSTNAMELEN HOST_NAME_MAX -#endif - -#ifndef UINT16_MAX -#define UINT16_MAX 65535 -#endif - -#ifndef UINT32_MAX -#define UINT32_MAX (4294967295U) -#endif - -#ifndef UINT64_MAX -#define UINT64_MAX ((uint64_t)-1) -#endif - -#ifndef CHAR_BIT -#define CHAR_BIT 8 -#endif - -#ifndef INT32_MAX -#define INT32_MAX _TYPE_MAXIMUM(int32_t) -#endif - -#ifdef HAVE_STDBOOL_H -#include <stdbool.h> -#endif - -#if !defined(HAVE_BOOL) -#ifdef HAVE__Bool -#define bool _Bool -#else -typedef int bool; -#endif -#endif - -/* - * to prevent <rpcsvc/yp_prot.h> from doing a redefine of 'bool' - * - * IRIX, HPUX, MacOS 10 and Solaris need BOOL_DEFINED - * Tru64 needs _BOOL_EXISTS - * AIX needs _BOOL,_TRUE,_FALSE - */ -#ifndef BOOL_DEFINED -#define BOOL_DEFINED -#endif -#ifndef _BOOL_EXISTS -#define _BOOL_EXISTS -#endif -#ifndef _BOOL -#define _BOOL -#endif - -#ifndef __bool_true_false_are_defined -#define __bool_true_false_are_defined -#endif - -#ifndef true -#define true (1) -#endif -#ifndef false -#define false (0) -#endif - -#ifndef _TRUE -#define _TRUE true -#endif -#ifndef _FALSE -#define _FALSE false -#endif - -#ifndef HAVE_FUNCTION_MACRO -#ifdef HAVE_func_MACRO -#define __FUNCTION__ __func__ -#else -#define __FUNCTION__ ("") -#endif -#endif - - -#ifndef MIN -#define MIN(a,b) ((a)<(b)?(a):(b)) -#endif - -#ifndef MAX -#define MAX(a,b) ((a)>(b)?(a):(b)) -#endif - -#if !defined(HAVE_VOLATILE) -#define volatile -#endif - -/** -  this is a warning hack. The idea is to use this everywhere that we -  get the "discarding const" warning from gcc. That doesn't actually -  fix the problem of course, but it means that when we do get to -  cleaning them up we can do it by searching the code for -  discard_const. - -  It also means that other error types aren't as swamped by the noise -  of hundreds of const warnings, so we are more likely to notice when -  we get new errors. - -  Please only add more uses of this macro when you find it -  _really_ hard to fix const warnings. Our aim is to eventually use -  this function in only a very few places. - -  Also, please call this via the discard_const_p() macro interface, as that -  makes the return type safe. -*/ -#define discard_const(ptr) ((void *)((uintptr_t)(ptr))) - -/** Type-safe version of discard_const */ -#define discard_const_p(type, ptr) ((type *)discard_const(ptr)) - -#ifndef __STRING -#define __STRING(x)    #x -#endif - -#ifndef __STRINGSTRING -#define __STRINGSTRING(x) __STRING(x) -#endif - -#ifndef __LINESTR__ -#define __LINESTR__ __STRINGSTRING(__LINE__) -#endif - -#ifndef __location__ -#define __location__ __FILE__ ":" __LINESTR__ -#endif - -/**  - * zero a structure  - */ -#define ZERO_STRUCT(x) memset((char *)&(x), 0, sizeof(x)) - -/**  - * zero a structure given a pointer to the structure  - */ -#define ZERO_STRUCTP(x) do { if ((x) != NULL) memset((char *)(x), 0, sizeof(*(x))); } while(0) - -/**  - * zero a structure given a pointer to the structure - no zero check  - */ -#define ZERO_STRUCTPN(x) memset((char *)(x), 0, sizeof(*(x))) - -/* zero an array - note that sizeof(array) must work - ie. it must not be a -   pointer */ -#define ZERO_ARRAY(x) memset((char *)(x), 0, sizeof(x)) - -/** - * work out how many elements there are in a static array  - */ -#define ARRAY_SIZE(a) (sizeof(a)/sizeof(a[0])) - -/**  - * pointer difference macro  - */ -#define PTR_DIFF(p1,p2) ((ptrdiff_t)(((const char *)(p1)) - (const char *)(p2))) - -#if MMAP_BLACKLIST -#undef HAVE_MMAP -#endif - -#ifdef __COMPAR_FN_T -#define QSORT_CAST (__compar_fn_t) -#endif - -#ifndef QSORT_CAST -#define QSORT_CAST (int (*)(const void *, const void *)) -#endif - -#ifndef PATH_MAX -#define PATH_MAX 1024 -#endif - -#ifndef MAX_DNS_NAME_LENGTH -#define MAX_DNS_NAME_LENGTH 256 /* Actually 255 but +1 for terminating null. */ -#endif - -#endif /* _LIBREPLACE_REPLACE_H */ diff --git a/source3/lib/replace/samba.m4 b/source3/lib/replace/samba.m4 deleted file mode 100644 index 07c4d38887..0000000000 --- a/source3/lib/replace/samba.m4 +++ /dev/null @@ -1,35 +0,0 @@ -AC_LIBREPLACE_BROKEN_CHECKS -AC_LIBREPLACE_NETWORK_CHECKS - -SMB_EXT_LIB(LIBREPLACE_EXT, [${LIBDL}]) -SMB_ENABLE(LIBREPLACE_EXT) - -SMB_EXT_LIB(LIBREPLACE_NETWORK, [${LIBREPLACE_NETWORK_LIBS}]) -SMB_ENABLE(LIBREPLACE_NETWORK) - -# remove leading ./ -LIBREPLACE_DIR=`echo ${libreplacedir} |sed -e 's/^\.\///g'` - -# remove leading srcdir .. we are looking for the relative -# path within the samba source tree or wherever libreplace is. -# We need to make sure the object is not forced to end up in -# the source directory because we might be using a separate -# build directory. -LIBREPLACE_DIR=`echo ${LIBREPLACE_DIR} | sed -e "s|^$srcdir/||g"` - -LIBREPLACE_OBJS="" -for obj in ${LIBREPLACEOBJ}; do -	LIBREPLACE_OBJS="${LIBREPLACE_OBJS} ${LIBREPLACE_DIR}/${obj}" -done - -SMB_SUBSYSTEM(LIBREPLACE, -	[${LIBREPLACE_OBJS}], -	[LIBREPLACE_EXT LIBREPLACE_NETWORK], -	[-Ilib/replace]) - -LIBREPLACE_HOSTCC_OBJS=`echo ${LIBREPLACE_OBJS} |sed -e 's/\.o/\.ho/g'` - -SMB_SUBSYSTEM(LIBREPLACE_HOSTCC, -	[${LIBREPLACE_HOSTCC_OBJS}], -	[], -	[-Ilib/replace]) diff --git a/source3/lib/replace/snprintf.c b/source3/lib/replace/snprintf.c deleted file mode 100644 index c54d721ce5..0000000000 --- a/source3/lib/replace/snprintf.c +++ /dev/null @@ -1,1530 +0,0 @@ -/* - * NOTE: If you change this file, please merge it into rsync, samba, etc. - */ - -/* - * Copyright Patrick Powell 1995 - * This code is based on code written by Patrick Powell (papowell@astart.com) - * It may be used for any purpose as long as this notice remains intact - * on all source code distributions - */ - -/************************************************************** - * Original: - * Patrick Powell Tue Apr 11 09:48:21 PDT 1995 - * A bombproof version of doprnt (dopr) included. - * Sigh.  This sort of thing is always nasty do deal with.  Note that - * the version here does not include floating point... - * - * snprintf() is used instead of sprintf() as it does limit checks - * for string length.  This covers a nasty loophole. - * - * The other functions are there to prevent NULL pointers from - * causing nast effects. - * - * More Recently: - *  Brandon Long <blong@fiction.net> 9/15/96 for mutt 0.43 - *  This was ugly.  It is still ugly.  I opted out of floating point - *  numbers, but the formatter understands just about everything - *  from the normal C string format, at least as far as I can tell from - *  the Solaris 2.5 printf(3S) man page. - * - *  Brandon Long <blong@fiction.net> 10/22/97 for mutt 0.87.1 - *    Ok, added some minimal floating point support, which means this - *    probably requires libm on most operating systems.  Don't yet - *    support the exponent (e,E) and sigfig (g,G).  Also, fmtint() - *    was pretty badly broken, it just wasn't being exercised in ways - *    which showed it, so that's been fixed.  Also, formated the code - *    to mutt conventions, and removed dead code left over from the - *    original.  Also, there is now a builtin-test, just compile with: - *           gcc -DTEST_SNPRINTF -o snprintf snprintf.c -lm - *    and run snprintf for results. - *  - *  Thomas Roessler <roessler@guug.de> 01/27/98 for mutt 0.89i - *    The PGP code was using unsigned hexadecimal formats.  - *    Unfortunately, unsigned formats simply didn't work. - * - *  Michael Elkins <me@cs.hmc.edu> 03/05/98 for mutt 0.90.8 - *    The original code assumed that both snprintf() and vsnprintf() were - *    missing.  Some systems only have snprintf() but not vsnprintf(), so - *    the code is now broken down under HAVE_SNPRINTF and HAVE_VSNPRINTF. - * - *  Andrew Tridgell (tridge@samba.org) Oct 1998 - *    fixed handling of %.0f - *    added test for HAVE_LONG_DOUBLE - * - * tridge@samba.org, idra@samba.org, April 2001 - *    got rid of fcvt code (twas buggy and made testing harder) - *    added C99 semantics - * - * date: 2002/12/19 19:56:31;  author: herb;  state: Exp;  lines: +2 -0 - * actually print args for %g and %e - *  - * date: 2002/06/03 13:37:52;  author: jmcd;  state: Exp;  lines: +8 -0 - * Since includes.h isn't included here, VA_COPY has to be defined here.  I don't - * see any include file that is guaranteed to be here, so I'm defining it - * locally.  Fixes AIX and Solaris builds. - *  - * date: 2002/06/03 03:07:24;  author: tridge;  state: Exp;  lines: +5 -13 - * put the ifdef for HAVE_VA_COPY in one place rather than in lots of - * functions - *  - * date: 2002/05/17 14:51:22;  author: jmcd;  state: Exp;  lines: +21 -4 - * Fix usage of va_list passed as an arg.  Use __va_copy before using it - * when it exists. - *  - * date: 2002/04/16 22:38:04;  author: idra;  state: Exp;  lines: +20 -14 - * Fix incorrect zpadlen handling in fmtfp. - * Thanks to Ollie Oldham <ollie.oldham@metro-optix.com> for spotting it. - * few mods to make it easier to compile the tests. - * addedd the "Ollie" test to the floating point ones. - * - * Martin Pool (mbp@samba.org) April 2003 - *    Remove NO_CONFIG_H so that the test case can be built within a source - *    tree with less trouble. - *    Remove unnecessary SAFE_FREE() definition. - * - * Martin Pool (mbp@samba.org) May 2003 - *    Put in a prototype for dummy_snprintf() to quiet compiler warnings. - * - *    Move #endif to make sure VA_COPY, LDOUBLE, etc are defined even - *    if the C library has some snprintf functions already. - * - * Darren Tucker (dtucker@zip.com.au) 2005 - *    Fix bug allowing read overruns of the source string with "%.*s" - *    Usually harmless unless the read runs outside the process' allocation - *    (eg if your malloc does guard pages) in which case it will segfault. - *    From OpenSSH.  Also added test for same. - * - * Simo Sorce (idra@samba.org) Jan 2006 - *  - *    Add support for position independent parameters  - *    fix fmtstr now it conforms to sprintf wrt min.max - * - **************************************************************/ - -#include "replace.h" -#include "system/locale.h" - -#ifdef TEST_SNPRINTF /* need math library headers for testing */ - -/* In test mode, we pretend that this system doesn't have any snprintf - * functions, regardless of what config.h says. */ -#  undef HAVE_SNPRINTF -#  undef HAVE_VSNPRINTF -#  undef HAVE_C99_VSNPRINTF -#  undef HAVE_ASPRINTF -#  undef HAVE_VASPRINTF -#  include <math.h> -#endif /* TEST_SNPRINTF */ - -#if defined(HAVE_SNPRINTF) && defined(HAVE_VSNPRINTF) && defined(HAVE_C99_VSNPRINTF) -/* only include stdio.h if we are not re-defining snprintf or vsnprintf */ -#include <stdio.h> - /* make the compiler happy with an empty file */ - void dummy_snprintf(void); - void dummy_snprintf(void) {}  -#endif /* HAVE_SNPRINTF, etc */ - -/* yes this really must be a ||. Don't muck with this (tridge) */ -#if !defined(HAVE_VSNPRINTF) || !defined(HAVE_C99_VSNPRINTF) - -#ifdef HAVE_LONG_DOUBLE -#define LDOUBLE long double -#else -#define LDOUBLE double -#endif - -#ifdef HAVE_LONG_LONG -#define LLONG long long -#else -#define LLONG long -#endif - -#ifndef VA_COPY -#ifdef HAVE_VA_COPY -#define VA_COPY(dest, src) va_copy(dest, src) -#else -#ifdef HAVE___VA_COPY -#define VA_COPY(dest, src) __va_copy(dest, src) -#else -#define VA_COPY(dest, src) (dest) = (src) -#endif -#endif - -/* - * dopr(): poor man's version of doprintf - */ - -/* format read states */ -#define DP_S_DEFAULT 0 -#define DP_S_FLAGS   1 -#define DP_S_MIN     2 -#define DP_S_DOT     3 -#define DP_S_MAX     4 -#define DP_S_MOD     5 -#define DP_S_CONV    6 -#define DP_S_DONE    7 - -/* format flags - Bits */ -#define DP_F_MINUS 	(1 << 0) -#define DP_F_PLUS  	(1 << 1) -#define DP_F_SPACE 	(1 << 2) -#define DP_F_NUM   	(1 << 3) -#define DP_F_ZERO  	(1 << 4) -#define DP_F_UP    	(1 << 5) -#define DP_F_UNSIGNED 	(1 << 6) - -/* Conversion Flags */ -#define DP_C_CHAR    1 -#define DP_C_SHORT   2 -#define DP_C_LONG    3 -#define DP_C_LDOUBLE 4 -#define DP_C_LLONG   5 -#define DP_C_SIZET   6 - -/* Chunk types */ -#define CNK_FMT_STR 0 -#define CNK_INT     1 -#define CNK_OCTAL   2 -#define CNK_UINT    3 -#define CNK_HEX     4 -#define CNK_FLOAT   5 -#define CNK_CHAR    6 -#define CNK_STRING  7 -#define CNK_PTR     8 -#define CNK_NUM     9 -#define CNK_PRCNT   10 - -#define char_to_int(p) ((p)- '0') -#ifndef MAX -#define MAX(p,q) (((p) >= (q)) ? (p) : (q)) -#endif - -struct pr_chunk { -	int type; /* chunk type */ -	int num; /* parameter number */ -	int min;  -	int max; -	int flags; -	int cflags; -	int start; -	int len; -	LLONG value; -	LDOUBLE fvalue; -	char *strvalue; -	void *pnum; -	struct pr_chunk *min_star; -	struct pr_chunk *max_star; -	struct pr_chunk *next; -}; - -struct pr_chunk_x { -	struct pr_chunk **chunks; -	int num; -}; - -static int dopr(char *buffer, size_t maxlen, const char *format,  -		   va_list args_in); -static void fmtstr(char *buffer, size_t *currlen, size_t maxlen, -		    char *value, int flags, int min, int max); -static void fmtint(char *buffer, size_t *currlen, size_t maxlen, -		    LLONG value, int base, int min, int max, int flags); -static void fmtfp(char *buffer, size_t *currlen, size_t maxlen, -		   LDOUBLE fvalue, int min, int max, int flags); -static void dopr_outch(char *buffer, size_t *currlen, size_t maxlen, char c); -static struct pr_chunk *new_chunk(void); -static int add_cnk_list_entry(struct pr_chunk_x **list, -				int max_num, struct pr_chunk *chunk); - -static int dopr(char *buffer, size_t maxlen, const char *format, va_list args_in) -{ -	char ch; -	int state; -	int pflag; -	int pnum; -	int pfirst; -	size_t currlen; -	va_list args; -	const char *base; -	struct pr_chunk *chunks = NULL; -	struct pr_chunk *cnk = NULL; -	struct pr_chunk_x *clist = NULL; -	int max_pos; -	int ret = -1; - -	VA_COPY(args, args_in); - -	state = DP_S_DEFAULT; -	pfirst = 1; -	pflag = 0; -	pnum = 0; - -	max_pos = 0; -	base = format; -	ch = *format++; -	 -	/* retrieve the string structure as chunks */ -	while (state != DP_S_DONE) { -		if (ch == '\0')  -			state = DP_S_DONE; - -		switch(state) { -		case DP_S_DEFAULT: -			 -			if (cnk) { -				cnk->next = new_chunk(); -				cnk = cnk->next; -			} else { -				cnk = new_chunk(); -			} -			if (!cnk) goto done; -			if (!chunks) chunks = cnk; -			 -			if (ch == '%') { -				state = DP_S_FLAGS; -				ch = *format++; -			} else { -				cnk->type = CNK_FMT_STR; -				cnk->start = format - base -1; -				while ((ch != '\0') && (ch != '%')) ch = *format++; -				cnk->len = format - base - cnk->start -1; -			} -			break; -		case DP_S_FLAGS: -			switch (ch) { -			case '-': -				cnk->flags |= DP_F_MINUS; -				ch = *format++; -				break; -			case '+': -				cnk->flags |= DP_F_PLUS; -				ch = *format++; -				break; -			case ' ': -				cnk->flags |= DP_F_SPACE; -				ch = *format++; -				break; -			case '#': -				cnk->flags |= DP_F_NUM; -				ch = *format++; -				break; -			case '0': -				cnk->flags |= DP_F_ZERO; -				ch = *format++; -				break; -			case 'I': -				/* internationalization not supported yet */ -				ch = *format++; -				break; -			default: -				state = DP_S_MIN; -				break; -			} -			break; -		case DP_S_MIN: -			if (isdigit((unsigned char)ch)) { -				cnk->min = 10 * cnk->min + char_to_int (ch); -				ch = *format++; -			} else if (ch == '$') { -				if (!pfirst && !pflag) { -					/* parameters must be all positioned or none */ -					goto done; -				} -				if (pfirst) { -					pfirst = 0; -					pflag = 1; -				} -				if (cnk->min == 0) /* what ?? */ -					goto done; -				cnk->num = cnk->min; -				cnk->min = 0; -				ch = *format++; -			} else if (ch == '*') { -				if (pfirst) pfirst = 0; -				cnk->min_star = new_chunk(); -				if (!cnk->min_star) /* out of memory :-( */ -					goto done; -				cnk->min_star->type = CNK_INT; -				if (pflag) { -					int num; -					ch = *format++; -					if (!isdigit((unsigned char)ch)) { -						/* parameters must be all positioned or none */ -						goto done; -					} -					for (num = 0; isdigit((unsigned char)ch); ch = *format++) { -						num = 10 * num + char_to_int(ch); -					} -					cnk->min_star->num = num; -					if (ch != '$') /* what ?? */ -						goto done; -				} else { -					cnk->min_star->num = ++pnum; -				} -				max_pos = add_cnk_list_entry(&clist, max_pos, cnk->min_star); -				if (max_pos == 0) /* out of memory :-( */ -					goto done; -				ch = *format++; -				state = DP_S_DOT; -			} else { -				if (pfirst) pfirst = 0; -				state = DP_S_DOT; -			} -			break; -		case DP_S_DOT: -			if (ch == '.') { -				state = DP_S_MAX; -				ch = *format++; -			} else {  -				state = DP_S_MOD; -			} -			break; -		case DP_S_MAX: -			if (isdigit((unsigned char)ch)) { -				if (cnk->max < 0) -					cnk->max = 0; -				cnk->max = 10 * cnk->max + char_to_int (ch); -				ch = *format++; -			} else if (ch == '$') { -				if (!pfirst && !pflag) { -					/* parameters must be all positioned or none */ -					goto done; -				} -				if (cnk->max <= 0) /* what ?? */ -					goto done; -				cnk->num = cnk->max; -				cnk->max = -1; -				ch = *format++; -			} else if (ch == '*') { -				cnk->max_star = new_chunk(); -				if (!cnk->max_star) /* out of memory :-( */ -					goto done; -				cnk->max_star->type = CNK_INT; -				if (pflag) { -					int num; -					ch = *format++; -					if (!isdigit((unsigned char)ch)) { -						/* parameters must be all positioned or none */ -						goto done; -					} -					for (num = 0; isdigit((unsigned char)ch); ch = *format++) { -						num = 10 * num + char_to_int(ch); -					} -					cnk->max_star->num = num; -					if (ch != '$') /* what ?? */ -						goto done; -				} else { -					cnk->max_star->num = ++pnum; -				} -				max_pos = add_cnk_list_entry(&clist, max_pos, cnk->max_star); -				if (max_pos == 0) /* out of memory :-( */ -					goto done; - -				ch = *format++; -				state = DP_S_MOD; -			} else { -				state = DP_S_MOD; -			} -			break; -		case DP_S_MOD: -			switch (ch) { -			case 'h': -				cnk->cflags = DP_C_SHORT; -				ch = *format++; -				if (ch == 'h') { -					cnk->cflags = DP_C_CHAR; -					ch = *format++; -				} -				break; -			case 'l': -				cnk->cflags = DP_C_LONG; -				ch = *format++; -				if (ch == 'l') {	/* It's a long long */ -					cnk->cflags = DP_C_LLONG; -					ch = *format++; -				} -				break; -			case 'L': -				cnk->cflags = DP_C_LDOUBLE; -				ch = *format++; -				break; -			case 'z': -				cnk->cflags = DP_C_SIZET; -				ch = *format++; -				break; -			default: -				break; -			} -			state = DP_S_CONV; -			break; -		case DP_S_CONV: -			if (cnk->num == 0) cnk->num = ++pnum; -			max_pos = add_cnk_list_entry(&clist, max_pos, cnk); -			if (max_pos == 0) /* out of memory :-( */ -				goto done; -			 -			switch (ch) { -			case 'd': -			case 'i': -				cnk->type = CNK_INT; -				break; -			case 'o': -				cnk->type = CNK_OCTAL; -				cnk->flags |= DP_F_UNSIGNED; -				break; -			case 'u': -				cnk->type = CNK_UINT; -				cnk->flags |= DP_F_UNSIGNED; -				break; -			case 'X': -				cnk->flags |= DP_F_UP; -			case 'x': -				cnk->type = CNK_HEX; -				cnk->flags |= DP_F_UNSIGNED; -				break; -			case 'A': -				/* hex float not supported yet */ -			case 'E': -			case 'G': -			case 'F': -				cnk->flags |= DP_F_UP; -			case 'a': -				/* hex float not supported yet */ -			case 'e': -			case 'f': -			case 'g': -				cnk->type = CNK_FLOAT; -				break; -			case 'c': -				cnk->type = CNK_CHAR; -				break; -			case 's': -				cnk->type = CNK_STRING; -				break; -			case 'p': -				cnk->type = CNK_PTR; -				break; -			case 'n': -				cnk->type = CNK_NUM; -				break; -			case '%': -				cnk->type = CNK_PRCNT; -				break; -			default: -				/* Unknown, bail out*/ -				goto done; -			} -			ch = *format++; -			state = DP_S_DEFAULT; -			break; -		case DP_S_DONE: -			break; -		default: -			/* hmm? */ -			break; /* some picky compilers need this */ -		} -	} - -	/* retrieve the format arguments */ -	for (pnum = 0; pnum < max_pos; pnum++) { -		int i; - -		if (clist[pnum].num == 0) { -			/* ignoring a parameter should not be permitted -			 * all parameters must be matched at least once -			 * BUT seem some system ignore this rule ... -			 * at least my glibc based system does --SSS -			 */ -#ifdef DEBUG_SNPRINTF -			printf("parameter at position %d not used\n", pnum+1); -#endif -			/* eat the parameter */ -			va_arg (args, int); -			continue; -		} -		for (i = 1; i < clist[pnum].num; i++) { -			if (clist[pnum].chunks[0]->type != clist[pnum].chunks[i]->type) { -				/* nooo noo no! -				 * all the references to a parameter -				 * must be of the same type -				 */ -				goto done; -			} -		} -		cnk = clist[pnum].chunks[0]; -		switch (cnk->type) { -		case CNK_INT: -			if (cnk->cflags == DP_C_SHORT)  -				cnk->value = va_arg (args, int); -			else if (cnk->cflags == DP_C_LONG) -				cnk->value = va_arg (args, long int); -			else if (cnk->cflags == DP_C_LLONG) -				cnk->value = va_arg (args, LLONG); -			else if (cnk->cflags == DP_C_SIZET) -				cnk->value = va_arg (args, ssize_t); -			else -				cnk->value = va_arg (args, int); - -			for (i = 1; i < clist[pnum].num; i++) { -				clist[pnum].chunks[i]->value = cnk->value; -			} -			break; - -		case CNK_OCTAL: -		case CNK_UINT: -		case CNK_HEX: -			if (cnk->cflags == DP_C_SHORT) -				cnk->value = va_arg (args, unsigned int); -			else if (cnk->cflags == DP_C_LONG) -				cnk->value = (unsigned long int)va_arg (args, unsigned long int); -			else if (cnk->cflags == DP_C_LLONG) -				cnk->value = (LLONG)va_arg (args, unsigned LLONG); -			else if (cnk->cflags == DP_C_SIZET) -				cnk->value = (size_t)va_arg (args, size_t); -			else -				cnk->value = (unsigned int)va_arg (args, unsigned int); - -			for (i = 1; i < clist[pnum].num; i++) { -				clist[pnum].chunks[i]->value = cnk->value; -			} -			break; - -		case CNK_FLOAT: -			if (cnk->cflags == DP_C_LDOUBLE) -				cnk->fvalue = va_arg (args, LDOUBLE); -			else -				cnk->fvalue = va_arg (args, double); - -			for (i = 1; i < clist[pnum].num; i++) { -				clist[pnum].chunks[i]->fvalue = cnk->fvalue; -			} -			break; - -		case CNK_CHAR: -			cnk->value = va_arg (args, int); - -			for (i = 1; i < clist[pnum].num; i++) { -				clist[pnum].chunks[i]->value = cnk->value; -			} -			break; - -		case CNK_STRING: -			cnk->strvalue = va_arg (args, char *); -			if (!cnk->strvalue) cnk->strvalue = "(NULL)"; - -			for (i = 1; i < clist[pnum].num; i++) { -				clist[pnum].chunks[i]->strvalue = cnk->strvalue; -			} -			break; - -		case CNK_PTR: -			cnk->strvalue = va_arg (args, void *); -			for (i = 1; i < clist[pnum].num; i++) { -				clist[pnum].chunks[i]->strvalue = cnk->strvalue; -			} -			break; - -		case CNK_NUM: -			if (cnk->cflags == DP_C_CHAR) -				cnk->pnum = va_arg (args, char *); -			else if (cnk->cflags == DP_C_SHORT) -				cnk->pnum = va_arg (args, short int *); -			else if (cnk->cflags == DP_C_LONG) -				cnk->pnum = va_arg (args, long int *); -			else if (cnk->cflags == DP_C_LLONG) -				cnk->pnum = va_arg (args, LLONG *); -			else if (cnk->cflags == DP_C_SIZET) -				cnk->pnum = va_arg (args, ssize_t *); -			else -				cnk->pnum = va_arg (args, int *); - -			for (i = 1; i < clist[pnum].num; i++) { -				clist[pnum].chunks[i]->pnum = cnk->pnum; -			} -			break; - -		case CNK_PRCNT: -			break; - -		default: -			/* what ?? */ -			goto done; -		} -	} -	/* print out the actual string from chunks */ -	currlen = 0; -	cnk = chunks; -	while (cnk) { -		int len, min, max; - -		if (cnk->min_star) min = cnk->min_star->value; -		else min = cnk->min; -		if (cnk->max_star) max = cnk->max_star->value; -		else max = cnk->max; - -		switch (cnk->type) { - -		case CNK_FMT_STR: -			if (maxlen != 0 && maxlen > currlen) { -				if (maxlen > (currlen + cnk->len)) len = cnk->len; -				else len = maxlen - currlen; - -				memcpy(&(buffer[currlen]), &(base[cnk->start]), len); -			} -			currlen += cnk->len; -				 -			break; - -		case CNK_INT: -		case CNK_UINT: -			fmtint (buffer, &currlen, maxlen, cnk->value, 10, min, max, cnk->flags); -			break; - -		case CNK_OCTAL: -			fmtint (buffer, &currlen, maxlen, cnk->value, 8, min, max, cnk->flags); -			break; - -		case CNK_HEX: -			fmtint (buffer, &currlen, maxlen, cnk->value, 16, min, max, cnk->flags); -			break; - -		case CNK_FLOAT: -			fmtfp (buffer, &currlen, maxlen, cnk->fvalue, min, max, cnk->flags); -			break; - -		case CNK_CHAR: -			dopr_outch (buffer, &currlen, maxlen, cnk->value); -			break; - -		case CNK_STRING: -			if (max == -1) { -				max = strlen(cnk->strvalue); -			} -			fmtstr (buffer, &currlen, maxlen, cnk->strvalue, cnk->flags, min, max); -			break; - -		case CNK_PTR: -			fmtint (buffer, &currlen, maxlen, (long)(cnk->strvalue), 16, min, max, cnk->flags); -			break; - -		case CNK_NUM: -			if (cnk->cflags == DP_C_CHAR) -				*((char *)(cnk->pnum)) = (char)currlen; -			else if (cnk->cflags == DP_C_SHORT) -				*((short int *)(cnk->pnum)) = (short int)currlen; -			else if (cnk->cflags == DP_C_LONG) -				*((long int *)(cnk->pnum)) = (long int)currlen; -			else if (cnk->cflags == DP_C_LLONG) -				*((LLONG *)(cnk->pnum)) = (LLONG)currlen; -			else if (cnk->cflags == DP_C_SIZET) -				*((ssize_t *)(cnk->pnum)) = (ssize_t)currlen; -			else -				*((int *)(cnk->pnum)) = (int)currlen; -			break; - -		case CNK_PRCNT: -			dopr_outch (buffer, &currlen, maxlen, '%'); -			break; - -		default: -			/* what ?? */ -			goto done; -		} -		cnk = cnk->next; -	} -	if (maxlen != 0) { -		if (currlen < maxlen - 1)  -			buffer[currlen] = '\0'; -		else if (maxlen > 0)  -			buffer[maxlen - 1] = '\0'; -	} -	ret = currlen; - -done: -	va_end(args); - -	while (chunks) { -		cnk = chunks->next; -		free(chunks); -		chunks = cnk; -	} -	if (clist) { -		for (pnum = 0; pnum < max_pos; pnum++) { -			if (clist[pnum].chunks) free(clist[pnum].chunks); -		} -		free(clist); -	} -	return ret; -} - -static void fmtstr(char *buffer, size_t *currlen, size_t maxlen, -		    char *value, int flags, int min, int max) -{ -	int padlen, strln;     /* amount to pad */ -	int cnt = 0; - -#ifdef DEBUG_SNPRINTF -	printf("fmtstr min=%d max=%d s=[%s]\n", min, max, value); -#endif -	if (value == 0) { -		value = "<NULL>"; -	} - -	for (strln = 0; strln < max && value[strln]; ++strln); /* strlen */ -	padlen = min - strln; -	if (padlen < 0)  -		padlen = 0; -	if (flags & DP_F_MINUS)  -		padlen = -padlen; /* Left Justify */ -	 -	while (padlen > 0) { -		dopr_outch (buffer, currlen, maxlen, ' '); -		--padlen; -	} -	while (*value && (cnt < max)) { -		dopr_outch (buffer, currlen, maxlen, *value++); -		++cnt; -	} -	while (padlen < 0) { -		dopr_outch (buffer, currlen, maxlen, ' '); -		++padlen; -	} -} - -/* Have to handle DP_F_NUM (ie 0x and 0 alternates) */ - -static void fmtint(char *buffer, size_t *currlen, size_t maxlen, -		    LLONG value, int base, int min, int max, int flags) -{ -	int signvalue = 0; -	unsigned LLONG uvalue; -	char convert[20]; -	int place = 0; -	int spadlen = 0; /* amount to space pad */ -	int zpadlen = 0; /* amount to zero pad */ -	int caps = 0; -	 -	if (max < 0) -		max = 0; -	 -	uvalue = value; -	 -	if(!(flags & DP_F_UNSIGNED)) { -		if( value < 0 ) { -			signvalue = '-'; -			uvalue = -value; -		} else { -			if (flags & DP_F_PLUS)  /* Do a sign (+/i) */ -				signvalue = '+'; -			else if (flags & DP_F_SPACE) -				signvalue = ' '; -		} -	} -   -	if (flags & DP_F_UP) caps = 1; /* Should characters be upper case? */ - -	do { -		convert[place++] = -			(caps? "0123456789ABCDEF":"0123456789abcdef") -			[uvalue % (unsigned)base  ]; -		uvalue = (uvalue / (unsigned)base ); -	} while(uvalue && (place < 20)); -	if (place == 20) place--; -	convert[place] = 0; - -	zpadlen = max - place; -	spadlen = min - MAX (max, place) - (signvalue ? 1 : 0); -	if (zpadlen < 0) zpadlen = 0; -	if (spadlen < 0) spadlen = 0; -	if (flags & DP_F_ZERO) { -		zpadlen = MAX(zpadlen, spadlen); -		spadlen = 0; -	} -	if (flags & DP_F_MINUS)  -		spadlen = -spadlen; /* Left Justifty */ - -#ifdef DEBUG_SNPRINTF -	printf("zpad: %d, spad: %d, min: %d, max: %d, place: %d\n", -	       zpadlen, spadlen, min, max, place); -#endif - -	/* Spaces */ -	while (spadlen > 0) { -		dopr_outch (buffer, currlen, maxlen, ' '); -		--spadlen; -	} - -	/* Sign */ -	if (signvalue)  -		dopr_outch (buffer, currlen, maxlen, signvalue); - -	/* Zeros */ -	if (zpadlen > 0) { -		while (zpadlen > 0) { -			dopr_outch (buffer, currlen, maxlen, '0'); -			--zpadlen; -		} -	} - -	/* Digits */ -	while (place > 0)  -		dopr_outch (buffer, currlen, maxlen, convert[--place]); -   -	/* Left Justified spaces */ -	while (spadlen < 0) { -		dopr_outch (buffer, currlen, maxlen, ' '); -		++spadlen; -	} -} - -static LDOUBLE abs_val(LDOUBLE value) -{ -	LDOUBLE result = value; - -	if (value < 0) -		result = -value; -	 -	return result; -} - -static LDOUBLE POW10(int exp) -{ -	LDOUBLE result = 1; -	 -	while (exp) { -		result *= 10; -		exp--; -	} -   -	return result; -} - -static LLONG ROUND(LDOUBLE value) -{ -	LLONG intpart; - -	intpart = (LLONG)value; -	value = value - intpart; -	if (value >= 0.5) intpart++; -	 -	return intpart; -} - -/* a replacement for modf that doesn't need the math library. Should -   be portable, but slow */ -static double my_modf(double x0, double *iptr) -{ -	int i; -	LLONG l=0; -	double x = x0; -	double f = 1.0; - -	for (i=0;i<100;i++) { -		l = (long)x; -		if (l <= (x+1) && l >= (x-1)) break; -		x *= 0.1; -		f *= 10.0; -	} - -	if (i == 100) { -		/* yikes! the number is beyond what we can handle. What do we do? */ -		(*iptr) = 0; -		return 0; -	} - -	if (i != 0) { -		double i2; -		double ret; - -		ret = my_modf(x0-l*f, &i2); -		(*iptr) = l*f + i2; -		return ret; -	}  - -	(*iptr) = l; -	return x - (*iptr); -} - - -static void fmtfp (char *buffer, size_t *currlen, size_t maxlen, -		   LDOUBLE fvalue, int min, int max, int flags) -{ -	int signvalue = 0; -	double ufvalue; -	char iconvert[311]; -	char fconvert[311]; -	int iplace = 0; -	int fplace = 0; -	int padlen = 0; /* amount to pad */ -	int zpadlen = 0;  -	int caps = 0; -	int idx; -	double intpart; -	double fracpart; -	double temp; -   -	/*  -	 * AIX manpage says the default is 0, but Solaris says the default -	 * is 6, and sprintf on AIX defaults to 6 -	 */ -	if (max < 0) -		max = 6; - -	ufvalue = abs_val (fvalue); - -	if (fvalue < 0) { -		signvalue = '-'; -	} else { -		if (flags & DP_F_PLUS) { /* Do a sign (+/i) */ -			signvalue = '+'; -		} else { -			if (flags & DP_F_SPACE) -				signvalue = ' '; -		} -	} - -#if 0 -	if (flags & DP_F_UP) caps = 1; /* Should characters be upper case? */ -#endif - -#if 0 -	 if (max == 0) ufvalue += 0.5; /* if max = 0 we must round */ -#endif - -	/*  -	 * Sorry, we only support 9 digits past the decimal because of our  -	 * conversion method -	 */ -	if (max > 9) -		max = 9; - -	/* We "cheat" by converting the fractional part to integer by -	 * multiplying by a factor of 10 -	 */ - -	temp = ufvalue; -	my_modf(temp, &intpart); - -	fracpart = ROUND((POW10(max)) * (ufvalue - intpart)); -	 -	if (fracpart >= POW10(max)) { -		intpart++; -		fracpart -= POW10(max); -	} - - -	/* Convert integer part */ -	do { -		temp = intpart*0.1; -		my_modf(temp, &intpart); -		idx = (int) ((temp -intpart +0.05)* 10.0); -		/* idx = (int) (((double)(temp*0.1) -intpart +0.05) *10.0); */ -		/* printf ("%llf, %f, %x\n", temp, intpart, idx); */ -		iconvert[iplace++] = -			(caps? "0123456789ABCDEF":"0123456789abcdef")[idx]; -	} while (intpart && (iplace < 311)); -	if (iplace == 311) iplace--; -	iconvert[iplace] = 0; - -	/* Convert fractional part */ -	if (fracpart) -	{ -		do { -			temp = fracpart*0.1; -			my_modf(temp, &fracpart); -			idx = (int) ((temp -fracpart +0.05)* 10.0); -			/* idx = (int) ((((temp/10) -fracpart) +0.05) *10); */ -			/* printf ("%lf, %lf, %ld\n", temp, fracpart, idx ); */ -			fconvert[fplace++] = -			(caps? "0123456789ABCDEF":"0123456789abcdef")[idx]; -		} while(fracpart && (fplace < 311)); -		if (fplace == 311) fplace--; -	} -	fconvert[fplace] = 0; -   -	/* -1 for decimal point, another -1 if we are printing a sign */ -	padlen = min - iplace - max - 1 - ((signvalue) ? 1 : 0);  -	zpadlen = max - fplace; -	if (zpadlen < 0) zpadlen = 0; -	if (padlen < 0)  -		padlen = 0; -	if (flags & DP_F_MINUS)  -		padlen = -padlen; /* Left Justifty */ -	 -	if ((flags & DP_F_ZERO) && (padlen > 0)) { -		if (signvalue) { -			dopr_outch (buffer, currlen, maxlen, signvalue); -			--padlen; -			signvalue = 0; -		} -		while (padlen > 0) { -			dopr_outch (buffer, currlen, maxlen, '0'); -			--padlen; -		} -	} -	while (padlen > 0) { -		dopr_outch (buffer, currlen, maxlen, ' '); -		--padlen; -	} -	if (signvalue)  -		dopr_outch (buffer, currlen, maxlen, signvalue); -	 -	while (iplace > 0)  -		dopr_outch (buffer, currlen, maxlen, iconvert[--iplace]); - -#ifdef DEBUG_SNPRINTF -	printf("fmtfp: fplace=%d zpadlen=%d\n", fplace, zpadlen); -#endif - -	/* -	 * Decimal point.  This should probably use locale to find the correct -	 * char to print out. -	 */ -	if (max > 0) { -		dopr_outch (buffer, currlen, maxlen, '.'); -		 -		while (zpadlen > 0) { -			dopr_outch (buffer, currlen, maxlen, '0'); -			--zpadlen; -		} - -		while (fplace > 0)  -			dopr_outch (buffer, currlen, maxlen, fconvert[--fplace]); -	} - -	while (padlen < 0) { -		dopr_outch (buffer, currlen, maxlen, ' '); -		++padlen; -	} -} - -static void dopr_outch(char *buffer, size_t *currlen, size_t maxlen, char c) -{ -	if (*currlen < maxlen) { -		buffer[(*currlen)] = c; -	} -	(*currlen)++; -} - -static struct pr_chunk *new_chunk(void) { -	struct pr_chunk *new_c = (struct pr_chunk *)malloc(sizeof(struct pr_chunk)); - -	if (!new_c) -		return NULL; - -	new_c->type = 0; -	new_c->num = 0; -	new_c->min = 0; -	new_c->min_star = NULL; -	new_c->max = -1; -	new_c->max_star = NULL; -	new_c->flags = 0; -	new_c->cflags = 0; -	new_c->start = 0; -	new_c->len = 0; -	new_c->value = 0; -	new_c->fvalue = 0; -	new_c->strvalue = NULL; -	new_c->pnum = NULL; -	new_c->next = NULL; - -	return new_c; -} - -static int add_cnk_list_entry(struct pr_chunk_x **list, -				int max_num, struct pr_chunk *chunk) { -	struct pr_chunk_x *l; -	struct pr_chunk **c; -	int max; -	int cnum; -	int i, pos; - -	if (chunk->num > max_num) { -		max = chunk->num; -	 -		if (*list == NULL) { -			l = (struct pr_chunk_x *)malloc(sizeof(struct pr_chunk_x) * max); -			pos = 0; -		} else { -			l = (struct pr_chunk_x *)realloc(*list, sizeof(struct pr_chunk_x) * max); -			pos = max_num; -		} -		if (l == NULL) { -			for (i = 0; i < max; i++) { -				if ((*list)[i].chunks) free((*list)[i].chunks); -			} -			return 0; -		} -		for (i = pos; i < max; i++) { -			l[i].chunks = NULL; -			l[i].num = 0; -		} -	} else { -		l = *list; -		max = max_num; -	} - -	i = chunk->num - 1; -	cnum = l[i].num + 1; -	if (l[i].chunks == NULL) { -		c = (struct pr_chunk **)malloc(sizeof(struct pr_chunk *) * cnum);  -	} else { -		c = (struct pr_chunk **)realloc(l[i].chunks, sizeof(struct pr_chunk *) * cnum); -	} -	if (c == NULL) { -		for (i = 0; i < max; i++) { -			if (l[i].chunks) free(l[i].chunks); -		} -		return 0; -	} -	c[l[i].num] = chunk; -	l[i].chunks = c; -	l[i].num = cnum; - -	*list = l; -	return max; -} - - int vsnprintf (char *str, size_t count, const char *fmt, va_list args) -{ -	return dopr(str, count, fmt, args); -} -#endif - -/* yes this really must be a ||. Don't muck with this (tridge) - * - * The logic for these two is that we need our own definition if the - * OS *either* has no definition of *sprintf, or if it does have one - * that doesn't work properly according to the autoconf test. - */ -#if !defined(HAVE_SNPRINTF) || !defined(HAVE_C99_VSNPRINTF) - int snprintf(char *str,size_t count,const char *fmt,...) -{ -	size_t ret; -	va_list ap; -     -	va_start(ap, fmt); -	ret = vsnprintf(str, count, fmt, ap); -	va_end(ap); -	return ret; -} -#endif - -#ifndef HAVE_C99_VSNPRINTF - int printf(const char *fmt, ...) -{ -	va_list ap; -	int ret; -	char *s; - -	s = NULL; -	va_start(ap, fmt); -	ret = vasprintf(&s, fmt, ap); -	va_end(ap); - -	if (s) { -		fwrite(s, 1, strlen(s), stdout); -	} -	free(s); - -	return ret; -} -#endif - -#ifndef HAVE_C99_VSNPRINTF - int fprintf(FILE *stream, const char *fmt, ...) -{ -	va_list ap; -	int ret; -	char *s; - -	s = NULL; -	va_start(ap, fmt); -	ret = vasprintf(&s, fmt, ap); -	va_end(ap); - -	if (s) { -		fwrite(s, 1, strlen(s), stream); -	} -	free(s); - -	return ret; -} -#endif - -#endif  - -#ifndef HAVE_VASPRINTF - int vasprintf(char **ptr, const char *format, va_list ap) -{ -	int ret; -	va_list ap2; - -	VA_COPY(ap2, ap); -	ret = vsnprintf(NULL, 0, format, ap2); -	va_end(ap2); -	if (ret < 0) return ret; - -	(*ptr) = (char *)malloc(ret+1); -	if (!*ptr) return -1; - -	VA_COPY(ap2, ap); -	ret = vsnprintf(*ptr, ret+1, format, ap2); -	va_end(ap2); - -	return ret; -} -#endif - - -#ifndef HAVE_ASPRINTF - int asprintf(char **ptr, const char *format, ...) -{ -	va_list ap; -	int ret; -	 -	*ptr = NULL; -	va_start(ap, format); -	ret = vasprintf(ptr, format, ap); -	va_end(ap); - -	return ret; -} -#endif - -#ifdef TEST_SNPRINTF - - int sprintf(char *str,const char *fmt,...); - int printf(const char *fmt,...); - - int main (void) -{ -	char buf1[1024]; -	char buf2[1024]; -	char *buf3; -	char *fp_fmt[] = { -		"%1.1f", -		"%-1.5f", -		"%1.5f", -		"%123.9f", -		"%10.5f", -		"% 10.5f", -		"%+22.9f", -		"%+4.9f", -		"%01.3f", -		"%4f", -		"%3.1f", -		"%3.2f", -		"%.0f", -		"%f", -		"%-8.8f", -		"%-9.9f", -		NULL -	}; -	double fp_nums[] = { 6442452944.1234, -1.5, 134.21, 91340.2, 341.1234, 203.9, 0.96, 0.996,  -			     0.9996, 1.996, 4.136, 5.030201, 0.00205, -			     /* END LIST */ 0}; -	char *int_fmt[] = { -		"%-1.5d", -		"%1.5d", -		"%123.9d", -		"%5.5d", -		"%10.5d", -		"% 10.5d", -		"%+22.33d", -		"%01.3d", -		"%4d", -		"%d", -		NULL -	}; -	long int_nums[] = { -1, 134, 91340, 341, 0203, 1234567890, 0}; -	char *str_fmt[] = { -		"%10.5s", -		"%-10.5s", -		"%5.10s", -		"%-5.10s", -		"%10.1s", -		"%0.10s", -		"%10.0s", -		"%1.10s", -		"%s", -		"%.1s", -		"%.10s", -		"%10s", -		NULL -	}; -	char *str_vals[] = {"hello", "a", "", "a longer string", NULL}; -#ifdef HAVE_LONG_LONG -	char *ll_fmt[] = { -		"%llu", -		NULL -	}; -	LLONG ll_nums[] = { 134, 91340, 341, 0203, 1234567890, 128006186140000000LL, 0}; -#endif -	int x, y; -	int fail = 0; -	int num = 0; -	int l1, l2; -	char *ss_fmt[] = { -		"%zd", -		"%zu", -		NULL -	}; -	size_t ss_nums[] = {134, 91340, 123456789, 0203, 1234567890, 0}; - -	printf ("Testing snprintf format codes against system sprintf...\n"); - -	for (x = 0; fp_fmt[x] ; x++) { -		for (y = 0; fp_nums[y] != 0 ; y++) { -			buf1[0] = buf2[0] = '\0'; -			l1 = snprintf(buf1, sizeof(buf1), fp_fmt[x], fp_nums[y]); -			l2 = sprintf (buf2, fp_fmt[x], fp_nums[y]); -			buf1[1023] = buf2[1023] = '\0'; -			if (strcmp (buf1, buf2) || (l1 != l2)) { -				printf("snprintf doesn't match Format: %s\n\tsnprintf(%d) = [%s]\n\t sprintf(%d) = [%s]\n",  -				       fp_fmt[x], l1, buf1, l2, buf2); -				fail++; -			} -			num++; -		} -	} - -	for (x = 0; int_fmt[x] ; x++) { -		for (y = 0; int_nums[y] != 0 ; y++) { -			buf1[0] = buf2[0] = '\0'; -			l1 = snprintf(buf1, sizeof(buf1), int_fmt[x], int_nums[y]); -			l2 = sprintf (buf2, int_fmt[x], int_nums[y]); -			buf1[1023] = buf2[1023] = '\0'; -			if (strcmp (buf1, buf2) || (l1 != l2)) { -				printf("snprintf doesn't match Format: %s\n\tsnprintf(%d) = [%s]\n\t sprintf(%d) = [%s]\n",  -				       int_fmt[x], l1, buf1, l2, buf2); -				fail++; -			} -			num++; -		} -	} - -	for (x = 0; str_fmt[x] ; x++) { -		for (y = 0; str_vals[y] != 0 ; y++) { -			buf1[0] = buf2[0] = '\0'; -			l1 = snprintf(buf1, sizeof(buf1), str_fmt[x], str_vals[y]); -			l2 = sprintf (buf2, str_fmt[x], str_vals[y]); -			buf1[1023] = buf2[1023] = '\0'; -			if (strcmp (buf1, buf2) || (l1 != l2)) { -				printf("snprintf doesn't match Format: %s\n\tsnprintf(%d) = [%s]\n\t sprintf(%d) = [%s]\n",  -				       str_fmt[x], l1, buf1, l2, buf2); -				fail++; -			} -			num++; -		} -	} - -#ifdef HAVE_LONG_LONG -	for (x = 0; ll_fmt[x] ; x++) { -		for (y = 0; ll_nums[y] != 0 ; y++) { -			buf1[0] = buf2[0] = '\0'; -			l1 = snprintf(buf1, sizeof(buf1), ll_fmt[x], ll_nums[y]); -			l2 = sprintf (buf2, ll_fmt[x], ll_nums[y]); -			buf1[1023] = buf2[1023] = '\0'; -			if (strcmp (buf1, buf2) || (l1 != l2)) { -				printf("snprintf doesn't match Format: %s\n\tsnprintf(%d) = [%s]\n\t sprintf(%d) = [%s]\n",  -				       ll_fmt[x], l1, buf1, l2, buf2); -				fail++; -			} -			num++; -		} -	} -#endif - -#define BUFSZ 2048 - -	buf1[0] = buf2[0] = '\0'; -	if ((buf3 = malloc(BUFSZ)) == NULL) { -		fail++; -	} else { -		num++; -		memset(buf3, 'a', BUFSZ); -		snprintf(buf1, sizeof(buf1), "%.*s", 1, buf3); -		buf1[1023] = '\0'; -		if (strcmp(buf1, "a") != 0) { -			printf("length limit buf1 '%s' expected 'a'\n", buf1); -			fail++; -		} -        } - -	buf1[0] = buf2[0] = '\0'; -	l1 = snprintf(buf1, sizeof(buf1), "%4$*1$d %2$s %3$*1$.*1$f", 3, "pos test", 12.3456, 9); -	l2 = sprintf(buf2, "%4$*1$d %2$s %3$*1$.*1$f", 3, "pos test", 12.3456, 9); -	buf1[1023] = buf2[1023] = '\0'; -	if (strcmp(buf1, buf2) || (l1 != l2)) { -		printf("snprintf doesn't match Format: %s\n\tsnprintf(%d) = [%s]\n\t sprintf(%d) = [%s]\n", -				"%4$*1$d %2$s %3$*1$.*1$f", l1, buf1, l2, buf2); -		fail++; -	} - -	buf1[0] = buf2[0] = '\0'; -	l1 = snprintf(buf1, sizeof(buf1), "%4$*4$d %2$s %3$*4$.*4$f", 3, "pos test", 12.3456, 9); -	l2 = sprintf(buf2, "%4$*4$d %2$s %3$*4$.*4$f", 3, "pos test", 12.3456, 9); -	buf1[1023] = buf2[1023] = '\0'; -	if (strcmp(buf1, buf2)) { -		printf("snprintf doesn't match Format: %s\n\tsnprintf(%d) = [%s]\n\t sprintf(%d) = [%s]\n", -				"%4$*1$d %2$s %3$*1$.*1$f", l1, buf1, l2, buf2); -		fail++; -	} - -	for (x = 0; ss_fmt[x] ; x++) { -		for (y = 0; ss_nums[y] != 0 ; y++) { -			buf1[0] = buf2[0] = '\0'; -			l1 = snprintf(buf1, sizeof(buf1), ss_fmt[x], ss_nums[y]); -			l2 = sprintf (buf2, ss_fmt[x], ss_nums[y]); -			buf1[1023] = buf2[1023] = '\0'; -			if (strcmp (buf1, buf2) || (l1 != l2)) { -				printf("snprintf doesn't match Format: %s\n\tsnprintf(%d) = [%s]\n\t sprintf(%d) = [%s]\n",  -				       ss_fmt[x], l1, buf1, l2, buf2); -				fail++; -			} -			num++; -		} -	} -#if 0 -	buf1[0] = buf2[0] = '\0'; -	l1 = snprintf(buf1, sizeof(buf1), "%lld", (LLONG)1234567890); -	l2 = sprintf(buf2, "%lld", (LLONG)1234567890); -	buf1[1023] = buf2[1023] = '\0'; -	if (strcmp(buf1, buf2)) { -		printf("snprintf doesn't match Format: %s\n\tsnprintf(%d) = [%s]\n\t sprintf(%d) = [%s]\n", -				"%lld", l1, buf1, l2, buf2); -		fail++; -	} - -	buf1[0] = buf2[0] = '\0'; -	l1 = snprintf(buf1, sizeof(buf1), "%Lf", (LDOUBLE)890.1234567890123); -	l2 = sprintf(buf2, "%Lf", (LDOUBLE)890.1234567890123); -	buf1[1023] = buf2[1023] = '\0'; -	if (strcmp(buf1, buf2)) { -		printf("snprintf doesn't match Format: %s\n\tsnprintf(%d) = [%s]\n\t sprintf(%d) = [%s]\n", -				"%Lf", l1, buf1, l2, buf2); -		fail++; -	} -#endif -	printf ("%d tests failed out of %d.\n", fail, num); - -	printf("seeing how many digits we support\n"); -	{ -		double v0 = 0.12345678901234567890123456789012345678901; -		for (x=0; x<100; x++) { -			double p = pow(10, x);  -			double r = v0*p; -			snprintf(buf1, sizeof(buf1), "%1.1f", r); -			sprintf(buf2,                "%1.1f", r); -			if (strcmp(buf1, buf2)) { -				printf("we seem to support %d digits\n", x-1); -				break; -			} -		} -	} - -	return 0; -} -#endif /* TEST_SNPRINTF */ diff --git a/source3/lib/replace/socket.c b/source3/lib/replace/socket.c deleted file mode 100644 index 35e975fce7..0000000000 --- a/source3/lib/replace/socket.c +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Unix SMB/CIFS implementation. - * - * Dummy replacements for socket functions. - * - * Copyright (C) Michael Adam <obnox@samba.org> 2008 - * - * 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 3 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, see <http://www.gnu.org/licenses/>. - */ - -#include "replace.h" -#include "system/network.h" - -int rep_connect(int sockfd, const struct sockaddr *serv_addr, socklen_t addrlen) -{ -	errno = ENOSYS; -	return -1; -} - -struct hostent *rep_gethostbyname(const char *name) -{ -	errno = ENOSYS; -	return NULL; -} diff --git a/source3/lib/replace/socketpair.c b/source3/lib/replace/socketpair.c deleted file mode 100644 index c775730952..0000000000 --- a/source3/lib/replace/socketpair.c +++ /dev/null @@ -1,46 +0,0 @@ -/* - * 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); -} diff --git a/source3/lib/replace/strptime.c b/source3/lib/replace/strptime.c deleted file mode 100644 index 0e40f7561a..0000000000 --- a/source3/lib/replace/strptime.c +++ /dev/null @@ -1,990 +0,0 @@ -/* Convert a string representation of time to a time value. -   Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. - -   The GNU C 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. - -   The GNU C 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 -   Library General Public License for more details. - -   You should have received a copy of the GNU Lesser General Public -   License along with the GNU C Library; see the file COPYING.LIB.  If not,  -   see <http://www.gnu.org/licenses/>.  */ - -/* XXX This version of the implementation is not really complete. -   Some of the fields cannot add information alone.  But if seeing -   some of them in the same format (such as year, week and weekday) -   this is enough information for determining the date.  */ - -#include "replace.h" -#include "system/locale.h" -#include "system/time.h" - -#ifndef __P -# if defined (__GNUC__) || (defined (__STDC__) && __STDC__) -#  define __P(args) args -# else -#  define __P(args) () -# endif  /* GCC.  */ -#endif  /* Not __P.  */ - -#if ! HAVE_LOCALTIME_R && ! defined localtime_r -# ifdef _LIBC -#  define localtime_r __localtime_r -# else -/* Approximate localtime_r as best we can in its absence.  */ -#  define localtime_r my_localtime_r -static struct tm *localtime_r __P ((const time_t *, struct tm *)); -static struct tm * -localtime_r (t, tp) -     const time_t *t; -     struct tm *tp; -{ -  struct tm *l = localtime (t); -  if (! l) -    return 0; -  *tp = *l; -  return tp; -} -# endif /* ! _LIBC */ -#endif /* ! HAVE_LOCALTIME_R && ! defined (localtime_r) */ - - -#define match_char(ch1, ch2) if (ch1 != ch2) return NULL -#if defined __GNUC__ && __GNUC__ >= 2 -# define match_string(cs1, s2) \ -  ({ size_t len = strlen (cs1);						      \ -     int result = strncasecmp ((cs1), (s2), len) == 0;			      \ -     if (result) (s2) += len;						      \ -     result; }) -#else -/* Oh come on.  Get a reasonable compiler.  */ -# define match_string(cs1, s2) \ -  (strncasecmp ((cs1), (s2), strlen (cs1)) ? 0 : ((s2) += strlen (cs1), 1)) -#endif -/* We intentionally do not use isdigit() for testing because this will -   lead to problems with the wide character version.  */ -#define get_number(from, to, n) \ -  do {									      \ -    int __n = n;							      \ -    val = 0;								      \ -    while (*rp == ' ')							      \ -      ++rp;								      \ -    if (*rp < '0' || *rp > '9')						      \ -      return NULL;							      \ -    do {								      \ -      val *= 10;							      \ -      val += *rp++ - '0';						      \ -    } while (--__n > 0 && val * 10 <= to && *rp >= '0' && *rp <= '9');	      \ -    if (val < from || val > to)						      \ -      return NULL;							      \ -  } while (0) -#ifdef _NL_CURRENT -# define get_alt_number(from, to, n) \ -  ({									      \ -    __label__ do_normal;						      \ -    if (*decided != raw)						      \ -      {									      \ -	const char *alts = _NL_CURRENT (LC_TIME, ALT_DIGITS);		      \ -	int __n = n;							      \ -	int any = 0;							      \ -	while (*rp == ' ')						      \ -	  ++rp;								      \ -	val = 0;							      \ -	do {								      \ -	  val *= 10;							      \ -	  while (*alts != '\0')						      \ -	    {								      \ -	      size_t len = strlen (alts);				      \ -	      if (strncasecmp (alts, rp, len) == 0)			      \ -	        break;							      \ -	      alts += len + 1;						      \ -	      ++val;							      \ -	    }								      \ -	  if (*alts == '\0')						      \ -	    {								      \ -	      if (*decided == not && ! any)				      \ -		goto do_normal;						      \ -	      /* If we haven't read anything it's an error.  */		      \ -	      if (! any)						      \ -		return NULL;						      \ -	      /* Correct the premature multiplication.  */		      \ -	      val /= 10;						      \ -	      break;							      \ -	    }								      \ -	  else								      \ -	    *decided = loc;						      \ -	} while (--__n > 0 && val * 10 <= to);				      \ -	if (val < from || val > to)					      \ -	  return NULL;							      \ -      }									      \ -    else								      \ -      {									      \ -       do_normal:							      \ -        get_number (from, to, n);					      \ -      }									      \ -    0;									      \ -  }) -#else -# define get_alt_number(from, to, n) \ -  /* We don't have the alternate representation.  */			      \ -  get_number(from, to, n) -#endif -#define recursive(new_fmt) \ -  (*(new_fmt) != '\0'							      \ -   && (rp = strptime_internal (rp, (new_fmt), tm, decided, era_cnt)) != NULL) - - -#ifdef _LIBC -/* This is defined in locale/C-time.c in the GNU libc.  */ -extern const struct locale_data _nl_C_LC_TIME; -extern const unsigned short int __mon_yday[2][13]; - -# define weekday_name (&_nl_C_LC_TIME.values[_NL_ITEM_INDEX (DAY_1)].string) -# define ab_weekday_name \ -  (&_nl_C_LC_TIME.values[_NL_ITEM_INDEX (ABDAY_1)].string) -# define month_name (&_nl_C_LC_TIME.values[_NL_ITEM_INDEX (MON_1)].string) -# define ab_month_name (&_nl_C_LC_TIME.values[_NL_ITEM_INDEX (ABMON_1)].string) -# define HERE_D_T_FMT (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (D_T_FMT)].string) -# define HERE_D_FMT (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (D_FMT)].string) -# define HERE_AM_STR (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (AM_STR)].string) -# define HERE_PM_STR (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (PM_STR)].string) -# define HERE_T_FMT_AMPM \ -  (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (T_FMT_AMPM)].string) -# define HERE_T_FMT (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (T_FMT)].string) - -# define strncasecmp(s1, s2, n) __strncasecmp (s1, s2, n) -#else -static char const weekday_name[][10] = -  { -    "Sunday", "Monday", "Tuesday", "Wednesday", -    "Thursday", "Friday", "Saturday" -  }; -static char const ab_weekday_name[][4] = -  { -    "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" -  }; -static char const month_name[][10] = -  { -    "January", "February", "March", "April", "May", "June", -    "July", "August", "September", "October", "November", "December" -  }; -static char const ab_month_name[][4] = -  { -    "Jan", "Feb", "Mar", "Apr", "May", "Jun", -    "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" -  }; -# define HERE_D_T_FMT "%a %b %e %H:%M:%S %Y" -# define HERE_D_FMT "%m/%d/%y" -# define HERE_AM_STR "AM" -# define HERE_PM_STR "PM" -# define HERE_T_FMT_AMPM "%I:%M:%S %p" -# define HERE_T_FMT "%H:%M:%S" - -static const unsigned short int __mon_yday[2][13] = -  { -    /* Normal years.  */ -    { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 }, -    /* Leap years.  */ -    { 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366 } -  }; -#endif - -/* Status of lookup: do we use the locale data or the raw data?  */ -enum locale_status { not, loc, raw }; - - -#ifndef __isleap -/* Nonzero if YEAR is a leap year (every 4 years, -   except every 100th isn't, and every 400th is).  */ -# define __isleap(year)	\ -  ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0)) -#endif - -/* Compute the day of the week.  */ -static void -day_of_the_week (struct tm *tm) -{ -  /* We know that January 1st 1970 was a Thursday (= 4).  Compute the -     the difference between this data in the one on TM and so determine -     the weekday.  */ -  int corr_year = 1900 + tm->tm_year - (tm->tm_mon < 2); -  int wday = (-473 -	      + (365 * (tm->tm_year - 70)) -	      + (corr_year / 4) -	      - ((corr_year / 4) / 25) + ((corr_year / 4) % 25 < 0) -	      + (((corr_year / 4) / 25) / 4) -	      + __mon_yday[0][tm->tm_mon] -	      + tm->tm_mday - 1); -  tm->tm_wday = ((wday % 7) + 7) % 7; -} - -/* Compute the day of the year.  */ -static void -day_of_the_year (struct tm *tm) -{ -  tm->tm_yday = (__mon_yday[__isleap (1900 + tm->tm_year)][tm->tm_mon] -		 + (tm->tm_mday - 1)); -} - -static char * -#ifdef _LIBC -internal_function -#endif -strptime_internal __P ((const char *rp, const char *fmt, struct tm *tm, -			enum locale_status *decided, int era_cnt)); - -static char * -#ifdef _LIBC -internal_function -#endif -strptime_internal (rp, fmt, tm, decided, era_cnt) -     const char *rp; -     const char *fmt; -     struct tm *tm; -     enum locale_status *decided; -     int era_cnt; -{ -  const char *rp_backup; -  int cnt; -  size_t val; -  int have_I, is_pm; -  int century, want_century; -  int want_era; -  int have_wday, want_xday; -  int have_yday; -  int have_mon, have_mday; -#ifdef _NL_CURRENT -  size_t num_eras; -#endif -  struct era_entry *era; - -  have_I = is_pm = 0; -  century = -1; -  want_century = 0; -  want_era = 0; -  era = NULL; - -  have_wday = want_xday = have_yday = have_mon = have_mday = 0; - -  while (*fmt != '\0') -    { -      /* A white space in the format string matches 0 more or white -	 space in the input string.  */ -      if (isspace (*fmt)) -	{ -	  while (isspace (*rp)) -	    ++rp; -	  ++fmt; -	  continue; -	} - -      /* Any character but `%' must be matched by the same character -	 in the iput string.  */ -      if (*fmt != '%') -	{ -	  match_char (*fmt++, *rp++); -	  continue; -	} - -      ++fmt; -#ifndef _NL_CURRENT -      /* We need this for handling the `E' modifier.  */ -    start_over: -#endif - -      /* Make back up of current processing pointer.  */ -      rp_backup = rp; - -      switch (*fmt++) -	{ -	case '%': -	  /* Match the `%' character itself.  */ -	  match_char ('%', *rp++); -	  break; -	case 'a': -	case 'A': -	  /* Match day of week.  */ -	  for (cnt = 0; cnt < 7; ++cnt) -	    { -#ifdef _NL_CURRENT -	      if (*decided !=raw) -		{ -		  if (match_string (_NL_CURRENT (LC_TIME, DAY_1 + cnt), rp)) -		    { -		      if (*decided == not -			  && strcmp (_NL_CURRENT (LC_TIME, DAY_1 + cnt), -				     weekday_name[cnt])) -			*decided = loc; -		      break; -		    } -		  if (match_string (_NL_CURRENT (LC_TIME, ABDAY_1 + cnt), rp)) -		    { -		      if (*decided == not -			  && strcmp (_NL_CURRENT (LC_TIME, ABDAY_1 + cnt), -				     ab_weekday_name[cnt])) -			*decided = loc; -		      break; -		    } -		} -#endif -	      if (*decided != loc -		  && (match_string (weekday_name[cnt], rp) -		      || match_string (ab_weekday_name[cnt], rp))) -		{ -		  *decided = raw; -		  break; -		} -	    } -	  if (cnt == 7) -	    /* Does not match a weekday name.  */ -	    return NULL; -	  tm->tm_wday = cnt; -	  have_wday = 1; -	  break; -	case 'b': -	case 'B': -	case 'h': -	  /* Match month name.  */ -	  for (cnt = 0; cnt < 12; ++cnt) -	    { -#ifdef _NL_CURRENT -	      if (*decided !=raw) -		{ -		  if (match_string (_NL_CURRENT (LC_TIME, MON_1 + cnt), rp)) -		    { -		      if (*decided == not -			  && strcmp (_NL_CURRENT (LC_TIME, MON_1 + cnt), -				     month_name[cnt])) -			*decided = loc; -		      break; -		    } -		  if (match_string (_NL_CURRENT (LC_TIME, ABMON_1 + cnt), rp)) -		    { -		      if (*decided == not -			  && strcmp (_NL_CURRENT (LC_TIME, ABMON_1 + cnt), -				     ab_month_name[cnt])) -			*decided = loc; -		      break; -		    } -		} -#endif -	      if (match_string (month_name[cnt], rp) -		  || match_string (ab_month_name[cnt], rp)) -		{ -		  *decided = raw; -		  break; -		} -	    } -	  if (cnt == 12) -	    /* Does not match a month name.  */ -	    return NULL; -	  tm->tm_mon = cnt; -	  want_xday = 1; -	  break; -	case 'c': -	  /* Match locale's date and time format.  */ -#ifdef _NL_CURRENT -	  if (*decided != raw) -	    { -	      if (!recursive (_NL_CURRENT (LC_TIME, D_T_FMT))) -		{ -		  if (*decided == loc) -		    return NULL; -		  else -		    rp = rp_backup; -		} -	      else -		{ -		  if (*decided == not && -		      strcmp (_NL_CURRENT (LC_TIME, D_T_FMT), HERE_D_T_FMT)) -		    *decided = loc; -		  want_xday = 1; -		  break; -		} -	      *decided = raw; -	    } -#endif -	  if (!recursive (HERE_D_T_FMT)) -	    return NULL; -	  want_xday = 1; -	  break; -	case 'C': -	  /* Match century number.  */ -#ifdef _NL_CURRENT -	match_century: -#endif -	  get_number (0, 99, 2); -	  century = val; -	  want_xday = 1; -	  break; -	case 'd': -	case 'e': -	  /* Match day of month.  */ -	  get_number (1, 31, 2); -	  tm->tm_mday = val; -	  have_mday = 1; -	  want_xday = 1; -	  break; -	case 'F': -	  if (!recursive ("%Y-%m-%d")) -	    return NULL; -	  want_xday = 1; -	  break; -	case 'x': -#ifdef _NL_CURRENT -	  if (*decided != raw) -	    { -	      if (!recursive (_NL_CURRENT (LC_TIME, D_FMT))) -		{ -		  if (*decided == loc) -		    return NULL; -		  else -		    rp = rp_backup; -		} -	      else -		{ -		  if (*decided == not -		      && strcmp (_NL_CURRENT (LC_TIME, D_FMT), HERE_D_FMT)) -		    *decided = loc; -		  want_xday = 1; -		  break; -		} -	      *decided = raw; -	    } -#endif -	  /* Fall through.  */ -	case 'D': -	  /* Match standard day format.  */ -	  if (!recursive (HERE_D_FMT)) -	    return NULL; -	  want_xday = 1; -	  break; -	case 'k': -	case 'H': -	  /* Match hour in 24-hour clock.  */ -	  get_number (0, 23, 2); -	  tm->tm_hour = val; -	  have_I = 0; -	  break; -	case 'I': -	  /* Match hour in 12-hour clock.  */ -	  get_number (1, 12, 2); -	  tm->tm_hour = val % 12; -	  have_I = 1; -	  break; -	case 'j': -	  /* Match day number of year.  */ -	  get_number (1, 366, 3); -	  tm->tm_yday = val - 1; -	  have_yday = 1; -	  break; -	case 'm': -	  /* Match number of month.  */ -	  get_number (1, 12, 2); -	  tm->tm_mon = val - 1; -	  have_mon = 1; -	  want_xday = 1; -	  break; -	case 'M': -	  /* Match minute.  */ -	  get_number (0, 59, 2); -	  tm->tm_min = val; -	  break; -	case 'n': -	case 't': -	  /* Match any white space.  */ -	  while (isspace (*rp)) -	    ++rp; -	  break; -	case 'p': -	  /* Match locale's equivalent of AM/PM.  */ -#ifdef _NL_CURRENT -	  if (*decided != raw) -	    { -	      if (match_string (_NL_CURRENT (LC_TIME, AM_STR), rp)) -		{ -		  if (strcmp (_NL_CURRENT (LC_TIME, AM_STR), HERE_AM_STR)) -		    *decided = loc; -		  break; -		} -	      if (match_string (_NL_CURRENT (LC_TIME, PM_STR), rp)) -		{ -		  if (strcmp (_NL_CURRENT (LC_TIME, PM_STR), HERE_PM_STR)) -		    *decided = loc; -		  is_pm = 1; -		  break; -		} -	      *decided = raw; -	    } -#endif -	  if (!match_string (HERE_AM_STR, rp)) { -	    if (match_string (HERE_PM_STR, rp)) { -	      is_pm = 1; -	    } else { -	      return NULL; -	    } -	  } -	  break; -	case 'r': -#ifdef _NL_CURRENT -	  if (*decided != raw) -	    { -	      if (!recursive (_NL_CURRENT (LC_TIME, T_FMT_AMPM))) -		{ -		  if (*decided == loc) -		    return NULL; -		  else -		    rp = rp_backup; -		} -	      else -		{ -		  if (*decided == not && -		      strcmp (_NL_CURRENT (LC_TIME, T_FMT_AMPM), -			      HERE_T_FMT_AMPM)) -		    *decided = loc; -		  break; -		} -	      *decided = raw; -	    } -#endif -	  if (!recursive (HERE_T_FMT_AMPM)) -	    return NULL; -	  break; -	case 'R': -	  if (!recursive ("%H:%M")) -	    return NULL; -	  break; -	case 's': -	  { -	    /* The number of seconds may be very high so we cannot use -	       the `get_number' macro.  Instead read the number -	       character for character and construct the result while -	       doing this.  */ -	    time_t secs = 0; -	    if (*rp < '0' || *rp > '9') -	      /* We need at least one digit.  */ -	      return NULL; - -	    do -	      { -		secs *= 10; -		secs += *rp++ - '0'; -	      } -	    while (*rp >= '0' && *rp <= '9'); - -	    if (localtime_r (&secs, tm) == NULL) -	      /* Error in function.  */ -	      return NULL; -	  } -	  break; -	case 'S': -	  get_number (0, 61, 2); -	  tm->tm_sec = val; -	  break; -	case 'X': -#ifdef _NL_CURRENT -	  if (*decided != raw) -	    { -	      if (!recursive (_NL_CURRENT (LC_TIME, T_FMT))) -		{ -		  if (*decided == loc) -		    return NULL; -		  else -		    rp = rp_backup; -		} -	      else -		{ -		  if (strcmp (_NL_CURRENT (LC_TIME, T_FMT), HERE_T_FMT)) -		    *decided = loc; -		  break; -		} -	      *decided = raw; -	    } -#endif -	  /* Fall through.  */ -	case 'T': -	  if (!recursive (HERE_T_FMT)) -	    return NULL; -	  break; -	case 'u': -	  get_number (1, 7, 1); -	  tm->tm_wday = val % 7; -	  have_wday = 1; -	  break; -	case 'g': -	  get_number (0, 99, 2); -	  /* XXX This cannot determine any field in TM.  */ -	  break; -	case 'G': -	  if (*rp < '0' || *rp > '9') -	    return NULL; -	  /* XXX Ignore the number since we would need some more -	     information to compute a real date.  */ -	  do -	    ++rp; -	  while (*rp >= '0' && *rp <= '9'); -	  break; -	case 'U': -	case 'V': -	case 'W': -	  get_number (0, 53, 2); -	  /* XXX This cannot determine any field in TM without some -	     information.  */ -	  break; -	case 'w': -	  /* Match number of weekday.  */ -	  get_number (0, 6, 1); -	  tm->tm_wday = val; -	  have_wday = 1; -	  break; -	case 'y': -#ifdef _NL_CURRENT -	match_year_in_century: -#endif -	  /* Match year within century.  */ -	  get_number (0, 99, 2); -	  /* The "Year 2000: The Millennium Rollover" paper suggests that -	     values in the range 69-99 refer to the twentieth century.  */ -	  tm->tm_year = val >= 69 ? val : val + 100; -	  /* Indicate that we want to use the century, if specified.  */ -	  want_century = 1; -	  want_xday = 1; -	  break; -	case 'Y': -	  /* Match year including century number.  */ -	  get_number (0, 9999, 4); -	  tm->tm_year = val - 1900; -	  want_century = 0; -	  want_xday = 1; -	  break; -	case 'Z': -	  /* XXX How to handle this?  */ -	  break; -	case 'E': -#ifdef _NL_CURRENT -	  switch (*fmt++) -	    { -	    case 'c': -	      /* Match locale's alternate date and time format.  */ -	      if (*decided != raw) -		{ -		  const char *fmt = _NL_CURRENT (LC_TIME, ERA_D_T_FMT); - -		  if (*fmt == '\0') -		    fmt = _NL_CURRENT (LC_TIME, D_T_FMT); - -		  if (!recursive (fmt)) -		    { -		      if (*decided == loc) -			return NULL; -		      else -			rp = rp_backup; -		    } -		  else -		    { -		      if (strcmp (fmt, HERE_D_T_FMT)) -			*decided = loc; -		      want_xday = 1; -		      break; -		    } -		  *decided = raw; -		} -	      /* The C locale has no era information, so use the -		 normal representation.  */ -	      if (!recursive (HERE_D_T_FMT)) -		return NULL; -	      want_xday = 1; -	      break; -	    case 'C': -	      if (*decided != raw) -		{ -		  if (era_cnt >= 0) -		    { -		      era = _nl_select_era_entry (era_cnt); -		      if (match_string (era->era_name, rp)) -			{ -			  *decided = loc; -			  break; -			} -		      else -			return NULL; -		    } -		  else -		    { -		      num_eras = _NL_CURRENT_WORD (LC_TIME, -						   _NL_TIME_ERA_NUM_ENTRIES); -		      for (era_cnt = 0; era_cnt < (int) num_eras; -			   ++era_cnt, rp = rp_backup) -			{ -			  era = _nl_select_era_entry (era_cnt); -			  if (match_string (era->era_name, rp)) -			    { -			      *decided = loc; -			      break; -			    } -			} -		      if (era_cnt == (int) num_eras) -			{ -			  era_cnt = -1; -			  if (*decided == loc) -			    return NULL; -			} -		      else -			break; -		    } - -		  *decided = raw; -		} -	      /* The C locale has no era information, so use the -		 normal representation.  */ -	      goto match_century; - 	    case 'y': -	      if (*decided == raw) -		goto match_year_in_century; - -	      get_number(0, 9999, 4); -	      tm->tm_year = val; -	      want_era = 1; -	      want_xday = 1; -	      break; -	    case 'Y': -	      if (*decided != raw) -		{ -		  num_eras = _NL_CURRENT_WORD (LC_TIME, -					       _NL_TIME_ERA_NUM_ENTRIES); -		  for (era_cnt = 0; era_cnt < (int) num_eras; -		       ++era_cnt, rp = rp_backup) -		    { -		      era = _nl_select_era_entry (era_cnt); -		      if (recursive (era->era_format)) -			break; -		    } -		  if (era_cnt == (int) num_eras) -		    { -		      era_cnt = -1; -		      if (*decided == loc) -			return NULL; -		      else -			rp = rp_backup; -		    } -		  else -		    { -		      *decided = loc; -		      era_cnt = -1; -		      break; -		    } - -		  *decided = raw; -		} -	      get_number (0, 9999, 4); -	      tm->tm_year = val - 1900; -	      want_century = 0; -	      want_xday = 1; -	      break; -	    case 'x': -	      if (*decided != raw) -		{ -		  const char *fmt = _NL_CURRENT (LC_TIME, ERA_D_FMT); - -		  if (*fmt == '\0') -		    fmt = _NL_CURRENT (LC_TIME, D_FMT); - -		  if (!recursive (fmt)) -		    { -		      if (*decided == loc) -			return NULL; -		      else -			rp = rp_backup; -		    } -		  else -		    { -		      if (strcmp (fmt, HERE_D_FMT)) -			*decided = loc; -		      break; -		    } -		  *decided = raw; -		} -	      if (!recursive (HERE_D_FMT)) -		return NULL; -	      break; -	    case 'X': -	      if (*decided != raw) -		{ -		  const char *fmt = _NL_CURRENT (LC_TIME, ERA_T_FMT); - -		  if (*fmt == '\0') -		    fmt = _NL_CURRENT (LC_TIME, T_FMT); - -		  if (!recursive (fmt)) -		    { -		      if (*decided == loc) -			return NULL; -		      else -			rp = rp_backup; -		    } -		  else -		    { -		      if (strcmp (fmt, HERE_T_FMT)) -			*decided = loc; -		      break; -		    } -		  *decided = raw; -		} -	      if (!recursive (HERE_T_FMT)) -		return NULL; -	      break; -	    default: -	      return NULL; -	    } -	  break; -#else -	  /* We have no information about the era format.  Just use -	     the normal format.  */ -	  if (*fmt != 'c' && *fmt != 'C' && *fmt != 'y' && *fmt != 'Y' -	      && *fmt != 'x' && *fmt != 'X') -	    /* This is an illegal format.  */ -	    return NULL; - -	  goto start_over; -#endif -	case 'O': -	  switch (*fmt++) -	    { -	    case 'd': -	    case 'e': -	      /* Match day of month using alternate numeric symbols.  */ -	      get_alt_number (1, 31, 2); -	      tm->tm_mday = val; -	      have_mday = 1; -	      want_xday = 1; -	      break; -	    case 'H': -	      /* Match hour in 24-hour clock using alternate numeric -		 symbols.  */ -	      get_alt_number (0, 23, 2); -	      tm->tm_hour = val; -	      have_I = 0; -	      break; -	    case 'I': -	      /* Match hour in 12-hour clock using alternate numeric -		 symbols.  */ -	      get_alt_number (1, 12, 2); -	      tm->tm_hour = val - 1; -	      have_I = 1; -	      break; -	    case 'm': -	      /* Match month using alternate numeric symbols.  */ -	      get_alt_number (1, 12, 2); -	      tm->tm_mon = val - 1; -	      have_mon = 1; -	      want_xday = 1; -	      break; -	    case 'M': -	      /* Match minutes using alternate numeric symbols.  */ -	      get_alt_number (0, 59, 2); -	      tm->tm_min = val; -	      break; -	    case 'S': -	      /* Match seconds using alternate numeric symbols.  */ -	      get_alt_number (0, 61, 2); -	      tm->tm_sec = val; -	      break; -	    case 'U': -	    case 'V': -	    case 'W': -	      get_alt_number (0, 53, 2); -	      /* XXX This cannot determine any field in TM without -		 further information.  */ -	      break; -	    case 'w': -	      /* Match number of weekday using alternate numeric symbols.  */ -	      get_alt_number (0, 6, 1); -	      tm->tm_wday = val; -	      have_wday = 1; -	      break; -	    case 'y': -	      /* Match year within century using alternate numeric symbols.  */ -	      get_alt_number (0, 99, 2); -	      tm->tm_year = val >= 69 ? val : val + 100; -	      want_xday = 1; -	      break; -	    default: -	      return NULL; -	    } -	  break; -	default: -	  return NULL; -	} -    } - -  if (have_I && is_pm) -    tm->tm_hour += 12; - -  if (century != -1) -    { -      if (want_century) -	tm->tm_year = tm->tm_year % 100 + (century - 19) * 100; -      else -	/* Only the century, but not the year.  Strange, but so be it.  */ -	tm->tm_year = (century - 19) * 100; -    } - -#ifdef _NL_CURRENT -  if (era_cnt != -1) -    { -      era = _nl_select_era_entry(era_cnt); -      if (want_era) -	tm->tm_year = (era->start_date[0] -		       + ((tm->tm_year - era->offset) -			  * era->absolute_direction)); -      else -	/* Era start year assumed.  */ -	tm->tm_year = era->start_date[0]; -    } -  else -#endif -    if (want_era) -      return NULL; - -  if (want_xday && !have_wday) -    { -      if ( !(have_mon && have_mday) && have_yday) -	{ -	  /* We don't have tm_mon and/or tm_mday, compute them.  */ -	  int t_mon = 0; -	  while (__mon_yday[__isleap(1900 + tm->tm_year)][t_mon] <= tm->tm_yday) -	      t_mon++; -	  if (!have_mon) -	      tm->tm_mon = t_mon - 1; -	  if (!have_mday) -	      tm->tm_mday = -		(tm->tm_yday -		 - __mon_yday[__isleap(1900 + tm->tm_year)][t_mon - 1] + 1); -	} -      day_of_the_week (tm); -    } -  if (want_xday && !have_yday) -    day_of_the_year (tm); - -  return discard_const_p(char, rp); -} - - -char *rep_strptime(const char *buf, const char *format, struct tm *tm) -{ -  enum locale_status decided; - -#ifdef _NL_CURRENT -  decided = not; -#else -  decided = raw; -#endif -  return strptime_internal (buf, format, tm, &decided, -1); -} diff --git a/source3/lib/replace/strptime.m4 b/source3/lib/replace/strptime.m4 deleted file mode 100644 index da22fc5a97..0000000000 --- a/source3/lib/replace/strptime.m4 +++ /dev/null @@ -1,13 +0,0 @@ -AC_CACHE_CHECK([whether strptime is available and works],libreplace_cv_STRPTIME_OK,[ -	AC_TRY_RUN([ -		#define LIBREPLACE_CONFIGURE_TEST_STRPTIME -		#include "$libreplacedir/test/strptime.c" -		], -		[libreplace_cv_STRPTIME_OK=yes], -		[libreplace_cv_STRPTIME_OK=no], -		[libreplace_cv_STRPTIME_OK="assuming not"]) -]) -if test x"$libreplace_cv_STRPTIME_OK" != x"yes"; then -        AC_DEFINE(REPLACE_STRPTIME,1,[Whether strptime should be replaced]) -        LIBREPLACEOBJ="${LIBREPLACEOBJ} strptime.o" -fi diff --git a/source3/lib/replace/system/README b/source3/lib/replace/system/README deleted file mode 100644 index 69a2b80b56..0000000000 --- a/source3/lib/replace/system/README +++ /dev/null @@ -1,4 +0,0 @@ -This directory contains wrappers around logical groups of system -include files. The idea is to avoid #ifdef blocks in the main code, -and instead put all the necessary conditional includes in subsystem -specific header files in this directory. diff --git a/source3/lib/replace/system/aio.h b/source3/lib/replace/system/aio.h deleted file mode 100644 index 784d77fa28..0000000000 --- a/source3/lib/replace/system/aio.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef _system_aio_h -#define _system_aio_h -/*  -   Unix SMB/CIFS implementation. - -   AIO system include wrappers - -   Copyright (C) Andrew Tridgell 2006 -    -     ** 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/>. -*/ - -#ifdef HAVE_LIBAIO_H -#include <libaio.h> -#endif - -#endif diff --git a/source3/lib/replace/system/capability.h b/source3/lib/replace/system/capability.h deleted file mode 100644 index a7b78f0275..0000000000 --- a/source3/lib/replace/system/capability.h +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef _system_capability_h -#define _system_capability_h -/*  -   Unix SMB/CIFS implementation. - -   capability system include wrappers - -   Copyright (C) Andrew Tridgell 2004 -    -     ** 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/>. -*/ - -#ifdef HAVE_SYS_CAPABILITY_H - -#if defined(BROKEN_REDHAT_7_SYSTEM_HEADERS) && !defined(_I386_STATFS_H) && !defined(_PPC_STATFS_H) -#define _I386_STATFS_H -#define _PPC_STATFS_H -#define BROKEN_REDHAT_7_STATFS_WORKAROUND -#endif - -#if defined(BROKEN_RHEL5_SYS_CAP_HEADER) && !defined(_LINUX_TYPES_H) -#define BROKEN_RHEL5_SYS_CAP_HEADER_WORKAROUND -#endif - -#include <sys/capability.h> - -#ifdef BROKEN_RHEL5_SYS_CAP_HEADER_WORKAROUND -#undef _LINUX_TYPES_H -#undef BROKEN_RHEL5_SYS_CAP_HEADER_WORKAROUND -#endif - -#ifdef BROKEN_REDHAT_7_STATFS_WORKAROUND -#undef _PPC_STATFS_H -#undef _I386_STATFS_H -#undef BROKEN_REDHAT_7_STATFS_WORKAROUND -#endif - -#endif - -#endif diff --git a/source3/lib/replace/system/config.m4 b/source3/lib/replace/system/config.m4 deleted file mode 100644 index 5c9b53d5c5..0000000000 --- a/source3/lib/replace/system/config.m4 +++ /dev/null @@ -1,130 +0,0 @@ -# filesys -AC_HEADER_DIRENT  -AC_CHECK_HEADERS(fcntl.h sys/fcntl.h sys/resource.h sys/ioctl.h sys/mode.h sys/filio.h sys/fs/s5param.h sys/filsys.h) -AC_CHECK_HEADERS(sys/acl.h acl/libacl.h) - -# select -AC_CHECK_HEADERS(sys/select.h) - -# time -AC_CHECK_HEADERS(sys/time.h utime.h) -AC_HEADER_TIME -AC_CHECK_FUNCS(utime utimes) - -# wait -AC_HEADER_SYS_WAIT - -# capability -AC_CHECK_HEADERS(sys/capability.h) - -case "$host_os" in -*linux*) -AC_CACHE_CHECK([for broken RedHat 7.2 system header files],libreplace_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS,[ -AC_TRY_COMPILE([ -	#ifdef HAVE_SYS_VFS_H -	#include <sys/vfs.h> -	#endif -	#ifdef HAVE_SYS_CAPABILITY_H -	#include <sys/capability.h> -	#endif -	],[ -	int i; -	], -	libreplace_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=no, -	libreplace_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=yes -)]) -if test x"$libreplace_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS" = x"yes"; then -	AC_DEFINE(BROKEN_REDHAT_7_SYSTEM_HEADERS,1,[Broken RedHat 7.2 system header files]) -fi - -AC_CACHE_CHECK([for broken RHEL5 sys/capability.h],libreplace_cv_BROKEN_RHEL5_SYS_CAP_HEADER,[ -AC_TRY_COMPILE([ -	#ifdef HAVE_SYS_CAPABILITY_H -	#include <sys/capability.h> -	#endif -	#include <linux/types.h> -	],[ -	__s8 i; -	], -	libreplace_cv_BROKEN_RHEL5_SYS_CAP_HEADER=no, -	libreplace_cv_BROKEN_RHEL5_SYS_CAP_HEADER=yes -)]) -if test x"$libreplace_cv_BROKEN_RHEL5_SYS_CAP_HEADER" = x"yes"; then -	AC_DEFINE(BROKEN_RHEL5_SYS_CAP_HEADER,1,[Broken RHEL5 sys/capability.h]) -fi -;; -esac - -# passwd -AC_CHECK_HEADERS(grp.h sys/id.h compat.h shadow.h sys/priv.h pwd.h sys/security.h) -AC_CHECK_FUNCS(getpwnam_r getpwuid_r getpwent_r) -AC_HAVE_DECL(getpwent_r, [ -	#include <unistd.h> -	#include <pwd.h> -	]) -AC_VERIFY_C_PROTOTYPE([struct passwd *getpwent_r(struct passwd *src, char *buf, int buflen)], -	[ -	#ifndef HAVE_GETPWENT_R_DECL -	#error missing getpwent_r prototype -	#endif -	return NULL; -	],[ -	AC_DEFINE(SOLARIS_GETPWENT_R, 1, [getpwent_r solaris function prototype]) -	],[],[ -	#include <unistd.h> -	#include <pwd.h> -	]) -AC_VERIFY_C_PROTOTYPE([struct passwd *getpwent_r(struct passwd *src, char *buf, size_t buflen)], -	[ -	#ifndef HAVE_GETPWENT_R_DECL -	#error missing getpwent_r prototype -	#endif -	return NULL; -	],[ -	AC_DEFINE(SOLARIS_GETPWENT_R, 1, [getpwent_r irix (similar to solaris) function prototype]) -	],[],[ -	#include <unistd.h> -	#include <pwd.h> -	]) -AC_CHECK_FUNCS(getgrnam_r getgrgid_r getgrent_r) -AC_HAVE_DECL(getgrent_r, [ -	#include <unistd.h> -	#include <grp.h> -	]) -AC_VERIFY_C_PROTOTYPE([struct group *getgrent_r(struct group *src, char *buf, int buflen)], -	[ -	#ifndef HAVE_GETGRENT_R_DECL -	#error missing getgrent_r prototype -	#endif -	return NULL; -	],[ -	AC_DEFINE(SOLARIS_GETGRENT_R, 1, [getgrent_r solaris function prototype]) -	],[],[ -	#include <unistd.h> -	#include <grp.h> -	]) - -AC_VERIFY_C_PROTOTYPE([struct group *getgrent_r(struct group *src, char *buf, size_t buflen)], -	[ -	#ifndef HAVE_GETGRENT_R_DECL -	#error missing getgrent_r prototype -	#endif -	return NULL; -	],[ -	AC_DEFINE(SOLARIS_GETGRENT_R, 1, [getgrent_r irix (similar to solaris)  function prototype]) -	],[],[ -	#include <unistd.h> -	#include <grp.h> -	]) - -# locale -AC_CHECK_HEADERS(ctype.h locale.h) - -# glob -AC_CHECK_HEADERS(fnmatch.h) - -# shmem -AC_CHECK_HEADERS(sys/ipc.h sys/mman.h sys/shm.h ) - -# terminal -AC_CHECK_HEADERS(termios.h termio.h sys/termio.h ) diff --git a/source3/lib/replace/system/dir.h b/source3/lib/replace/system/dir.h deleted file mode 100644 index dec2d54649..0000000000 --- a/source3/lib/replace/system/dir.h +++ /dev/null @@ -1,67 +0,0 @@ -#ifndef _system_dir_h -#define _system_dir_h -/*  -   Unix SMB/CIFS implementation. - -   directory system include wrappers - -   Copyright (C) Andrew Tridgell 2004 -    -     ** 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/>. -*/ - -#if HAVE_DIRENT_H -# include <dirent.h> -# define NAMLEN(dirent) strlen((dirent)->d_name) -#else -# define dirent direct -# define NAMLEN(dirent) (dirent)->d_namlen -# if HAVE_SYS_NDIR_H -#  include <sys/ndir.h> -# endif -# if HAVE_SYS_DIR_H -#  include <sys/dir.h> -# endif -# if HAVE_NDIR_H -#  include <ndir.h> -# endif -#endif - -#ifndef HAVE_MKDIR_MODE -#define mkdir(dir, mode) mkdir(dir) -#endif - -/* Test whether a file name is the "." or ".." directory entries. - * These really should be inline functions. - */ -#ifndef ISDOT -#define ISDOT(path) ( \ -			*((const char *)(path)) == '.' && \ -			*(((const char *)(path)) + 1) == '\0' \ -		    ) -#endif - -#ifndef ISDOTDOT -#define ISDOTDOT(path)	( \ -			    *((const char *)(path)) == '.' && \ -			    *(((const char *)(path)) + 1) == '.' && \ -			    *(((const char *)(path)) + 2) == '\0' \ -			) -#endif - -#endif diff --git a/source3/lib/replace/system/filesys.h b/source3/lib/replace/system/filesys.h deleted file mode 100644 index 4bf1f64865..0000000000 --- a/source3/lib/replace/system/filesys.h +++ /dev/null @@ -1,182 +0,0 @@ -#ifndef _system_filesys_h -#define _system_filesys_h -/*  -   Unix SMB/CIFS implementation. - -   filesystem system include wrappers - -   Copyright (C) Andrew Tridgell 2004 -    -     ** 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 <unistd.h> -#include <sys/stat.h> - -#ifdef HAVE_SYS_PARAM_H -#include <sys/param.h> -#endif - -#ifdef HAVE_SYS_MOUNT_H -#include <sys/mount.h> -#endif - -#ifdef HAVE_MNTENT_H -#include <mntent.h> -#endif - -#ifdef HAVE_SYS_VFS_H -#include <sys/vfs.h> -#endif - -#ifdef HAVE_SYS_ACL_H -#include <sys/acl.h> -#endif - -#ifdef HAVE_ACL_LIBACL_H -#include <acl/libacl.h> -#endif - -#ifdef HAVE_SYS_FS_S5PARAM_H  -#include <sys/fs/s5param.h> -#endif - -#if defined (HAVE_SYS_FILSYS_H) && !defined (_CRAY) -#include <sys/filsys.h>  -#endif - -#ifdef HAVE_SYS_STATFS_H -# include <sys/statfs.h> -#endif - -#ifdef HAVE_DUSTAT_H               -#include <sys/dustat.h> -#endif - -#ifdef HAVE_SYS_STATVFS_H           -#include <sys/statvfs.h> -#endif - -#ifdef HAVE_SYS_FILIO_H -#include <sys/filio.h> -#endif - -#include <sys/file.h> - -#ifdef HAVE_FCNTL_H -#include <fcntl.h> -#else -#ifdef HAVE_SYS_FCNTL_H -#include <sys/fcntl.h> -#endif -#endif - -#ifdef HAVE_SYS_MODE_H -/* apparently AIX needs this for S_ISLNK */ -#ifndef S_ISLNK -#include <sys/mode.h> -#endif -#endif - -#ifdef HAVE_SYS_IOCTL_H -#include <sys/ioctl.h> -#endif - -/* - * Veritas File System.  Often in addition to native. - * Quotas different. - */ -#if defined(HAVE_SYS_FS_VX_QUOTA_H) -#define VXFS_QUOTA -#endif - -#if HAVE_SYS_ATTRIBUTES_H -#include <sys/attributes.h> -#endif - -/* mutually exclusive (SuSE 8.2) */ -#if HAVE_ATTR_XATTR_H -#include <attr/xattr.h> -#elif HAVE_SYS_XATTR_H -#include <sys/xattr.h> -#endif - - -#ifdef HAVE_SYS_RESOURCE_H -#include <sys/resource.h> -#endif - -/* Some POSIX definitions for those without */ -  -#ifndef S_IFDIR -#define S_IFDIR         0x4000 -#endif -#ifndef S_ISDIR -#define S_ISDIR(mode)   ((mode & 0xF000) == S_IFDIR) -#endif -#ifndef S_IRWXU -#define S_IRWXU 00700           /* read, write, execute: owner */ -#endif -#ifndef S_IRUSR -#define S_IRUSR 00400           /* read permission: owner */ -#endif -#ifndef S_IWUSR -#define S_IWUSR 00200           /* write permission: owner */ -#endif -#ifndef S_IXUSR -#define S_IXUSR 00100           /* execute permission: owner */ -#endif -#ifndef S_IRWXG -#define S_IRWXG 00070           /* read, write, execute: group */ -#endif -#ifndef S_IRGRP -#define S_IRGRP 00040           /* read permission: group */ -#endif -#ifndef S_IWGRP -#define S_IWGRP 00020           /* write permission: group */ -#endif -#ifndef S_IXGRP -#define S_IXGRP 00010           /* execute permission: group */ -#endif -#ifndef S_IRWXO -#define S_IRWXO 00007           /* read, write, execute: other */ -#endif -#ifndef S_IROTH -#define S_IROTH 00004           /* read permission: other */ -#endif -#ifndef S_IWOTH -#define S_IWOTH 00002           /* write permission: other */ -#endif -#ifndef S_IXOTH -#define S_IXOTH 00001           /* execute permission: other */ -#endif - -#ifndef O_ACCMODE -#define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR) -#endif - -#ifndef MAXPATHLEN -#define MAXPATHLEN 256 -#endif - -#ifndef SEEK_SET -#define SEEK_SET 0 -#endif - -#endif diff --git a/source3/lib/replace/system/glob.h b/source3/lib/replace/system/glob.h deleted file mode 100644 index 3e23db6828..0000000000 --- a/source3/lib/replace/system/glob.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef _system_glob_h -#define _system_glob_h -/*  -   Unix SMB/CIFS implementation. - -   glob system include wrappers - -   Copyright (C) Andrew Tridgell 2004 -    -     ** 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/>. - -*/ - -#ifdef HAVE_GLOB_H -#include <glob.h> -#endif - -#ifdef HAVE_FNMATCH_H -#include <fnmatch.h> -#endif - -#endif diff --git a/source3/lib/replace/system/iconv.h b/source3/lib/replace/system/iconv.h deleted file mode 100644 index 3c8a71f2f7..0000000000 --- a/source3/lib/replace/system/iconv.h +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef _system_iconv_h -#define _system_iconv_h -/*  -   Unix SMB/CIFS implementation. - -   iconv memory system include wrappers - -   Copyright (C) Andrew Tridgell 2004 -    -     ** 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/>. - -*/ - -#if !defined(HAVE_ICONV) && defined(HAVE_ICONV_H) -#define HAVE_ICONV -#endif - -#if !defined(HAVE_GICONV) && defined(HAVE_GICONV_H) -#define HAVE_GICONV -#endif - -#if !defined(HAVE_BICONV) && defined(HAVE_BICONV_H) -#define HAVE_BICONV -#endif - -#ifdef HAVE_NATIVE_ICONV -#if defined(HAVE_ICONV) -#include <iconv.h> -#elif defined(HAVE_GICONV) -#include <giconv.h> -#elif defined(HAVE_BICONV) -#include <biconv.h> -#endif -#endif /* HAVE_NATIVE_ICONV */ - -/* needed for some systems without iconv. Doesn't really matter -   what error code we use */ -#ifndef EILSEQ -#define EILSEQ EIO -#endif - -#endif diff --git a/source3/lib/replace/system/kerberos.h b/source3/lib/replace/system/kerberos.h deleted file mode 100644 index 2981024bee..0000000000 --- a/source3/lib/replace/system/kerberos.h +++ /dev/null @@ -1,137 +0,0 @@ -#ifndef _system_kerberos_h -#define _system_kerberos_h - -/*  -   Unix SMB/CIFS implementation. - -   kerberos system include wrappers - -   Copyright (C) Andrew Tridgell 2004 -    -     ** 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/>. - -*/ - -#ifdef HAVE_KRB5 -/* Whether the krb5_address struct has a addrtype property */ -/* #undef HAVE_ADDRTYPE_IN_KRB5_ADDRESS */ -/* Whether the krb5_address struct has a addr_type property */ -#define HAVE_ADDR_TYPE_IN_KRB5_ADDRESS 1 -/* Define to 1 if you have the `gsskrb5_extract_authz_data_from_sec_context' */ -#define HAVE_GSSKRB5_EXTRACT_AUTHZ_DATA_FROM_SEC_CONTEXT 1 -/* Define to 1 if you have the `gsskrb5_get_initiator_subkey' function. */ -#define HAVE_GSSKRB5_GET_INITIATOR_SUBKEY 1 -/* Define to 1 if you have the `gsskrb5_register_acceptor_identity' function. */ -#define HAVE_GSSKRB5_REGISTER_ACCEPTOR_IDENTITY 1 -/* Define to 1 if you have the `gss_krb5_ccache_name' function. */ -#define HAVE_GSS_KRB5_CCACHE_NAME 1 -/* Define to 1 if you have the `krb5_addlog_func' function. */ -#define HAVE_KRB5_ADDLOG_FUNC 1 -/* Define to 1 if you have the `krb5_auth_con_setkey' function. */ -#define HAVE_KRB5_AUTH_CON_SETKEY 1 -/* Define to 1 if you have the `krb5_auth_con_setuseruserkey' function. */ -/* #undef HAVE_KRB5_AUTH_CON_SETUSERUSERKEY */ -/* Define to 1 if you have the `krb5_c_enctype_compare' function. */ -#define HAVE_KRB5_C_ENCTYPE_COMPARE 1 -/* Define to 1 if you have the `krb5_c_verify_checksum' function. */ -#define HAVE_KRB5_C_VERIFY_CHECKSUM 1 -/* Whether the type krb5_encrypt_block exists */ -/* #undef HAVE_KRB5_ENCRYPT_BLOCK */ -/* Define to 1 if you have the `krb5_encrypt_data' function. */ -/* #undef HAVE_KRB5_ENCRYPT_DATA */ -/* Define to 1 if you have the `krb5_enctypes_compatible_keys' function. */ -#define HAVE_KRB5_ENCTYPES_COMPATIBLE_KEYS 1 -/* Define to 1 if you have the `krb5_free_data_contents' function. */ -#define HAVE_KRB5_FREE_DATA_CONTENTS 1 -/* Define to 1 if you have the `krb5_free_error_string' function. */ -#define HAVE_KRB5_FREE_ERROR_STRING 1 -/* Define to 1 if you have the `krb5_free_keytab_entry_contents' function. */ -/* #undef HAVE_KRB5_FREE_KEYTAB_ENTRY_CONTENTS */ -/* Define to 1 if you have the `krb5_free_ktypes' function. */ -/* #undef HAVE_KRB5_FREE_KTYPES */ -/* Define to 1 if you have the `krb5_free_unparsed_name' function. */ -/* #undef HAVE_KRB5_FREE_UNPARSED_NAME */ -/* Define to 1 if you have the `krb5_get_default_in_tkt_etypes' function. */ -#define HAVE_KRB5_GET_DEFAULT_IN_TKT_ETYPES 1 -/* Define to 1 if you have the `krb5_get_error_string' function. */ -#define HAVE_KRB5_GET_ERROR_STRING 1 -/* Define to 1 if you have the `krb5_get_permitted_enctypes' function. */ -/* #undef HAVE_KRB5_GET_PERMITTED_ENCTYPES */ -/* Define to 1 if you have the `krb5_get_pw_salt' function. */ -#define HAVE_KRB5_GET_PW_SALT 1 -/* Define to 1 if you have the <krb5.h> header file. */ -#define HAVE_KRB5_H 1 -/* Define to 1 if you have the `krb5_initlog' function. */ -#define HAVE_KRB5_INITLOG 1 -/* Define to 1 if you have the `krb5_kdc_default_config' function. */ -#define HAVE_KRB5_KDC_DEFAULT_CONFIG 1 -/* Whether the krb5_creds struct has a keyblock property */ -/* #undef HAVE_KRB5_KEYBLOCK_IN_CREDS */ -/* Whether the krb5_keyblock struct has a keyvalue property */ -#define HAVE_KRB5_KEYBLOCK_KEYVALUE 1 -/* Whether krb5_keytab_entry has key member */ -/* #undef HAVE_KRB5_KEYTAB_ENTRY_KEY */ -/* Whether krb5_keytab_entry has keyblock member */ -#define HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK 1 -/* Define to 1 if you have the `krb5_krbhst_get_addrinfo' function. */ -#define HAVE_KRB5_KRBHST_GET_ADDRINFO 1 -/* Define to 1 if you have the `krb5_kt_compare' function. */ -#define HAVE_KRB5_KT_COMPARE 1 -/* Define to 1 if you have the `krb5_kt_free_entry' function. */ -#define HAVE_KRB5_KT_FREE_ENTRY 1 -/* Whether the type krb5_log_facility exists */ -#define HAVE_KRB5_LOG_FACILITY 1 -/* Define to 1 if you have the `krb5_mk_req_extended' function. */ -#define HAVE_KRB5_MK_REQ_EXTENDED 1 -/* Define to 1 if you have the `krb5_principal2salt' function. */ -/* #undef HAVE_KRB5_PRINCIPAL2SALT */ -/* Define to 1 if you have the `krb5_principal_get_comp_string' function. */ -#define HAVE_KRB5_PRINCIPAL_GET_COMP_STRING 1 -/* Whether krb5_princ_component is available */ -/* #undef HAVE_KRB5_PRINC_COMPONENT */ -/* Whether the krb5_creds struct has a session property */ -#define HAVE_KRB5_SESSION_IN_CREDS 1 -/* Define to 1 if you have the `krb5_set_default_in_tkt_etypes' function. */ -#define HAVE_KRB5_SET_DEFAULT_IN_TKT_ETYPES 1 -/* Define to 1 if you have the `krb5_set_default_tgs_ktypes' function. */ -/* #undef HAVE_KRB5_SET_DEFAULT_TGS_KTYPES */ -/* Define to 1 if you have the `krb5_set_real_time' function. */ -#define HAVE_KRB5_SET_REAL_TIME 1 -/* Define to 1 if you have the `krb5_set_warn_dest' function. */ -#define HAVE_KRB5_SET_WARN_DEST 1 -/* Define to 1 if you have the `krb5_string_to_key' function. */ -#define HAVE_KRB5_STRING_TO_KEY 1 -/* Define to 1 if you have the `krb5_string_to_key_salt' function. */ -#define HAVE_KRB5_STRING_TO_KEY_SALT 1 -/* Define to 1 if you have the `krb5_ticket_get_authorization_data_type' */ -#define HAVE_KRB5_TICKET_GET_AUTHORIZATION_DATA_TYPE 1 -/* Whether the krb5_ticket struct has a enc_part2 property */ -/* #undef HAVE_KRB5_TKT_ENC_PART2 */ -/* Define to 1 if you have the `krb5_use_enctype' function. */ -/* #undef HAVE_KRB5_USE_ENCTYPE */ -/* Define to 1 if you have the `krb5_verify_checksum' function. */ -#define HAVE_KRB5_VERIFY_CHECKSUM 1 -/* Whether krb5_princ_realm returns krb5_realm or krb5_data */ -#define KRB5_PRINC_REALM_RETURNS_REALM 1 - -#include <krb5.h> -#include <com_err.h> - -#endif - -#endif diff --git a/source3/lib/replace/system/locale.h b/source3/lib/replace/system/locale.h deleted file mode 100644 index e73a9bb274..0000000000 --- a/source3/lib/replace/system/locale.h +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef _system_locale_h -#define _system_locale_h - -/*  -   Unix SMB/CIFS implementation. - -   locale include wrappers - -   Copyright (C) Andrew Tridgell 2004 -    -     ** 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/>. - -*/ - -#ifdef HAVE_CTYPE_H -#include <ctype.h> -#endif - -#ifdef HAVE_LOCALE_H -#include <locale.h> -#endif - -#endif diff --git a/source3/lib/replace/system/network.h b/source3/lib/replace/system/network.h deleted file mode 100644 index 077892a54e..0000000000 --- a/source3/lib/replace/system/network.h +++ /dev/null @@ -1,332 +0,0 @@ -#ifndef _system_network_h -#define _system_network_h -/*  -   Unix SMB/CIFS implementation. - -   networking system include wrappers - -   Copyright (C) Andrew Tridgell 2004 -   Copyright (C) Jelmer Vernooij 2007 -    -     ** 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/>. - -*/ - -#ifndef LIBREPLACE_NETWORK_CHECKS -#error "AC_LIBREPLACE_NETWORK_CHECKS missing in configure" -#endif - -#ifdef HAVE_SYS_SOCKET_H -#include <sys/socket.h> -#endif - -#ifdef HAVE_UNIXSOCKET -#include <sys/un.h> -#endif - -#ifdef HAVE_NETINET_IN_H -#include <netinet/in.h> -#endif -#ifdef HAVE_ARPA_INET_H -#include <arpa/inet.h> -#endif - -#ifdef HAVE_NETDB_H -#include <netdb.h> -#endif - -#ifdef HAVE_NETINET_TCP_H -#include <netinet/tcp.h> -#endif - -/* - * The next three defines are needed to access the IPTOS_* options - * on some systems. - */ - -#ifdef HAVE_NETINET_IN_SYSTM_H -#include <netinet/in_systm.h> -#endif - -#ifdef HAVE_NETINET_IN_IP_H -#include <netinet/in_ip.h> -#endif - -#ifdef HAVE_NETINET_IP_H -#include <netinet/ip.h> -#endif - -#ifdef HAVE_NET_IF_H -#include <net/if.h> -#endif - -#ifdef HAVE_UNISTD_H -#include <unistd.h> -#endif - -#ifdef HAVE_SYS_IOCTL_H -#include <sys/ioctl.h> -#endif - -#ifdef HAVE_STROPTS_H -#include <stropts.h> -#endif - -#ifndef HAVE_SOCKLEN_T -#define HAVE_SOCKLEN_T -typedef int socklen_t; -#endif - -#if !defined (HAVE_INET_NTOA) || defined(REPLACE_INET_NTOA) -/* define is in "replace.h" */ -char *rep_inet_ntoa(struct in_addr ip); -#endif - -#ifndef HAVE_INET_PTON -/* define is in "replace.h" */ -int rep_inet_pton(int af, const char *src, void *dst); -#endif - -#ifndef HAVE_INET_NTOP -/* define is in "replace.h" */ -const char *rep_inet_ntop(int af, const void *src, char *dst, socklen_t size); -#endif - -#ifndef HAVE_INET_ATON -/* define is in "replace.h" */ -int rep_inet_aton(const char *src, struct in_addr *dst); -#endif - -#ifndef HAVE_CONNECT -/* define is in "replace.h" */ -int rep_connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen); -#endif - -#ifndef HAVE_GETHOSTBYNAME -/* define is in "replace.h" */ -struct hostent *rep_gethostbyname(const char *name); -#endif - -#ifdef HAVE_IFADDRS_H -#include <ifaddrs.h> -#endif - -#ifndef HAVE_STRUCT_IFADDRS -struct ifaddrs { -	struct ifaddrs   *ifa_next;         /* Pointer to next struct */ -	char             *ifa_name;         /* Interface name */ -	unsigned int     ifa_flags;         /* Interface flags */ -	struct sockaddr  *ifa_addr;         /* Interface address */ -	struct sockaddr  *ifa_netmask;      /* Interface netmask */ -#undef ifa_dstaddr -	struct sockaddr  *ifa_dstaddr;      /* P2P interface destination */ -	void             *ifa_data;         /* Address specific data */ -}; -#endif - -#ifndef HAVE_GETIFADDRS -int rep_getifaddrs(struct ifaddrs **); -#endif - -#ifndef HAVE_FREEIFADDRS -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. - */ - -/* Various macros that ought to be in <netdb.h>, but might not be */ - -#ifndef EAI_FAIL -#define EAI_BADFLAGS	(-1) -#define EAI_NONAME	(-2) -#define EAI_AGAIN	(-3) -#define EAI_FAIL	(-4) -#define EAI_FAMILY	(-6) -#define EAI_SOCKTYPE	(-7) -#define EAI_SERVICE	(-8) -#define EAI_MEMORY	(-10) -#define EAI_SYSTEM	(-11) -#endif   /* !EAI_FAIL */ - -#ifndef AI_PASSIVE -#define AI_PASSIVE	0x0001 -#endif - -#ifndef AI_CANONNAME -#define AI_CANONNAME	0x0002 -#endif - -#ifndef AI_NUMERICHOST -/* - * some platforms don't support AI_NUMERICHOST; define as zero if using - * the system version of getaddrinfo... - */ -#if defined(HAVE_STRUCT_ADDRINFO) && defined(HAVE_GETADDRINFO) -#define AI_NUMERICHOST	0 -#else -#define AI_NUMERICHOST	0x0004 -#endif -#endif - -#ifndef AI_ADDRCONFIG -/* - * logic copied from AI_NUMERICHOST - */ -#if defined(HAVE_STRUCT_ADDRINFO) && defined(HAVE_GETADDRINFO) -#define AI_ADDRCONFIG	0 -#else -#define AI_ADDRCONFIG	0x0020 -#endif -#endif - -#ifndef AI_NUMERICSERV -/* - * logic copied from AI_NUMERICHOST - */ -#if defined(HAVE_STRUCT_ADDRINFO) && defined(HAVE_GETADDRINFO) -#define AI_NUMERICSERV	0 -#else -#define AI_NUMERICSERV	0x0400 -#endif -#endif - -#ifndef NI_NUMERICHOST -#define NI_NUMERICHOST	1 -#endif - -#ifndef NI_NUMERICSERV -#define NI_NUMERICSERV	2 -#endif - -#ifndef NI_NOFQDN -#define NI_NOFQDN	4 -#endif - -#ifndef NI_NAMEREQD -#define NI_NAMEREQD 	8 -#endif - -#ifndef NI_DGRAM -#define NI_DGRAM	16 -#endif - - -#ifndef NI_MAXHOST -#define NI_MAXHOST	1025 -#endif - -#ifndef NI_MAXSERV -#define NI_MAXSERV	32 -#endif - -/* - * glibc on linux doesn't seem to have MSG_WAITALL - * defined. I think the kernel has it though.. - */ -#ifndef MSG_WAITALL -#define MSG_WAITALL 0 -#endif - -#ifndef INADDR_LOOPBACK -#define INADDR_LOOPBACK 0x7f000001 -#endif - -#ifndef INADDR_NONE -#define INADDR_NONE 0xffffffff -#endif - -#ifndef EAFNOSUPPORT -#define EAFNOSUPPORT EINVAL -#endif - -#ifndef INET_ADDRSTRLEN -#define INET_ADDRSTRLEN 16 -#endif - -#ifndef INET6_ADDRSTRLEN -#define INET6_ADDRSTRLEN 46 -#endif - -#ifndef HOST_NAME_MAX -#define HOST_NAME_MAX 256 -#endif - -#ifndef HAVE_SA_FAMILY_T -#define HAVE_SA_FAMILY_T -typedef unsigned short int sa_family_t; -#endif - -#ifndef HAVE_STRUCT_SOCKADDR_STORAGE -#define HAVE_STRUCT_SOCKADDR_STORAGE -#ifdef HAVE_STRUCT_SOCKADDR_IN6 -#define sockaddr_storage sockaddr_in6 -#define ss_family sin6_family -#define HAVE_SS_FAMILY 1 -#else -#define sockaddr_storage sockaddr_in -#define ss_family sin_family -#define HAVE_SS_FAMILY 1 -#endif -#endif - -#ifndef HAVE_SS_FAMILY -#ifdef HAVE___SS_FAMILY -#define ss_family __ss_family -#define HAVE_SS_FAMILY 1 -#endif -#endif - -#ifndef HAVE_STRUCT_ADDRINFO -#define HAVE_STRUCT_ADDRINFO -struct addrinfo { -	int			ai_flags; -	int			ai_family; -	int			ai_socktype; -	int			ai_protocol; -	socklen_t		ai_addrlen; -	struct sockaddr 	*ai_addr; -	char			*ai_canonname; -	struct addrinfo		*ai_next; -}; -#endif   /* HAVE_STRUCT_ADDRINFO */ - -#if !defined(HAVE_GETADDRINFO) -#include "getaddrinfo.h" -#endif - -/* Needed for some systems that don't define it (Solaris). */ -#ifndef ifr_netmask -#define ifr_netmask ifr_addr -#endif - -#ifdef SOCKET_WRAPPER -#ifndef SOCKET_WRAPPER_NOT_REPLACE -#define SOCKET_WRAPPER_REPLACE -#endif -#include "lib/socket_wrapper/socket_wrapper.h" -#endif - -#endif diff --git a/source3/lib/replace/system/passwd.h b/source3/lib/replace/system/passwd.h deleted file mode 100644 index cad3197ccb..0000000000 --- a/source3/lib/replace/system/passwd.h +++ /dev/null @@ -1,110 +0,0 @@ -#ifndef _system_passwd_h -#define _system_passwd_h - -/*  -   Unix SMB/CIFS implementation. - -   passwd system include wrappers - -   Copyright (C) Andrew Tridgell 2004 -    -     ** 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/>. - -*/ - -/* this needs to be included before nss_wrapper.h on some systems */ -#include <unistd.h> - -#ifdef HAVE_PWD_H -#include <pwd.h> -#endif -#ifdef HAVE_GRP_H -#include <grp.h> -#endif -#ifdef HAVE_SYS_PRIV_H -#include <sys/priv.h> -#endif -#ifdef HAVE_SYS_ID_H -#include <sys/id.h> -#endif - -#ifdef HAVE_CRYPT_H -#include <crypt.h> -#endif - -#ifdef HAVE_SHADOW_H -#include <shadow.h> -#endif - -#ifdef HAVE_SYS_SECURITY_H -#include <sys/security.h> -#include <prot.h> -#define PASSWORD_LENGTH 16 -#endif  /* HAVE_SYS_SECURITY_H */ - -#ifdef HAVE_GETPWANAM -#include <sys/label.h> -#include <sys/audit.h> -#include <pwdadj.h> -#endif - -#ifdef HAVE_COMPAT_H -#include <compat.h> -#endif - -#ifdef REPLACE_GETPASS -#if defined(REPLACE_GETPASS_BY_GETPASSPHRASE) -#define getpass(prompt) getpassphrase(prompt) -#else -#define getpass(prompt) rep_getpass(prompt) -char *rep_getpass(const char *prompt); -#endif -#endif - -#ifndef NGROUPS_MAX -#define NGROUPS_MAX 32 /* Guess... */ -#endif - -/* what is the longest significant password available on your system?  - Knowing this speeds up password searches a lot */ -#ifndef PASSWORD_LENGTH -#define PASSWORD_LENGTH 8 -#endif - -#if defined(HAVE_PUTPRPWNAM) && defined(AUTH_CLEARTEXT_SEG_CHARS) -#define OSF1_ENH_SEC 1 -#endif - -#ifndef ALLOW_CHANGE_PASSWORD -#if (defined(HAVE_TERMIOS_H) && defined(HAVE_DUP2) && defined(HAVE_SETSID)) -#define ALLOW_CHANGE_PASSWORD 1 -#endif -#endif - -#if defined(HAVE_CRYPT16) && defined(HAVE_GETAUTHUID) -#define ULTRIX_AUTH 1 -#endif - -#ifdef NSS_WRAPPER -#ifndef NSS_WRAPPER_NOT_REPLACE -#define NSS_WRAPPER_REPLACE -#endif -#include "lib/nss_wrapper/nss_wrapper.h" -#endif - -#endif diff --git a/source3/lib/replace/system/readline.h b/source3/lib/replace/system/readline.h deleted file mode 100644 index ba34dc6a61..0000000000 --- a/source3/lib/replace/system/readline.h +++ /dev/null @@ -1,52 +0,0 @@ -#ifndef _system_readline_h -#define _system_readline_h -/*  -   Unix SMB/CIFS implementation. - -   Readline wrappers -    -     ** 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/>. - -*/ - -#ifdef HAVE_LIBREADLINE -#  ifdef HAVE_READLINE_READLINE_H -#    include <readline/readline.h> -#    ifdef HAVE_READLINE_HISTORY_H -#      include <readline/history.h> -#    endif -#  else -#    ifdef HAVE_READLINE_H -#      include <readline.h> -#      ifdef HAVE_HISTORY_H -#        include <history.h> -#      endif -#    else -#      undef HAVE_LIBREADLINE -#    endif -#  endif -#endif - -#ifdef HAVE_NEW_LIBREADLINE -#  define RL_COMPLETION_CAST (rl_completion_func_t *) -#else -/* This type is missing from libreadline<4.0  (approximately) */ -#  define RL_COMPLETION_CAST -#endif /* HAVE_NEW_LIBREADLINE */ - -#endif diff --git a/source3/lib/replace/system/select.h b/source3/lib/replace/system/select.h deleted file mode 100644 index da18de0cfc..0000000000 --- a/source3/lib/replace/system/select.h +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef _system_select_h -#define _system_select_h -/*  -   Unix SMB/CIFS implementation. - -   select system include wrappers - -   Copyright (C) Andrew Tridgell 2004 -    -     ** 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/>. - -*/ - -#ifdef HAVE_SYS_SELECT_H -#include <sys/select.h> -#endif - -#ifdef HAVE_SYS_EPOLL_H -#include <sys/epoll.h> -#endif - -#ifndef SELECT_CAST -#define SELECT_CAST -#endif - -#endif diff --git a/source3/lib/replace/system/shmem.h b/source3/lib/replace/system/shmem.h deleted file mode 100644 index 64fe39b6cb..0000000000 --- a/source3/lib/replace/system/shmem.h +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef _system_shmem_h -#define _system_shmem_h -/*  -   Unix SMB/CIFS implementation. - -   shared memory system include wrappers - -   Copyright (C) Andrew Tridgell 2004 -    -     ** 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/>. - -*/ - -#if defined(HAVE_SYS_IPC_H) -#include <sys/ipc.h> -#endif /* HAVE_SYS_IPC_H */ - -#if defined(HAVE_SYS_SHM_H) -#include <sys/shm.h> -#endif /* HAVE_SYS_SHM_H */ - -#ifdef HAVE_SYS_MMAN_H -#include <sys/mman.h> -#endif - -/* NetBSD doesn't have these */ -#ifndef SHM_R -#define SHM_R 0400 -#endif - -#ifndef SHM_W -#define SHM_W 0200 -#endif - - -#ifndef MAP_FILE -#define MAP_FILE 0 -#endif - -#ifndef MAP_FAILED -#define MAP_FAILED ((void *)-1) -#endif - -#endif diff --git a/source3/lib/replace/system/syslog.h b/source3/lib/replace/system/syslog.h deleted file mode 100644 index 104be1df84..0000000000 --- a/source3/lib/replace/system/syslog.h +++ /dev/null @@ -1,70 +0,0 @@ -#ifndef _system_syslog_h -#define _system_syslog_h -/*  -   Unix SMB/CIFS implementation. - -   syslog system include wrappers - -   Copyright (C) Andrew Tridgell 2004 -    -     ** 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/>. - -*/ - -#ifdef HAVE_SYSLOG_H -#include <syslog.h> -#else -#ifdef HAVE_SYS_SYSLOG_H -#include <sys/syslog.h> -#endif -#endif - -/* For sys_adminlog(). */ -#ifndef LOG_EMERG -#define LOG_EMERG       0       /* system is unusable */ -#endif - -#ifndef LOG_ALERT -#define LOG_ALERT       1       /* action must be taken immediately */ -#endif - -#ifndef LOG_CRIT -#define LOG_CRIT        2       /* critical conditions */ -#endif - -#ifndef LOG_ERR -#define LOG_ERR         3       /* error conditions */ -#endif - -#ifndef LOG_WARNING -#define LOG_WARNING     4       /* warning conditions */ -#endif - -#ifndef LOG_NOTICE -#define LOG_NOTICE      5       /* normal but significant condition */ -#endif - -#ifndef LOG_INFO -#define LOG_INFO        6       /* informational */ -#endif - -#ifndef LOG_DEBUG -#define LOG_DEBUG       7       /* debug-level messages */ -#endif - -#endif diff --git a/source3/lib/replace/system/terminal.h b/source3/lib/replace/system/terminal.h deleted file mode 100644 index 9ad601ace0..0000000000 --- a/source3/lib/replace/system/terminal.h +++ /dev/null @@ -1,46 +0,0 @@ -#ifndef _system_terminal_h -#define _system_terminal_h -/*  -   Unix SMB/CIFS implementation. - -   terminal system include wrappers - -   Copyright (C) Andrew Tridgell 2004 -    -     ** 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/>. - -*/ - -#ifdef SUNOS4 -/* on SUNOS4 termios.h conflicts with sys/ioctl.h */ -#undef HAVE_TERMIOS_H -#endif - - -#if defined(HAVE_TERMIOS_H) -/* POSIX terminal handling. */ -#include <termios.h> -#elif defined(HAVE_TERMIO_H) -/* Older SYSV terminal handling - don't use if we can avoid it. */ -#include <termio.h> -#elif defined(HAVE_SYS_TERMIO_H) -/* Older SYSV terminal handling - don't use if we can avoid it. */ -#include <sys/termio.h> -#endif - -#endif diff --git a/source3/lib/replace/system/time.h b/source3/lib/replace/system/time.h deleted file mode 100644 index 4abf295d1a..0000000000 --- a/source3/lib/replace/system/time.h +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef _system_time_h -#define _system_time_h -/*  -   Unix SMB/CIFS implementation. - -   time system include wrappers - -   Copyright (C) Andrew Tridgell 2004 - -     ** 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/>. - -*/ - -#ifdef TIME_WITH_SYS_TIME -#include <sys/time.h> -#include <time.h> -#else -#ifdef HAVE_SYS_TIME_H -#include <sys/time.h> -#else -#include <time.h> -#endif -#endif - -#ifdef HAVE_UTIME_H -#include <utime.h> -#else -struct utimbuf { -	time_t actime;       /* access time */ -	time_t modtime;      /* modification time */ -}; -#endif - -#ifndef HAVE_MKTIME -/* define is in "replace.h" */ -time_t rep_mktime(struct tm *t); -#endif - -#ifndef HAVE_TIMEGM -/* define is in "replace.h" */ -time_t rep_timegm(struct tm *tm); -#endif - -#ifndef HAVE_UTIME -/* define is in "replace.h" */ -int rep_utime(const char *filename, const struct utimbuf *buf); -#endif - -#ifndef HAVE_UTIMES -/* define is in "replace.h" */ -int rep_utimes(const char *filename, const struct timeval tv[2]); -#endif - -#endif diff --git a/source3/lib/replace/system/wait.h b/source3/lib/replace/system/wait.h deleted file mode 100644 index 5784b1ae92..0000000000 --- a/source3/lib/replace/system/wait.h +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef _system_wait_h -#define _system_wait_h -/*  -   Unix SMB/CIFS implementation. - -   waitpid system include wrappers - -   Copyright (C) Andrew Tridgell 2004 - -     ** 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/>. - -*/ - -#ifdef HAVE_SYS_WAIT_H -#include <sys/wait.h> -#endif - -#include <signal.h> - -#ifndef SIGCLD -#define SIGCLD SIGCHLD -#endif - -#ifndef SIGNAL_CAST -#define SIGNAL_CAST (RETSIGTYPE (*)(int)) -#endif - -#ifdef HAVE_SETJMP_H -#include <setjmp.h> -#endif - -#ifndef SA_RESETHAND -#define SA_RESETHAND SA_ONESHOT -#endif - -#if !defined(HAVE_SIG_ATOMIC_T_TYPE) -typedef int sig_atomic_t; -#endif - -#endif diff --git a/source3/lib/replace/test/getifaddrs.c b/source3/lib/replace/test/getifaddrs.c deleted file mode 100644 index 8b00ac2f40..0000000000 --- a/source3/lib/replace/test/getifaddrs.c +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Unix SMB/CIFS implementation. - * - * libreplace getifaddrs test - * - * Copyright (C) Michael Adam <obnox@samba.org> 2008 - * - *  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 3 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, see <http://www.gnu.org/licenses/>. - */ - -#ifndef AUTOCONF_TEST -#include "replace.h" -#include "system/network.h" -#endif - -#ifdef HAVE_INET_NTOP -#define rep_inet_ntop inet_ntop -#endif - -static const char *format_sockaddr(struct sockaddr *addr, -				   char *addrstring, -				   socklen_t addrlen) -{ -	const char *result = NULL; - -	if (addr->sa_family == AF_INET) { -		result = rep_inet_ntop(AF_INET, -				       &((struct sockaddr_in *)addr)->sin_addr, -				       addrstring, -				       addrlen); -#ifdef HAVE_STRUCT_SOCKADDR_IN6 -	} else if (addr->sa_family == AF_INET6) { -		result = rep_inet_ntop(AF_INET6, -				       &((struct sockaddr_in6 *)addr)->sin6_addr, -				       addrstring, -				       addrlen); -#endif -	} -	return result; -} - -int getifaddrs_test(void) -{ -	struct ifaddrs *ifs = NULL; -	struct ifaddrs *ifs_head = NULL; -	int ret; - -	ret = getifaddrs(&ifs); -	ifs_head = ifs; -	if (ret != 0) { -		fprintf(stderr, "getifaddrs() failed: %s\n", strerror(errno)); -		return 1; -	} - -	while (ifs) { -		printf("%-10s ", ifs->ifa_name); -		if (ifs->ifa_addr != NULL) { -			char addrstring[INET6_ADDRSTRLEN]; -			const char *result; - -			result = format_sockaddr(ifs->ifa_addr, -						 addrstring, -						 sizeof(addrstring)); -			if (result != NULL) { -				printf("IP=%s ", addrstring); -			} - -			if (ifs->ifa_netmask != NULL) { -				result = format_sockaddr(ifs->ifa_netmask, -							 addrstring, -							 sizeof(addrstring)); -				if (result != NULL) { -					printf("NETMASK=%s", addrstring); -				} -			} else { -				printf("AF=%d ", ifs->ifa_addr->sa_family); -			} -		} else { -			printf("<no address>"); -		} - -		printf("\n"); -		ifs = ifs->ifa_next; -	} - -	freeifaddrs(ifs_head); - -	return 0; -} diff --git a/source3/lib/replace/test/os2_delete.c b/source3/lib/replace/test/os2_delete.c deleted file mode 100644 index b45c135355..0000000000 --- a/source3/lib/replace/test/os2_delete.c +++ /dev/null @@ -1,124 +0,0 @@ -/* -  test readdir/unlink pattern that OS/2 uses -  tridge@samba.org July 2005 -*/ - -#include <stdio.h> -#include <stdlib.h> -#include <sys/stat.h> -#include <unistd.h> -#include <sys/types.h> -#include <dirent.h> -#include <errno.h> -#include <string.h> -#include <fcntl.h> - -#define NUM_FILES 700 -#define READDIR_SIZE 100 -#define DELETE_SIZE 4 - -#define TESTDIR "test.dir" - -static int test_readdir_os2_delete_ret; - -#define FAILED(d) (printf("failure: readdir [\nFailed for %s - %d = %s\n]\n", d, errno, strerror(errno)), test_readdir_os2_delete_ret = 1, 1) - -#ifndef MIN -#define MIN(a,b) ((a)<(b)?(a):(b)) -#endif - -static void cleanup(void) -{ -	/* I'm a lazy bastard */ -	system("rm -rf " TESTDIR); -	mkdir(TESTDIR, 0700) == 0 || FAILED("mkdir"); -} - -static void create_files(void) -{ -	int i; -	for (i=0;i<NUM_FILES;i++) { -		char fname[40]; -		int fd; -		sprintf(fname, TESTDIR "/test%u.txt", i); -		fd = open(fname, O_CREAT|O_RDWR, 0600); -		if (fd < 0) { -			FAILED("open"); -		} -		if (close(fd) != 0) { -			FAILED("close"); -		} -	} -} - -static int os2_delete(DIR *d) -{ -	off_t offsets[READDIR_SIZE]; -	int i, j; -	struct dirent *de; -	char names[READDIR_SIZE][30]; - -	/* scan, remembering offsets */ -	for (i=0, de=readdir(d);  -	     de && i < READDIR_SIZE;  -	     de=readdir(d), i++) { -		offsets[i] = telldir(d); -		strcpy(names[i], de->d_name); -	} - -	if (i == 0) { -		return 0; -	} - -	/* delete the first few */ -	for (j=0; j<MIN(i, DELETE_SIZE); j++) { -		char fname[40]; -		sprintf(fname, TESTDIR "/%s", names[j]); -		unlink(fname) == 0 || FAILED("unlink"); -	} - -	/* seek to just after the deletion */ -	seekdir(d, offsets[j-1]); - -	/* return number deleted */ -	return j; -} - -int test_readdir_os2_delete(void) -{ -	int total_deleted = 0; -	DIR *d; -	struct dirent *de; - -	test_readdir_os2_delete_ret = 0; - -	cleanup(); -	create_files(); - -	d = opendir(TESTDIR "/test0.txt"); -	if (d != NULL) FAILED("opendir() on file succeed"); -	if (errno != ENOTDIR) FAILED("opendir() on file didn't give ENOTDIR"); - -	d = opendir(TESTDIR); - -	/* skip past . and .. */ -	de = readdir(d); -	strcmp(de->d_name, ".") == 0 || FAILED("match ."); -	de = readdir(d); -	strcmp(de->d_name, "..") == 0 || FAILED("match .."); - -	while (1) { -		int n = os2_delete(d); -		if (n == 0) break; -		total_deleted += n; -	} -	closedir(d); - -	fprintf(stderr, "Deleted %d files of %d\n", total_deleted, NUM_FILES); - -	rmdir(TESTDIR) == 0 || FAILED("rmdir"); - -	system("rm -rf " TESTDIR); - -	return test_readdir_os2_delete_ret; -} diff --git a/source3/lib/replace/test/shared_mmap.c b/source3/lib/replace/test/shared_mmap.c deleted file mode 100644 index 50dad8d696..0000000000 --- a/source3/lib/replace/test/shared_mmap.c +++ /dev/null @@ -1,68 +0,0 @@ -/* this tests whether we can use a shared writeable mmap on a file - -   as needed for the mmap variant of FAST_SHARE_MODES */ - -#if defined(HAVE_UNISTD_H) -#include <unistd.h> -#endif -#include <sys/mman.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <fcntl.h> - -#define DATA "conftest.mmap" - -#ifndef MAP_FILE -#define MAP_FILE 0 -#endif - -main() -{ -	int *buf; -	int i;  -	int fd = open(DATA,O_RDWR|O_CREAT|O_TRUNC,0666); -	int count=7; - -	if (fd == -1) exit(1); - -	for (i=0;i<10000;i++) { -		write(fd,&i,sizeof(i)); -	} - -	close(fd); - -	if (fork() == 0) { -		fd = open(DATA,O_RDWR); -		if (fd == -1) exit(1); - -		buf = (int *)mmap(NULL, 10000*sizeof(int),  -				   (PROT_READ | PROT_WRITE),  -				   MAP_FILE | MAP_SHARED,  -				   fd, 0); - -		while (count-- && buf[9124] != 55732) sleep(1); - -		if (count <= 0) exit(1); - -		buf[1763] = 7268; -		exit(0); -	} - -	fd = open(DATA,O_RDWR); -	if (fd == -1) exit(1); - -	buf = (int *)mmap(NULL, 10000*sizeof(int),  -			   (PROT_READ | PROT_WRITE),  -			   MAP_FILE | MAP_SHARED,  -			   fd, 0); - -	if (buf == (int *)-1) exit(1); - -	buf[9124] = 55732; - -	while (count-- && buf[1763] != 7268) sleep(1); - -	unlink(DATA); -		 -	if (count > 0) exit(0); -	exit(1); -} diff --git a/source3/lib/replace/test/strptime.c b/source3/lib/replace/test/strptime.c deleted file mode 100644 index fade3ecc57..0000000000 --- a/source3/lib/replace/test/strptime.c +++ /dev/null @@ -1,172 +0,0 @@ - -#ifdef LIBREPLACE_CONFIGURE_TEST_STRPTIME - -#include <stdio.h> -#include <stdlib.h> -#include <time.h> - -#define true 1 -#define false 0 - -#ifndef __STRING -#define __STRING(x)    #x -#endif - -/* make printf a no-op */ -#define printf if(0) printf - -#else /* LIBREPLACE_CONFIGURE_TEST_STRPTIME */ - -#include "replace.h" -#include "system/time.h" - -#endif /* LIBREPLACE_CONFIGURE_TEST_STRPTIME */ - -int libreplace_test_strptime(void) -{ -	const char *s = "20070414101546Z"; -	char *ret; -	struct tm t, t2; - -	memset(&t, 0, sizeof(t)); -	memset(&t2, 0, sizeof(t2)); - -	printf("test: strptime\n"); - -	ret = strptime(s, "%Y%m%d%H%M%S", &t); -	if ( ret == NULL ) { -		printf("failure: strptime [\n" -		       "returned NULL\n" -		       "]\n"); -		return false; -	} - -	if ( *ret != 'Z' ) { -		printf("failure: strptime [\n" -		       "ret doesn't point to 'Z'\n" -		       "]\n"); -		return false; -	} - -	ret = strptime(s, "%Y%m%d%H%M%SZ", &t2); -	if ( ret == NULL ) { -		printf("failure: strptime [\n" -		       "returned NULL with Z\n" -		       "]\n"); -		return false; -	} - -	if ( *ret != '\0' ) { -		printf("failure: strptime [\n" -		       "ret doesn't point to '\\0'\n" -		       "]\n"); -		return false; -	} - -#define CMP_TM_ELEMENT(t1,t2,elem) \ -	if (t1.elem != t2.elem) { \ -		printf("failure: strptime [\n" \ -		       "result differs if the format string has a 'Z' at the end\n" \ -		       "element: %s %d != %d\n" \ -		       "]\n", \ -		       __STRING(elen), t1.elem, t2.elem); \ -		return false; \ -	} - -	CMP_TM_ELEMENT(t,t2,tm_sec); -	CMP_TM_ELEMENT(t,t2,tm_min); -	CMP_TM_ELEMENT(t,t2,tm_hour); -	CMP_TM_ELEMENT(t,t2,tm_mday); -	CMP_TM_ELEMENT(t,t2,tm_mon); -	CMP_TM_ELEMENT(t,t2,tm_year); -	CMP_TM_ELEMENT(t,t2,tm_wday); -	CMP_TM_ELEMENT(t,t2,tm_yday); -	CMP_TM_ELEMENT(t,t2,tm_isdst); - -	if (t.tm_sec != 46) { -		printf("failure: strptime [\n" -		       "tm_sec: expected: 46, got: %d\n" -		       "]\n", -		       t.tm_sec); -		return false; -	} - -	if (t.tm_min != 15) { -		printf("failure: strptime [\n" -		       "tm_min: expected: 15, got: %d\n" -		       "]\n", -		       t.tm_min); -		return false; -	} - -	if (t.tm_hour != 10) { -		printf("failure: strptime [\n" -		       "tm_hour: expected: 10, got: %d\n" -		       "]\n", -		       t.tm_hour); -		return false; -	} - -	if (t.tm_mday != 14) { -		printf("failure: strptime [\n" -		       "tm_mday: expected: 14, got: %d\n" -		       "]\n", -		       t.tm_mday); -		return false; -	} - -	if (t.tm_mon != 3) { -		printf("failure: strptime [\n" -		       "tm_mon: expected: 3, got: %d\n" -		       "]\n", -		       t.tm_mon); -		return false; -	} - -	if (t.tm_year != 107) { -		printf("failure: strptime [\n" -		       "tm_year: expected: 107, got: %d\n" -		       "]\n", -		       t.tm_year); -		return false; -	} - -	if (t.tm_wday != 6) { /* saturday */ -		printf("failure: strptime [\n" -		       "tm_wday: expected: 6, got: %d\n" -		       "]\n", -		       t.tm_wday); -		return false; -	} - -	if (t.tm_yday != 103) { -		printf("failure: strptime [\n" -		       "tm_yday: expected: 103, got: %d\n" -		       "]\n", -		       t.tm_yday); -		return false; -	} - -	/* we don't test this as it depends on the host configuration -	if (t.tm_isdst != 0) { -		printf("failure: strptime [\n" -		       "tm_isdst: expected: 0, got: %d\n" -		       "]\n", -		       t.tm_isdst); -		return false; -	}*/ - -	printf("success: strptime\n"); - -	return true; -} - -#ifdef LIBREPLACE_CONFIGURE_TEST_STRPTIME -int main (void) -{ -	int ret; -	ret = libreplace_test_strptime(); -	if (ret == false) return 1; -	return 0; -} -#endif diff --git a/source3/lib/replace/test/testsuite.c b/source3/lib/replace/test/testsuite.c deleted file mode 100644 index 1e8290906e..0000000000 --- a/source3/lib/replace/test/testsuite.c +++ /dev/null @@ -1,1080 +0,0 @@ -/*  -   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" - -/* -  we include all the system/ include files here so that libreplace tests -  them in the build farm -*/ -#include "system/capability.h" -#include "system/dir.h" -#include "system/filesys.h" -#include "system/glob.h" -#include "system/iconv.h" -#include "system/locale.h" -#include "system/network.h" -#include "system/passwd.h" -#include "system/readline.h" -#include "system/select.h" -#include "system/shmem.h" -#include "system/syslog.h" -#include "system/terminal.h" -#include "system/time.h" -#include "system/wait.h" -#include "system/aio.h" - -#define TESTFILE "testfile.dat" - -/* -  test ftruncate() function - */ -static int test_ftruncate(void) -{ -	struct stat st; -	int fd; -	const int size = 1234; -	printf("test: ftruncate\n"); -	unlink(TESTFILE); -	fd = open(TESTFILE, O_RDWR|O_CREAT, 0600); -	if (fd == -1) { -		printf("failure: ftruncate [\n" -			   "creating '%s' failed - %s\n]\n", TESTFILE, strerror(errno)); -		return false; -	} -	if (ftruncate(fd, size) != 0) { -		printf("failure: ftruncate [\n%s\n]\n", strerror(errno)); -		return false; -	} -	if (fstat(fd, &st) != 0) { -		printf("failure: ftruncate [\nfstat failed - %s\n]\n", strerror(errno)); -		return false; -	} -	if (st.st_size != size) { -		printf("failure: ftruncate [\ngave wrong size %d - expected %d\n]\n", -		       (int)st.st_size, size); -		return false; -	} -	unlink(TESTFILE); -	printf("success: ftruncate\n"); -	return true; -} - -/* -  test strlcpy() function. -  see http://www.gratisoft.us/todd/papers/strlcpy.html - */ -static int test_strlcpy(void) -{ -	char buf[4]; -	const struct { -		const char *src; -		size_t result; -	} tests[] = { -		{ "abc", 3 }, -		{ "abcdef", 6 }, -		{ "abcd", 4 }, -		{ "", 0 }, -		{ NULL, 0 } -	}; -	int i; -	printf("test: strlcpy\n"); -	for (i=0;tests[i].src;i++) { -		if (strlcpy(buf, tests[i].src, sizeof(buf)) != tests[i].result) { -			printf("failure: strlcpy [\ntest %d failed\n]\n", i); -			return false; -		} -	} -	printf("success: strlcpy\n"); -	return true; -} - -static int test_strlcat(void) -{ -	char tmp[10]; -	printf("test: strlcat\n"); -	strlcpy(tmp, "", sizeof(tmp)); -	if (strlcat(tmp, "bla", 3) != 3) { -		printf("failure: strlcat [\ninvalid return code\n]\n"); -		return false; -	} -	if (strcmp(tmp, "bl") != 0) { -		printf("failure: strlcat [\nexpected \"bl\", got \"%s\"\n]\n",  -			   tmp); -		return false; -	} - -	strlcpy(tmp, "da", sizeof(tmp)); -	if (strlcat(tmp, "me", 4) != 4) { -		printf("failure: strlcat [\nexpected \"dam\", got \"%s\"\n]\n", -			   tmp); -		return false; -	} - -	printf("success: strlcat\n"); -	return true; -} - -static int test_mktime(void) -{ -	/* FIXME */ -	return true; -} - -static int test_initgroups(void) -{ -	/* FIXME */ -	return true; -} - -static int test_memmove(void) -{ -	/* FIXME */ -	return true; -} - -static int test_strdup(void) -{ -	char *x; -	printf("test: strdup\n"); -	x = strdup("bla"); -	if (strcmp("bla", x) != 0) { -		printf("failure: strdup [\nfailed: expected \"bla\", got \"%s\"\n]\n", -			   x); -		return false; -	} -	free(x); -	printf("success: strdup\n"); -	return true; -}	 - -static int test_setlinebuf(void) -{ -	printf("test: setlinebuf\n"); -	setlinebuf(stdout); -	printf("success: setlinebuf\n"); -	return true; -} - -static int test_vsyslog(void) -{ -	/* FIXME */ -	return true; -} - -static int test_timegm(void) -{ -	/* FIXME */ -	return true; -} - -static int test_setenv(void) -{ -#define TEST_SETENV(key, value, overwrite, result) do { \ -	int _ret; \ -	char *_v; \ -	_ret = setenv(key, value, overwrite); \ -	if (_ret != 0) { \ -		printf("failure: setenv [\n" \ -			"setenv(%s, %s, %d) failed\n" \ -			"]\n", \ -			key, value, overwrite); \ -		return false; \ -	} \ -	_v=getenv(key); \ -	if (!_v) { \ -		printf("failure: setenv [\n" \ -			"getenv(%s) returned NULL\n" \ -			"]\n", \ -			key); \ -		return false; \ -	} \ -	if (strcmp(result, _v) != 0) { \ -		printf("failure: setenv [\n" \ -			"getenv(%s): '%s' != '%s'\n" \ -			"]\n", \ -			key, result, _v); \ -		return false; \ -	} \ -} while(0) - -#define TEST_UNSETENV(key) do { \ -	char *_v; \ -	unsetenv(key); \ -	_v=getenv(key); \ -	if (_v) { \ -		printf("failure: setenv [\n" \ -			"getenv(%s): NULL != '%s'\n" \ -			"]\n", \ -			SETENVTEST_KEY, _v); \ -		return false; \ -	} \ -} while (0) - -#define SETENVTEST_KEY "SETENVTESTKEY" -#define SETENVTEST_VAL "SETENVTESTVAL" - -	printf("test: setenv\n"); -	TEST_SETENV(SETENVTEST_KEY, SETENVTEST_VAL"1", 0, SETENVTEST_VAL"1"); -	TEST_SETENV(SETENVTEST_KEY, SETENVTEST_VAL"2", 0, SETENVTEST_VAL"1"); -	TEST_SETENV(SETENVTEST_KEY, SETENVTEST_VAL"3", 1, SETENVTEST_VAL"3"); -	TEST_SETENV(SETENVTEST_KEY, SETENVTEST_VAL"4", 1, SETENVTEST_VAL"4"); -	TEST_UNSETENV(SETENVTEST_KEY); -	TEST_UNSETENV(SETENVTEST_KEY); -	TEST_SETENV(SETENVTEST_KEY, SETENVTEST_VAL"5", 0, SETENVTEST_VAL"5"); -	TEST_UNSETENV(SETENVTEST_KEY); -	TEST_UNSETENV(SETENVTEST_KEY); -	printf("success: setenv\n"); -	return true; -} - -static int test_strndup(void) -{ -	char *x; -	printf("test: strndup\n"); -	x = strndup("bla", 0); -	if (strcmp(x, "") != 0) { -		printf("failure: strndup [\ninvalid\n]\n"); -		return false; -	} -	free(x); -	x = strndup("bla", 2); -	if (strcmp(x, "bl") != 0) { -		printf("failure: strndup [\ninvalid\n]\n"); -		return false; -	} -	free(x); -	x = strndup("bla", 10); -	if (strcmp(x, "bla") != 0) { -		printf("failure: strndup [\ninvalid\n]\n"); -		return false; -	} -	free(x); -	printf("success: strndup\n"); -	return true; -} - -static int test_strnlen(void) -{ -	printf("test: strnlen\n"); -	if (strnlen("bla", 2) != 2) { -		printf("failure: strnlen [\nunexpected length\n]\n"); -		return false; -	} - -	if (strnlen("some text\n", 0) != 0) { -		printf("failure: strnlen [\nunexpected length\n]\n"); -		return false; -	} - -	if (strnlen("some text", 20) != 9) { -		printf("failure: strnlen [\nunexpected length\n]\n"); -		return false; -	} - -	printf("success: strnlen\n"); -	return true; -} - -static int test_waitpid(void) -{ -	/* FIXME */ -	return true; -} - -static int test_seteuid(void) -{ -	/* FIXME */ -	return true; -} - -static int test_setegid(void) -{ -	/* FIXME */ -	return true; -} - -static int test_asprintf(void) -{ -	char *x; -	printf("test: asprintf\n"); -	if (asprintf(&x, "%d", 9) != 1) { -		printf("failure: asprintf [\ngenerate asprintf\n]\n"); -		return false; -	} -	if (strcmp(x, "9") != 0) { -		printf("failure: asprintf [\ngenerate asprintf\n]\n"); -		return false; -	} -	if (asprintf(&x, "dat%s", "a") != 4) { -		printf("failure: asprintf [\ngenerate asprintf\n]\n"); -		return false; -	} -	if (strcmp(x, "data") != 0) { -		printf("failure: asprintf [\ngenerate asprintf\n]\n"); -		return false; -	} -	printf("success: asprintf\n"); -	return true; -} - -static int test_snprintf(void) -{ -	char tmp[10]; -	printf("test: snprintf\n"); -	if (snprintf(tmp, 3, "foo%d", 9) != 4) { -		printf("failure: snprintf [\nsnprintf return code failed\n]\n"); -		return false; -	} - -	if (strcmp(tmp, "fo") != 0) { -		printf("failure: snprintf [\nsnprintf failed\n]\n"); -		return false; -	} - -	printf("success: snprintf\n"); -	return true; -} - -static int test_vasprintf(void) -{ -	/* FIXME */ -	return true; -} - -static int test_vsnprintf(void) -{ -	/* FIXME */ -	return true; -} - -static int test_opendir(void) -{ -	/* FIXME */ -	return true; -} - -extern int test_readdir_os2_delete(void); - -static int test_readdir(void) -{ -	printf("test: readdir\n"); -	if (test_readdir_os2_delete() != 0) { -		return false; -	} -	printf("success: readdir\n"); -	return true; -} - -static int test_telldir(void) -{ -	/* FIXME */ -	return true; -} - -static int test_seekdir(void) -{ -	/* FIXME */ -	return true; -} - -static int test_dlopen(void) -{ -	/* FIXME: test dlopen, dlsym, dlclose, dlerror */ -	return true; -} - - -static int test_chroot(void) -{ -	/* FIXME: chroot() */ -	return true; -} - -static int test_bzero(void) -{ -	/* FIXME: bzero */ -	return true; -} - -static int test_strerror(void) -{ -	/* FIXME */ -	return true; -} - -static int test_errno(void) -{ -	printf("test: errno\n"); -	errno = 3; -	if (errno != 3) { -		printf("failure: errno [\nerrno failed\n]\n"); -		return false; -	} - -	printf("success: errno\n"); -	return true; -} - -static int test_mkdtemp(void) -{ -	/* FIXME */ -	return true; -} - -static int test_mkstemp(void) -{ -	/* FIXME */ -	return true; -} - -static int test_pread(void) -{ -	/* FIXME */ -	return true; -} - -static int test_pwrite(void) -{ -	/* FIXME */ -	return true; -} - -static int test_getpass(void) -{ -	/* FIXME */ -	return true; -} - -static int test_inet_ntoa(void) -{ -	/* FIXME */ -	return true; -} - -#define TEST_STRTO_X(type,fmt,func,str,base,res,diff,rrnoo) do {\ -	type _v; \ -	char _s[64]; \ -	char *_p = NULL;\ -	char *_ep = NULL; \ -	strlcpy(_s, str, sizeof(_s));\ -	if (diff >= 0) { \ -		_ep = &_s[diff]; \ -	} \ -	errno = 0; \ -	_v = func(_s, &_p, base); \ -	if (errno != rrnoo) { \ -		printf("failure: %s [\n" \ -		       "\t%s\n" \ -		       "\t%s(\"%s\",%d,%d): " fmt " (=/!)= " fmt "\n" \ -		       "\terrno: %d != %d\n" \ -		       "]\n", \ -		        __STRING(func), __location__, __STRING(func), \ -		       str, diff, base, res, _v, rrnoo, errno); \ -		return false; \ -	} else if (_v != res) { \ -		printf("failure: %s [\n" \ -		       "\t%s\n" \ -		       "\t%s(\"%s\",%d,%d): " fmt " != " fmt "\n" \ -		       "]\n", \ -		       __STRING(func), __location__, __STRING(func), \ -		       str, diff, base, res, _v); \ -		return false; \ -	} else if (_p != _ep) { \ -		printf("failure: %s [\n" \ -		       "\t%s\n" \ -		       "\t%s(\"%s\",%d,%d): " fmt " (=/!)= " fmt "\n" \ -		       "\tptr: %p - %p = %d != %d\n" \ -		       "]\n", \ -		       __STRING(func), __location__, __STRING(func), \ -		       str, diff, base, res, _v, _ep, _p, (int)(diff - (_ep - _p)), diff); \ -		return false; \ -	} \ -} while (0) - -static int test_strtoll(void) -{ -	printf("test: strtoll\n"); - -#define TEST_STRTOLL(str,base,res,diff,errnoo) TEST_STRTO_X(long long int, "%lld", strtoll,str,base,res,diff,errnoo) - -	TEST_STRTOLL("15",	10,	15LL,	2, 0); -	TEST_STRTOLL("  15",	10,	15LL,	4, 0); -	TEST_STRTOLL("15",	0,	15LL,	2, 0); -	TEST_STRTOLL(" 15 ",	0,	15LL,	3, 0); -	TEST_STRTOLL("+15",	10,	15LL,	3, 0); -	TEST_STRTOLL("  +15",	10,	15LL,	5, 0); -	TEST_STRTOLL("+15",	0,	15LL,	3, 0); -	TEST_STRTOLL(" +15 ",	0,	15LL,	4, 0); -	TEST_STRTOLL("-15",	10,	-15LL,	3, 0); -	TEST_STRTOLL("  -15",	10,	-15LL,	5, 0); -	TEST_STRTOLL("-15",	0,	-15LL,	3, 0); -	TEST_STRTOLL(" -15 ",	0,	-15LL,	4, 0); -	TEST_STRTOLL("015",	10,	15LL,	3, 0); -	TEST_STRTOLL("  015",	10,	15LL,	5, 0); -	TEST_STRTOLL("015",	0,	13LL,	3, 0); -	TEST_STRTOLL("  015",	0,	13LL,	5, 0); -	TEST_STRTOLL("0x15",	10,	0LL,	1, 0); -	TEST_STRTOLL("  0x15",	10,	0LL,	3, 0); -	TEST_STRTOLL("0x15",	0,	21LL,	4, 0); -	TEST_STRTOLL("  0x15",	0,	21LL,	6, 0); - -	TEST_STRTOLL("10",	16,	16LL,	2, 0); -	TEST_STRTOLL("  10 ",	16,	16LL,	4, 0); -	TEST_STRTOLL("0x10",	16,	16LL,	4, 0); -	TEST_STRTOLL("0x10",	0,	16LL,	4, 0); -	TEST_STRTOLL(" 0x10 ",	0,	16LL,	5, 0); -	TEST_STRTOLL("+10",	16,	16LL,	3, 0); -	TEST_STRTOLL("  +10 ",	16,	16LL,	5, 0); -	TEST_STRTOLL("+0x10",	16,	16LL,	5, 0); -	TEST_STRTOLL("+0x10",	0,	16LL,	5, 0); -	TEST_STRTOLL(" +0x10 ",	0,	16LL,	6, 0); -	TEST_STRTOLL("-10",	16,	-16LL,	3, 0); -	TEST_STRTOLL("  -10 ",	16,	-16LL,	5, 0); -	TEST_STRTOLL("-0x10",	16,	-16LL,	5, 0); -	TEST_STRTOLL("-0x10",	0,	-16LL,	5, 0); -	TEST_STRTOLL(" -0x10 ",	0,	-16LL,	6, 0); -	TEST_STRTOLL("010",	16,	16LL,	3, 0); -	TEST_STRTOLL("  010 ",	16,	16LL,	5, 0); -	TEST_STRTOLL("-010",	16,	-16LL,	4, 0); - -	TEST_STRTOLL("11",	8,	9LL,	2, 0); -	TEST_STRTOLL("011",	8,	9LL,	3, 0); -	TEST_STRTOLL("011",	0,	9LL,	3, 0); -	TEST_STRTOLL("-11",	8,	-9LL,	3, 0); -	TEST_STRTOLL("-011",	8,	-9LL,	4, 0); -	TEST_STRTOLL("-011",	0,	-9LL,	4, 0); - -	TEST_STRTOLL("011",	8,	9LL,	3, 0); -	TEST_STRTOLL("011",	0,	9LL,	3, 0); -	TEST_STRTOLL("-11",	8,	-9LL,	3, 0); -	TEST_STRTOLL("-011",	8,	-9LL,	4, 0); -	TEST_STRTOLL("-011",	0,	-9LL,	4, 0); - -	TEST_STRTOLL("Text",	0,	0LL,	0, 0); - -	TEST_STRTOLL("9223372036854775807",	10,	9223372036854775807LL,	19, 0); -	TEST_STRTOLL("9223372036854775807",	0,	9223372036854775807LL,	19, 0); -	TEST_STRTOLL("9223372036854775808",	0,	9223372036854775807LL,	19, ERANGE); -	TEST_STRTOLL("9223372036854775808",	10,	9223372036854775807LL,	19, ERANGE); -	TEST_STRTOLL("0x7FFFFFFFFFFFFFFF",	0,	9223372036854775807LL,	18, 0); -	TEST_STRTOLL("0x7FFFFFFFFFFFFFFF",	16,	9223372036854775807LL,	18, 0); -	TEST_STRTOLL("7FFFFFFFFFFFFFFF",	16,	9223372036854775807LL,	16, 0); -	TEST_STRTOLL("0x8000000000000000",	0,	9223372036854775807LL,	18, ERANGE); -	TEST_STRTOLL("0x8000000000000000",	16,	9223372036854775807LL,	18, ERANGE); -	TEST_STRTOLL("80000000000000000",	16,	9223372036854775807LL,	17, ERANGE); -	TEST_STRTOLL("0777777777777777777777",	0,	9223372036854775807LL,	22, 0); -	TEST_STRTOLL("0777777777777777777777",	8,	9223372036854775807LL,	22, 0); -	TEST_STRTOLL("777777777777777777777",	8,	9223372036854775807LL,	21, 0); -	TEST_STRTOLL("01000000000000000000000",	0,	9223372036854775807LL,	23, ERANGE); -	TEST_STRTOLL("01000000000000000000000",	8,	9223372036854775807LL,	23, ERANGE); -	TEST_STRTOLL("1000000000000000000000",	8,	9223372036854775807LL,	22, ERANGE); - -	TEST_STRTOLL("-9223372036854775808",	10,	-9223372036854775807LL -1,	20, 0); -	TEST_STRTOLL("-9223372036854775808",	0,	-9223372036854775807LL -1,	20, 0); -	TEST_STRTOLL("-9223372036854775809",	0,	-9223372036854775807LL -1,	20, ERANGE); -	TEST_STRTOLL("-9223372036854775809",	10,	-9223372036854775807LL -1,	20, ERANGE); -	TEST_STRTOLL("-0x8000000000000000",	0,	-9223372036854775807LL -1,	19, 0); -	TEST_STRTOLL("-0x8000000000000000",	16,	-9223372036854775807LL -1,	19, 0); -	TEST_STRTOLL("-8000000000000000",	16,	-9223372036854775807LL -1,	17, 0); -	TEST_STRTOLL("-0x8000000000000001",	0,	-9223372036854775807LL -1,	19, ERANGE); -	TEST_STRTOLL("-0x8000000000000001",	16,	-9223372036854775807LL -1,	19, ERANGE); -	TEST_STRTOLL("-80000000000000001",	16,	-9223372036854775807LL -1,	18, ERANGE); -	TEST_STRTOLL("-01000000000000000000000",0,	-9223372036854775807LL -1,	24, 0); -	TEST_STRTOLL("-01000000000000000000000",8,	-9223372036854775807LL -1,	24, 0); -	TEST_STRTOLL("-1000000000000000000000",	8,	-9223372036854775807LL -1,	23, 0); -	TEST_STRTOLL("-01000000000000000000001",0,	-9223372036854775807LL -1,	24, ERANGE); -	TEST_STRTOLL("-01000000000000000000001",8,	-9223372036854775807LL -1,	24, ERANGE); -	TEST_STRTOLL("-1000000000000000000001",	8,	-9223372036854775807LL -1,	23, ERANGE); - -	printf("success: strtoll\n"); -	return true; -} - -static int test_strtoull(void) -{ -	printf("test: strtoull\n"); - -#define TEST_STRTOULL(str,base,res,diff,errnoo) TEST_STRTO_X(long long unsigned int,"%llu",strtoull,str,base,res,diff,errnoo) - -	TEST_STRTOULL("15",	10,	15LLU,	2, 0); -	TEST_STRTOULL("  15",	10,	15LLU,	4, 0); -	TEST_STRTOULL("15",	0,	15LLU,	2, 0); -	TEST_STRTOULL(" 15 ",	0,	15LLU,	3, 0); -	TEST_STRTOULL("+15",	10,	15LLU,	3, 0); -	TEST_STRTOULL("  +15",	10,	15LLU,	5, 0); -	TEST_STRTOULL("+15",	0,	15LLU,	3, 0); -	TEST_STRTOULL(" +15 ",	0,	15LLU,	4, 0); -	TEST_STRTOULL("-15",	10,	18446744073709551601LLU,	3, 0); -	TEST_STRTOULL("  -15",	10,	18446744073709551601LLU,	5, 0); -	TEST_STRTOULL("-15",	0,	18446744073709551601LLU,	3, 0); -	TEST_STRTOULL(" -15 ",	0,	18446744073709551601LLU,	4, 0); -	TEST_STRTOULL("015",	10,	15LLU,	3, 0); -	TEST_STRTOULL("  015",	10,	15LLU,	5, 0); -	TEST_STRTOULL("015",	0,	13LLU,	3, 0); -	TEST_STRTOULL("  015",	0,	13LLU,	5, 0); -	TEST_STRTOULL("0x15",	10,	0LLU,	1, 0); -	TEST_STRTOULL("  0x15",	10,	0LLU,	3, 0); -	TEST_STRTOULL("0x15",	0,	21LLU,	4, 0); -	TEST_STRTOULL("  0x15",	0,	21LLU,	6, 0); - -	TEST_STRTOULL("10",	16,	16LLU,	2, 0); -	TEST_STRTOULL("  10 ",	16,	16LLU,	4, 0); -	TEST_STRTOULL("0x10",	16,	16LLU,	4, 0); -	TEST_STRTOULL("0x10",	0,	16LLU,	4, 0); -	TEST_STRTOULL(" 0x10 ",	0,	16LLU,	5, 0); -	TEST_STRTOULL("+10",	16,	16LLU,	3, 0); -	TEST_STRTOULL("  +10 ",	16,	16LLU,	5, 0); -	TEST_STRTOULL("+0x10",	16,	16LLU,	5, 0); -	TEST_STRTOULL("+0x10",	0,	16LLU,	5, 0); -	TEST_STRTOULL(" +0x10 ",	0,	16LLU,	6, 0); -	TEST_STRTOULL("-10",	16,	-16LLU,	3, 0); -	TEST_STRTOULL("  -10 ",	16,	-16LLU,	5, 0); -	TEST_STRTOULL("-0x10",	16,	-16LLU,	5, 0); -	TEST_STRTOULL("-0x10",	0,	-16LLU,	5, 0); -	TEST_STRTOULL(" -0x10 ",	0,	-16LLU,	6, 0); -	TEST_STRTOULL("010",	16,	16LLU,	3, 0); -	TEST_STRTOULL("  010 ",	16,	16LLU,	5, 0); -	TEST_STRTOULL("-010",	16,	-16LLU,	4, 0); - -	TEST_STRTOULL("11",	8,	9LLU,	2, 0); -	TEST_STRTOULL("011",	8,	9LLU,	3, 0); -	TEST_STRTOULL("011",	0,	9LLU,	3, 0); -	TEST_STRTOULL("-11",	8,	-9LLU,	3, 0); -	TEST_STRTOULL("-011",	8,	-9LLU,	4, 0); -	TEST_STRTOULL("-011",	0,	-9LLU,	4, 0); - -	TEST_STRTOULL("011",	8,	9LLU,	3, 0); -	TEST_STRTOULL("011",	0,	9LLU,	3, 0); -	TEST_STRTOULL("-11",	8,	-9LLU,	3, 0); -	TEST_STRTOULL("-011",	8,	-9LLU,	4, 0); -	TEST_STRTOULL("-011",	0,	-9LLU,	4, 0); - -	TEST_STRTOULL("Text",	0,	0LLU,	0, 0); - -	TEST_STRTOULL("9223372036854775807",	10,	9223372036854775807LLU,	19, 0); -	TEST_STRTOULL("9223372036854775807",	0,	9223372036854775807LLU,	19, 0); -	TEST_STRTOULL("9223372036854775808",	0,	9223372036854775808LLU,	19, 0); -	TEST_STRTOULL("9223372036854775808",	10,	9223372036854775808LLU,	19, 0); -	TEST_STRTOULL("0x7FFFFFFFFFFFFFFF",	0,	9223372036854775807LLU,	18, 0); -	TEST_STRTOULL("0x7FFFFFFFFFFFFFFF",	16,	9223372036854775807LLU,	18, 0); -	TEST_STRTOULL("7FFFFFFFFFFFFFFF",	16,	9223372036854775807LLU,	16, 0); -	TEST_STRTOULL("0x8000000000000000",	0,	9223372036854775808LLU,	18, 0); -	TEST_STRTOULL("0x8000000000000000",	16,	9223372036854775808LLU,	18, 0); -	TEST_STRTOULL("8000000000000000",	16,	9223372036854775808LLU,	16, 0); -	TEST_STRTOULL("0777777777777777777777",	0,	9223372036854775807LLU,	22, 0); -	TEST_STRTOULL("0777777777777777777777",	8,	9223372036854775807LLU,	22, 0); -	TEST_STRTOULL("777777777777777777777",	8,	9223372036854775807LLU,	21, 0); -	TEST_STRTOULL("01000000000000000000000",0,	9223372036854775808LLU,	23, 0); -	TEST_STRTOULL("01000000000000000000000",8,	9223372036854775808LLU,	23, 0); -	TEST_STRTOULL("1000000000000000000000",	8,	9223372036854775808LLU,	22, 0); - -	TEST_STRTOULL("-9223372036854775808",	10,	9223372036854775808LLU,	20, 0); -	TEST_STRTOULL("-9223372036854775808",	0,	9223372036854775808LLU,	20, 0); -	TEST_STRTOULL("-9223372036854775809",	0,	9223372036854775807LLU,	20, 0); -	TEST_STRTOULL("-9223372036854775809",	10,	9223372036854775807LLU,	20, 0); -	TEST_STRTOULL("-0x8000000000000000",	0,	9223372036854775808LLU,	19, 0); -	TEST_STRTOULL("-0x8000000000000000",	16,	9223372036854775808LLU,	19, 0); -	TEST_STRTOULL("-8000000000000000",	16,	9223372036854775808LLU,	17, 0); -	TEST_STRTOULL("-0x8000000000000001",	0,	9223372036854775807LLU,	19, 0); -	TEST_STRTOULL("-0x8000000000000001",	16,	9223372036854775807LLU,	19, 0); -	TEST_STRTOULL("-8000000000000001",	16,	9223372036854775807LLU,	17, 0); -	TEST_STRTOULL("-01000000000000000000000",0,	9223372036854775808LLU,	24, 0); -	TEST_STRTOULL("-01000000000000000000000",8,	9223372036854775808LLU,	24, 0); -	TEST_STRTOULL("-1000000000000000000000",8,	9223372036854775808LLU,	23, 0); -	TEST_STRTOULL("-01000000000000000000001",0,	9223372036854775807LLU,	24, 0); -	TEST_STRTOULL("-01000000000000000000001",8,	9223372036854775807LLU,	24, 0); -	TEST_STRTOULL("-1000000000000000000001",8,	9223372036854775807LLU,	23, 0); - -	TEST_STRTOULL("18446744073709551615",	0,	18446744073709551615LLU,	20, 0); -	TEST_STRTOULL("18446744073709551615",	10,	18446744073709551615LLU,	20, 0); -	TEST_STRTOULL("18446744073709551616",	0,	18446744073709551615LLU,	20, ERANGE); -	TEST_STRTOULL("18446744073709551616",	10,	18446744073709551615LLU,	20, ERANGE); -	TEST_STRTOULL("0xFFFFFFFFFFFFFFFF",	0,	18446744073709551615LLU,	18, 0); -	TEST_STRTOULL("0xFFFFFFFFFFFFFFFF",	16,	18446744073709551615LLU,	18, 0); -	TEST_STRTOULL("FFFFFFFFFFFFFFFF",	16,	18446744073709551615LLU,	16, 0); -	TEST_STRTOULL("0x10000000000000000",	0,	18446744073709551615LLU,	19, ERANGE); -	TEST_STRTOULL("0x10000000000000000",	16,	18446744073709551615LLU,	19, ERANGE); -	TEST_STRTOULL("10000000000000000",	16,	18446744073709551615LLU,	17, ERANGE); -	TEST_STRTOULL("01777777777777777777777",0,	18446744073709551615LLU,	23, 0); -	TEST_STRTOULL("01777777777777777777777",8,	18446744073709551615LLU,	23, 0); -	TEST_STRTOULL("1777777777777777777777",	8,	18446744073709551615LLU,	22, 0); -	TEST_STRTOULL("02000000000000000000000",0,	18446744073709551615LLU,	23, ERANGE); -	TEST_STRTOULL("02000000000000000000000",8,	18446744073709551615LLU,	23, ERANGE); -	TEST_STRTOULL("2000000000000000000000",	8,	18446744073709551615LLU,	22, ERANGE); - -	TEST_STRTOULL("-18446744073709551615",	0,	1LLU,				21, 0); -	TEST_STRTOULL("-18446744073709551615",	10,	1LLU,				21, 0); -	TEST_STRTOULL("-18446744073709551616",	0,	18446744073709551615LLU,	21, ERANGE); -	TEST_STRTOULL("-18446744073709551616",	10,	18446744073709551615LLU,	21, ERANGE); -	TEST_STRTOULL("-0xFFFFFFFFFFFFFFFF",	0,	1LLU,				19, 0); -	TEST_STRTOULL("-0xFFFFFFFFFFFFFFFF",	16,	1LLU,				19, 0); -	TEST_STRTOULL("-FFFFFFFFFFFFFFFF",	16,	1LLU,				17, 0); -	TEST_STRTOULL("-0x10000000000000000",	0,	18446744073709551615LLU,	20, ERANGE); -	TEST_STRTOULL("-0x10000000000000000",	16,	18446744073709551615LLU,	20, ERANGE); -	TEST_STRTOULL("-10000000000000000",	16,	18446744073709551615LLU,	18, ERANGE); -	TEST_STRTOULL("-01777777777777777777777",0,	1LLU,				24, 0); -	TEST_STRTOULL("-01777777777777777777777",8,	1LLU,				24, 0); -	TEST_STRTOULL("-1777777777777777777777",8,	1LLU,				23, 0); -	TEST_STRTOULL("-02000000000000000000000",0,	18446744073709551615LLU,	24, ERANGE); -	TEST_STRTOULL("-02000000000000000000000",8,	18446744073709551615LLU,	24, ERANGE); -	TEST_STRTOULL("-2000000000000000000000",8,	18446744073709551615LLU,	23, ERANGE); - -	printf("success: strtoull\n"); -	return true; -} - -/*  -FIXME: -Types: -bool -socklen_t -uint_t -uint{8,16,32,64}_t -int{8,16,32,64}_t -intptr_t - -Constants: -PATH_NAME_MAX -UINT{16,32,64}_MAX -INT32_MAX -*/ - -static int test_va_copy(void) -{ -	/* FIXME */ -	return true; -} - -static int test_FUNCTION(void) -{ -	printf("test: FUNCTION\n"); -	if (strcmp(__FUNCTION__, "test_FUNCTION") != 0) { -		printf("failure: FAILURE [\nFAILURE invalid\n]\n"); -		return false; -	} -	printf("success: FUNCTION\n"); -	return true; -} - -static int test_MIN(void) -{ -	printf("test: MIN\n"); -	if (MIN(20, 1) != 1) { -		printf("failure: MIN [\nMIN invalid\n]\n"); -		return false; -	} -	if (MIN(1, 20) != 1) { -		printf("failure: MIN [\nMIN invalid\n]\n"); -		return false; -	} -	printf("success: MIN\n"); -	return true; -} - -static int test_MAX(void) -{ -	printf("test: MAX\n"); -	if (MAX(20, 1) != 20) { -		printf("failure: MAX [\nMAX invalid\n]\n"); -		return false; -	} -	if (MAX(1, 20) != 20) { -		printf("failure: MAX [\nMAX invalid\n]\n"); -		return false; -	} -	printf("success: MAX\n"); -	return true; -} - -static int test_socketpair(void) -{ -	int sock[2]; -	char buf[20]; - -	printf("test: socketpair\n"); - -	if (socketpair(AF_UNIX, SOCK_STREAM, 0, sock) == -1) { -		printf("failure: socketpair [\n" -			   "socketpair() failed\n" -			   "]\n"); -		return false; -	} - -	if (write(sock[1], "automatisch", 12) == -1) { -		printf("failure: socketpair [\n" -			   "write() failed: %s\n" -			   "]\n", strerror(errno)); -		return false; -	} - -	if (read(sock[0], buf, 12) == -1) { -		printf("failure: socketpair [\n" -			   "read() failed: %s\n" -			   "]\n", strerror(errno)); -		return false; -	} - -	if (strcmp(buf, "automatisch") != 0) { -		printf("failure: socketpair [\n" -			   "expected: automatisch, got: %s\n" -			   "]\n", buf); -		return false; -	} - -	printf("success: socketpair\n"); - -	return true; -} - -extern int libreplace_test_strptime(void); - -static int test_strptime(void) -{ -	return libreplace_test_strptime(); -} - -extern int getifaddrs_test(void); - -static int test_getifaddrs(void) -{ - -	printf("test: getifaddrs\n"); - -	if (getifaddrs_test() != 0) { -		printf("failure: getifaddrs\n"); -		return false; -	} - -	printf("success: getifaddrs\n"); -	return true; -} - -static int test_utime(void) -{ -	struct utimbuf u; -	struct stat st1, st2, st3; -	int fd; - -	printf("test: utime\n"); -	unlink(TESTFILE); - -	fd = open(TESTFILE, O_RDWR|O_CREAT, 0600); -	if (fd == -1) { -		printf("failure: utime [\n" -		       "creating '%s' failed - %s\n]\n", -		       TESTFILE, strerror(errno)); -		return false; -	} - -	if (fstat(fd, &st1) != 0) { -		printf("failure: utime [\n" -		       "fstat (1) failed - %s\n]\n", -		       strerror(errno)); -		return false; -	} - -	u.actime = st1.st_atime + 300; -	u.modtime = st1.st_mtime - 300; -	if (utime(TESTFILE, &u) != 0) { -		printf("failure: utime [\n" -		       "utime(&u) failed - %s\n]\n", -		       strerror(errno)); -		return false; -	} - -	if (fstat(fd, &st2) != 0) { -		printf("failure: utime [\n" -		       "fstat (2) failed - %s\n]\n", -		       strerror(errno)); -		return false; -	} - -	if (utime(TESTFILE, NULL) != 0) { -		printf("failure: utime [\n" -		       "utime(NULL) failed - %s\n]\n", -		       strerror(errno)); -		return false; -	} - -	if (fstat(fd, &st3) != 0) { -		printf("failure: utime [\n" -		       "fstat (3) failed - %s\n]\n", -		       strerror(errno)); -		return false; -	} - -#define CMP_VAL(a,c,b) do { \ -	if (a c b) { \ -		printf("failure: utime [\n" \ -		       "%s: %s(%d) %s %s(%d)\n]\n", \ -		       __location__, \ -		       #a, (int)a, #c, #b, (int)b); \ -		return false; \ -	} \ -} while(0) -#define EQUAL_VAL(a,b) CMP_VAL(a,!=,b) -#define GREATER_VAL(a,b) CMP_VAL(a,<=,b) -#define LESSER_VAL(a,b) CMP_VAL(a,>=,b) - -	EQUAL_VAL(st2.st_atime, st1.st_atime + 300); -	EQUAL_VAL(st2.st_mtime, st1.st_mtime - 300); -	LESSER_VAL(st3.st_atime, st2.st_atime); -	GREATER_VAL(st3.st_mtime, st2.st_mtime); - -#undef CMP_VAL -#undef EQUAL_VAL -#undef GREATER_VAL -#undef LESSER_VAL - -	unlink(TESTFILE); -	printf("success: utime\n"); -	return true; -} - -static int test_utimes(void) -{ -	struct timeval tv[2]; -	struct stat st1, st2; -	int fd; - -	printf("test: utimes\n"); -	unlink(TESTFILE); - -	fd = open(TESTFILE, O_RDWR|O_CREAT, 0600); -	if (fd == -1) { -		printf("failure: utimes [\n" -		       "creating '%s' failed - %s\n]\n", -		       TESTFILE, strerror(errno)); -		return false; -	} - -	if (fstat(fd, &st1) != 0) { -		printf("failure: utimes [\n" -		       "fstat (1) failed - %s\n]\n", -		       strerror(errno)); -		return false; -	} - -	ZERO_STRUCT(tv); -	tv[0].tv_sec = st1.st_atime + 300; -	tv[1].tv_sec = st1.st_mtime - 300; -	if (utimes(TESTFILE, tv) != 0) { -		printf("failure: utimes [\n" -		       "utimes(tv) failed - %s\n]\n", -		       strerror(errno)); -		return false; -	} - -	if (fstat(fd, &st2) != 0) { -		printf("failure: utimes [\n" -		       "fstat (2) failed - %s\n]\n", -		       strerror(errno)); -		return false; -	} - -#define EQUAL_VAL(a,b) do { \ -	if (a != b) { \ -		printf("failure: utimes [\n" \ -		       "%s: %s(%d) != %s(%d)\n]\n", \ -		       __location__, \ -		       #a, (int)a, #b, (int)b); \ -		return false; \ -	} \ -} while(0) - -	EQUAL_VAL(st2.st_atime, st1.st_atime + 300); -	EQUAL_VAL(st2.st_mtime, st1.st_mtime - 300); - -#undef EQUAL_VAL - -	unlink(TESTFILE); -	printf("success: utimes\n"); -	return true; -} - -struct torture_context; -bool torture_local_replace(struct torture_context *ctx) -{ -	bool ret = true; -	ret &= test_ftruncate(); -	ret &= test_strlcpy(); -	ret &= test_strlcat(); -	ret &= test_mktime(); -	ret &= test_initgroups(); -	ret &= test_memmove(); -	ret &= test_strdup(); -	ret &= test_setlinebuf(); -	ret &= test_vsyslog(); -	ret &= test_timegm(); -	ret &= test_setenv(); -	ret &= test_strndup(); -	ret &= test_strnlen(); -	ret &= test_waitpid(); -	ret &= test_seteuid(); -	ret &= test_setegid(); -	ret &= test_asprintf(); -	ret &= test_snprintf(); -	ret &= test_vasprintf(); -	ret &= test_vsnprintf(); -	ret &= test_opendir(); -	ret &= test_readdir(); -	ret &= test_telldir(); -	ret &= test_seekdir(); -	ret &= test_dlopen(); -	ret &= test_chroot(); -	ret &= test_bzero(); -	ret &= test_strerror(); -	ret &= test_errno(); -	ret &= test_mkdtemp(); -	ret &= test_mkstemp(); -	ret &= test_pread(); -	ret &= test_pwrite(); -	ret &= test_getpass(); -	ret &= test_inet_ntoa(); -	ret &= test_strtoll(); -	ret &= test_strtoull(); -	ret &= test_va_copy(); -	ret &= test_FUNCTION(); -	ret &= test_MIN(); -	ret &= test_MAX(); -	ret &= test_socketpair(); -	ret &= test_strptime(); -	ret &= test_getifaddrs(); -	ret &= test_utime(); -	ret &= test_utimes(); - -	return ret; -} - -#if _SAMBA_BUILD_<4 -int main(void) -{ -	bool ret = torture_local_replace(NULL); -	if (ret)  -		return 0; -	return -1; -} -#endif diff --git a/source3/lib/replace/timegm.c b/source3/lib/replace/timegm.c deleted file mode 100644 index 395c684e11..0000000000 --- a/source3/lib/replace/timegm.c +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (c) 1997 Kungliga Tekniska Högskolan - * (Royal Institute of Technology, Stockholm, Sweden).  - * All rights reserved.  - * - * Redistribution and use in source and binary forms, with or without  - * modification, are permitted provided that the following conditions  - * are met:  - * - * 1. Redistributions of source code must retain the above copyright  - *    notice, this list of conditions and the following disclaimer.  - * - * 2. Redistributions in binary form must reproduce the above copyright  - *    notice, this list of conditions and the following disclaimer in the  - *    documentation and/or other materials provided with the distribution.  - * - * 3. Neither the name of the Institute nor the names of its contributors  - *    may be used to endorse or promote products derived from this software  - *    without specific prior written permission.  - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND  - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE  - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE  - * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE  - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL  - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS  - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)  - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT  - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY  - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF  - * SUCH DAMAGE.  - */ - -/* -  adapted for Samba4 by Andrew Tridgell -*/ - -#include "replace.h" -#include "system/time.h" - -static int is_leap(unsigned y) -{ -	y += 1900; -	return (y % 4) == 0 && ((y % 100) != 0 || (y % 400) == 0); -} - -time_t rep_timegm(struct tm *tm) -{ -	static const unsigned ndays[2][12] ={ -		{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, -		{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}}; -	time_t res = 0; -	unsigned i; - -	if (tm->tm_mon > 12 || -	    tm->tm_mon < 0 || -	    tm->tm_mday > 31 || -	    tm->tm_min > 60 || -	    tm->tm_sec > 60 || -	    tm->tm_hour > 24) { -		/* invalid tm structure */ -		return 0; -	} -	 -	for (i = 70; i < tm->tm_year; ++i) -		res += is_leap(i) ? 366 : 365; -	 -	for (i = 0; i < tm->tm_mon; ++i) -		res += ndays[is_leap(tm->tm_year)][i]; -	res += tm->tm_mday - 1; -	res *= 24; -	res += tm->tm_hour; -	res *= 60; -	res += tm->tm_min; -	res *= 60; -	res += tm->tm_sec; -	return res; -} diff --git a/source3/lib/replace/timegm.m4 b/source3/lib/replace/timegm.m4 deleted file mode 100644 index 59f3ae0521..0000000000 --- a/source3/lib/replace/timegm.m4 +++ /dev/null @@ -1 +0,0 @@ -AC_CHECK_FUNCS(timegm,[],[LIBREPLACEOBJ="${LIBREPLACEOBJ} timegm.o"]) diff --git a/source3/lib/replace/win32.m4 b/source3/lib/replace/win32.m4 deleted file mode 100644 index eb364e2cb9..0000000000 --- a/source3/lib/replace/win32.m4 +++ /dev/null @@ -1,20 +0,0 @@ -AC_CHECK_HEADERS(direct.h windows.h winsock2.h ws2tcpip.h) - -####################################### -# Check for mkdir mode -AC_CACHE_CHECK( [whether mkdir supports mode], libreplace_cv_mkdir_has_mode, -	AC_TRY_COMPILE([ -		#include <stdio.h> -		#ifdef HAVE_DIRECT_H -		#include <direct.h> -		#endif],[ -			mkdir("foo",0777); -			return 0; -	], -    libreplace_cv_mkdir_has_mode="yes", -    libreplace_cv_mkdir_has_mode="no") ) - -if test "$libreplace_cv_mkdir_has_mode" = "yes" -then -    AC_DEFINE(HAVE_MKDIR_MODE, 1, [Define if target mkdir supports mode option]) -fi diff --git a/source3/lib/replace/win32_replace.h b/source3/lib/replace/win32_replace.h deleted file mode 100644 index 9901e72f6e..0000000000 --- a/source3/lib/replace/win32_replace.h +++ /dev/null @@ -1,159 +0,0 @@ -#ifndef _WIN32_REPLACE_H -#define _WIN32_REPLACE_H - -#ifdef HAVE_WINSOCK2_H -#include <winsock2.h> -#endif - -#ifdef HAVE_WS2TCPIP_H -#include <ws2tcpip.h> -#endif - -#ifdef HAVE_WINDOWS_H -#include <windows.h> -#endif - -/* Map BSD Socket errorcodes to the WSA errorcodes (if possible) */  - -#define EAFNOSUPPORT	WSAEAFNOSUPPORT -#define ECONNREFUSED    WSAECONNREFUSED  -#define EINPROGRESS	WSAEINPROGRESS -#define EMSGSIZE	WSAEMSGSIZE  -#define ENOBUFS         WSAENOBUFS -#define ENOTSOCK	WSAENOTSOCK -#define ENETUNREACH	WSAENETUNREACH -#define ENOPROTOOPT	WSAENOPROTOOPT -#define ENOTCONN	WSAENOTCONN  -#define ENOTSUP		134  - -/* We undefine the following constants due to conflicts with the w32api headers - * and the Windows Platform SDK/DDK. - */ - -#undef interface - -#undef ERROR_INVALID_PARAMETER -#undef ERROR_INSUFFICIENT_BUFFER -#undef ERROR_INVALID_DATATYPE - -#undef FILE_GENERIC_READ -#undef FILE_GENERIC_WRITE -#undef FILE_GENERIC_EXECUTE -#undef FILE_ATTRIBUTE_READONLY -#undef FILE_ATTRIBUTE_HIDDEN -#undef FILE_ATTRIBUTE_SYSTEM -#undef FILE_ATTRIBUTE_DIRECTORY -#undef FILE_ATTRIBUTE_ARCHIVE -#undef FILE_ATTRIBUTE_DEVICE -#undef FILE_ATTRIBUTE_NORMAL -#undef FILE_ATTRIBUTE_TEMPORARY -#undef FILE_ATTRIBUTE_REPARSE_POINT -#undef FILE_ATTRIBUTE_COMPRESSED -#undef FILE_ATTRIBUTE_OFFLINE -#undef FILE_ATTRIBUTE_ENCRYPTED -#undef FILE_FLAG_WRITE_THROUGH -#undef FILE_FLAG_NO_BUFFERING -#undef FILE_FLAG_RANDOM_ACCESS -#undef FILE_FLAG_SEQUENTIAL_SCAN -#undef FILE_FLAG_DELETE_ON_CLOSE -#undef FILE_FLAG_BACKUP_SEMANTICS -#undef FILE_FLAG_POSIX_SEMANTICS -#undef FILE_TYPE_DISK -#undef FILE_TYPE_UNKNOWN -#undef FILE_CASE_SENSITIVE_SEARCH -#undef FILE_CASE_PRESERVED_NAMES -#undef FILE_UNICODE_ON_DISK -#undef FILE_PERSISTENT_ACLS -#undef FILE_FILE_COMPRESSION -#undef FILE_VOLUME_QUOTAS -#undef FILE_VOLUME_IS_COMPRESSED -#undef FILE_NOTIFY_CHANGE_FILE_NAME -#undef FILE_NOTIFY_CHANGE_DIR_NAME -#undef FILE_NOTIFY_CHANGE_ATTRIBUTES -#undef FILE_NOTIFY_CHANGE_SIZE -#undef FILE_NOTIFY_CHANGE_LAST_WRITE -#undef FILE_NOTIFY_CHANGE_LAST_ACCESS -#undef FILE_NOTIFY_CHANGE_CREATION -#undef FILE_NOTIFY_CHANGE_EA -#undef FILE_NOTIFY_CHANGE_SECURITY -#undef FILE_NOTIFY_CHANGE_STREAM_NAME -#undef FILE_NOTIFY_CHANGE_STREAM_SIZE -#undef FILE_NOTIFY_CHANGE_STREAM_WRITE -#undef FILE_NOTIFY_CHANGE_NAME - -#undef PRINTER_ATTRIBUTE_QUEUED -#undef PRINTER_ATTRIBUTE_DIRECT -#undef PRINTER_ATTRIBUTE_DEFAULT -#undef PRINTER_ATTRIBUTE_SHARED -#undef PRINTER_ATTRIBUTE_NETWORK -#undef PRINTER_ATTRIBUTE_HIDDEN -#undef PRINTER_ATTRIBUTE_LOCAL -#undef PRINTER_ATTRIBUTE_ENABLE_DEVQ -#undef PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS -#undef PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST -#undef PRINTER_ATTRIBUTE_WORK_OFFLINE -#undef PRINTER_ATTRIBUTE_ENABLE_BIDI -#undef PRINTER_ATTRIBUTE_RAW_ONLY -#undef PRINTER_ATTRIBUTE_PUBLISHED -#undef PRINTER_ENUM_DEFAULT -#undef PRINTER_ENUM_LOCAL -#undef PRINTER_ENUM_CONNECTIONS -#undef PRINTER_ENUM_FAVORITE -#undef PRINTER_ENUM_NAME -#undef PRINTER_ENUM_REMOTE -#undef PRINTER_ENUM_SHARED -#undef PRINTER_ENUM_NETWORK -#undef PRINTER_ENUM_EXPAND -#undef PRINTER_ENUM_CONTAINER -#undef PRINTER_ENUM_ICON1 -#undef PRINTER_ENUM_ICON2 -#undef PRINTER_ENUM_ICON3 -#undef PRINTER_ENUM_ICON4 -#undef PRINTER_ENUM_ICON5 -#undef PRINTER_ENUM_ICON6 -#undef PRINTER_ENUM_ICON7 -#undef PRINTER_ENUM_ICON8 -#undef PRINTER_STATUS_PAUSED -#undef PRINTER_STATUS_ERROR -#undef PRINTER_STATUS_PENDING_DELETION -#undef PRINTER_STATUS_PAPER_JAM -#undef PRINTER_STATUS_PAPER_OUT -#undef PRINTER_STATUS_MANUAL_FEED -#undef PRINTER_STATUS_PAPER_PROBLEM -#undef PRINTER_STATUS_OFFLINE -#undef PRINTER_STATUS_IO_ACTIVE -#undef PRINTER_STATUS_BUSY -#undef PRINTER_STATUS_PRINTING -#undef PRINTER_STATUS_OUTPUT_BIN_FULL -#undef PRINTER_STATUS_NOT_AVAILABLE -#undef PRINTER_STATUS_WAITING -#undef PRINTER_STATUS_PROCESSING -#undef PRINTER_STATUS_INITIALIZING -#undef PRINTER_STATUS_WARMING_UP -#undef PRINTER_STATUS_TONER_LOW -#undef PRINTER_STATUS_NO_TONER -#undef PRINTER_STATUS_PAGE_PUNT -#undef PRINTER_STATUS_USER_INTERVENTION -#undef PRINTER_STATUS_OUT_OF_MEMORY -#undef PRINTER_STATUS_DOOR_OPEN -#undef PRINTER_STATUS_SERVER_UNKNOWN -#undef PRINTER_STATUS_POWER_SAVE - -#undef DWORD -#undef HKEY_CLASSES_ROOT -#undef HKEY_CURRENT_USER -#undef HKEY_LOCAL_MACHINE -#undef HKEY_USERS -#undef HKEY_PERFORMANCE_DATA -#undef HKEY_CURRENT_CONFIG -#undef HKEY_DYN_DATA -#undef REG_DWORD -#undef REG_QWORD - -#undef SERVICE_STATE_ALL - -#undef SE_GROUP_MANDATORY -#undef SE_GROUP_ENABLED_BY_DEFAULT -#undef SE_GROUP_ENABLED - -#endif /* _WIN32_REPLACE_H */  | 
