Merge branch 'master' of ssh://git.samba.org/data/git/samba into noejs
authorJelmer Vernooij <jelmer@samba.org>
Thu, 18 Sep 2008 18:29:05 +0000 (20:29 +0200)
committerJelmer Vernooij <jelmer@samba.org>
Thu, 18 Sep 2008 18:29:05 +0000 (20:29 +0200)
Conflicts:
source4/main.mk

524 files changed:
MAINTAINERS
README.Coding
examples/libsmbclient/Makefile.internal.in
examples/libsmbclient/smbwrapper/Makefile
lib/README [new file with mode: 0644]
lib/compression/lzxpress.c [moved from source4/lib/compression/lzxpress.c with 100% similarity]
lib/compression/lzxpress.h [moved from source4/lib/compression/lzxpress.h with 100% similarity]
lib/compression/mszip.c [moved from source3/lib/compression/mszip.c with 99% similarity]
lib/compression/mszip.h [moved from source3/lib/compression/mszip.h with 100% similarity]
lib/compression/testsuite.c [moved from source4/lib/compression/testsuite.c with 96% similarity]
lib/nss_wrapper/config.m4 [moved from source4/lib/nss_wrapper/config.m4 with 88% similarity]
lib/nss_wrapper/config.mk [moved from source4/lib/nss_wrapper/config.mk with 100% similarity]
lib/nss_wrapper/nss_wrapper.c [moved from source3/lib/nss_wrapper/nss_wrapper.c with 99% similarity]
lib/nss_wrapper/nss_wrapper.h [moved from source3/lib/nss_wrapper/nss_wrapper.h with 100% similarity]
lib/nss_wrapper/nss_wrapper.pl [moved from source3/lib/nss_wrapper/nss_wrapper.pl with 100% similarity]
lib/popt/CHANGES [moved from source3/popt/CHANGES with 100% similarity]
lib/popt/COPYING [moved from source3/popt/COPYING with 100% similarity]
lib/popt/README [moved from source3/popt/README with 100% similarity]
lib/popt/config.mk [moved from source4/lib/popt/config.mk with 83% similarity]
lib/popt/dummy.in [moved from source3/popt/dummy.in with 100% similarity]
lib/popt/findme.c [moved from source3/popt/findme.c with 100% similarity]
lib/popt/findme.h [moved from source3/popt/findme.h with 100% similarity]
lib/popt/libpopt.m4 [moved from source4/lib/popt/libpopt.m4 with 98% similarity]
lib/popt/popt.c [moved from source3/popt/popt.c with 100% similarity]
lib/popt/popt.h [moved from source3/popt/popt.h with 100% similarity]
lib/popt/poptconfig.c [moved from source3/popt/poptconfig.c with 100% similarity]
lib/popt/popthelp.c [moved from source3/popt/popthelp.c with 100% similarity]
lib/popt/poptint.h [moved from source3/popt/poptint.h with 100% similarity]
lib/popt/poptparse.c [moved from source3/popt/poptparse.c with 100% similarity]
lib/popt/samba.m4 [moved from source4/lib/popt/samba.m4 with 52% similarity]
lib/popt/system.h [moved from source3/popt/system.h with 100% similarity]
lib/replace/.checker_innocent [moved from source3/lib/replace/.checker_innocent with 100% similarity]
lib/replace/Makefile.in [moved from source3/lib/replace/Makefile.in with 100% similarity]
lib/replace/README [moved from source3/lib/replace/README with 100% similarity]
lib/replace/aclocal.m4 [moved from source3/lib/replace/aclocal.m4 with 100% similarity]
lib/replace/autoconf-2.60.m4 [moved from source3/lib/replace/autoconf-2.60.m4 with 100% similarity]
lib/replace/autogen.sh [moved from source3/lib/replace/autogen.sh with 100% similarity]
lib/replace/config.guess [moved from source3/lib/replace/config.guess with 100% similarity]
lib/replace/config.sub [moved from source3/lib/replace/config.sub with 100% similarity]
lib/replace/configure.ac [moved from source3/lib/replace/configure.ac with 100% similarity]
lib/replace/dlfcn.c [moved from source3/lib/replace/dlfcn.c with 100% similarity]
lib/replace/dlfcn.m4 [moved from source3/lib/replace/dlfcn.m4 with 100% similarity]
lib/replace/getaddrinfo.c [moved from source3/lib/replace/getaddrinfo.c with 100% similarity]
lib/replace/getaddrinfo.h [moved from source4/lib/replace/getaddrinfo.h with 98% similarity]
lib/replace/getifaddrs.c [moved from source3/lib/replace/getifaddrs.c with 100% similarity]
lib/replace/getpass.c [moved from source3/lib/replace/getpass.c with 100% similarity]
lib/replace/getpass.m4 [moved from source3/lib/replace/getpass.m4 with 100% similarity]
lib/replace/inet_aton.c [moved from source3/lib/replace/inet_aton.c with 100% similarity]
lib/replace/inet_ntoa.c [moved from source3/lib/replace/inet_ntoa.c with 100% similarity]
lib/replace/inet_ntop.c [moved from source3/lib/replace/inet_ntop.c with 100% similarity]
lib/replace/inet_pton.c [moved from source3/lib/replace/inet_pton.c with 100% similarity]
lib/replace/install-sh [moved from source3/lib/replace/install-sh with 100% similarity]
lib/replace/libreplace.m4 [moved from source3/lib/replace/libreplace.m4 with 96% similarity]
lib/replace/libreplace_cc.m4 [moved from source3/lib/replace/libreplace_cc.m4 with 100% similarity]
lib/replace/libreplace_ld.m4 [moved from source3/lib/replace/libreplace_ld.m4 with 100% similarity]
lib/replace/libreplace_macros.m4 [moved from source3/lib/replace/libreplace_macros.m4 with 100% similarity]
lib/replace/libreplace_network.m4 [moved from source3/lib/replace/libreplace_network.m4 with 100% similarity]
lib/replace/repdir.m4 [moved from source3/lib/replace/repdir.m4 with 100% similarity]
lib/replace/repdir_getdents.c [moved from source3/lib/replace/repdir_getdents.c with 100% similarity]
lib/replace/repdir_getdirentries.c [moved from source3/lib/replace/repdir_getdirentries.c with 100% similarity]
lib/replace/replace.c [moved from source3/lib/replace/replace.c with 100% similarity]
lib/replace/replace.h [moved from source3/lib/replace/replace.h with 100% similarity]
lib/replace/samba.m4 [moved from source3/lib/replace/samba.m4 with 100% similarity]
lib/replace/snprintf.c [moved from source3/lib/replace/snprintf.c with 100% similarity]
lib/replace/socket.c [moved from source3/lib/replace/socket.c with 100% similarity]
lib/replace/socketpair.c [moved from source3/lib/replace/socketpair.c with 100% similarity]
lib/replace/strptime.c [moved from source3/lib/replace/strptime.c with 100% similarity]
lib/replace/strptime.m4 [moved from source3/lib/replace/strptime.m4 with 100% similarity]
lib/replace/system/README [moved from source3/lib/replace/system/README with 100% similarity]
lib/replace/system/aio.h [moved from source3/lib/replace/system/aio.h with 100% similarity]
lib/replace/system/capability.h [moved from source3/lib/replace/system/capability.h with 100% similarity]
lib/replace/system/config.m4 [moved from source3/lib/replace/system/config.m4 with 100% similarity]
lib/replace/system/dir.h [moved from source3/lib/replace/system/dir.h with 100% similarity]
lib/replace/system/filesys.h [moved from source3/lib/replace/system/filesys.h with 100% similarity]
lib/replace/system/glob.h [moved from source3/lib/replace/system/glob.h with 100% similarity]
lib/replace/system/iconv.h [moved from source3/lib/replace/system/iconv.h with 100% similarity]
lib/replace/system/kerberos.h [moved from source3/lib/replace/system/kerberos.h with 100% similarity]
lib/replace/system/locale.h [moved from source3/lib/replace/system/locale.h with 100% similarity]
lib/replace/system/network.h [moved from source4/lib/replace/system/network.h with 99% similarity]
lib/replace/system/passwd.h [moved from source4/lib/replace/system/passwd.h with 98% similarity]
lib/replace/system/readline.h [moved from source3/lib/replace/system/readline.h with 100% similarity]
lib/replace/system/select.h [moved from source3/lib/replace/system/select.h with 100% similarity]
lib/replace/system/shmem.h [moved from source3/lib/replace/system/shmem.h with 100% similarity]
lib/replace/system/syslog.h [moved from source3/lib/replace/system/syslog.h with 100% similarity]
lib/replace/system/terminal.h [moved from source3/lib/replace/system/terminal.h with 100% similarity]
lib/replace/system/time.h [moved from source3/lib/replace/system/time.h with 100% similarity]
lib/replace/system/wait.h [moved from source3/lib/replace/system/wait.h with 100% similarity]
lib/replace/test/getifaddrs.c [moved from source3/lib/replace/test/getifaddrs.c with 100% similarity]
lib/replace/test/os2_delete.c [moved from source3/lib/replace/test/os2_delete.c with 100% similarity]
lib/replace/test/shared_mmap.c [moved from source3/lib/replace/test/shared_mmap.c with 100% similarity]
lib/replace/test/strptime.c [moved from source3/lib/replace/test/strptime.c with 100% similarity]
lib/replace/test/testsuite.c [moved from source3/lib/replace/test/testsuite.c with 100% similarity]
lib/replace/timegm.c [moved from source3/lib/replace/timegm.c with 100% similarity]
lib/replace/timegm.m4 [moved from source3/lib/replace/timegm.m4 with 100% similarity]
lib/replace/win32.m4 [moved from source3/lib/replace/win32.m4 with 100% similarity]
lib/replace/win32_replace.h [moved from source3/lib/replace/win32_replace.h with 100% similarity]
lib/socket_wrapper/config.m4 [moved from source4/lib/socket_wrapper/config.m4 with 89% similarity]
lib/socket_wrapper/config.mk [moved from source3/lib/socket_wrapper/config.mk with 100% similarity]
lib/socket_wrapper/socket_wrapper.c [moved from source4/lib/socket_wrapper/socket_wrapper.c with 99% similarity]
lib/socket_wrapper/socket_wrapper.h [moved from source3/lib/socket_wrapper/socket_wrapper.h with 100% similarity]
lib/socket_wrapper/testsuite.c [moved from source3/lib/socket_wrapper/testsuite.c with 98% similarity]
lib/talloc/Makefile.in [moved from source3/lib/talloc/Makefile.in with 100% similarity]
lib/talloc/NEWS [moved from source3/lib/talloc/NEWS with 100% similarity]
lib/talloc/aclocal.m4 [moved from source3/lib/talloc/aclocal.m4 with 100% similarity]
lib/talloc/autogen.sh [moved from source3/lib/talloc/autogen.sh with 100% similarity]
lib/talloc/config.guess [moved from source3/lib/talloc/config.guess with 100% similarity]
lib/talloc/config.mk [moved from source4/lib/talloc/config.mk with 52% similarity]
lib/talloc/config.sub [moved from source3/lib/talloc/config.sub with 100% similarity]
lib/talloc/configure.ac [moved from source3/lib/talloc/configure.ac with 100% similarity]
lib/talloc/install-sh [moved from source3/lib/talloc/install-sh with 100% similarity]
lib/talloc/libtalloc.m4 [moved from source4/lib/talloc/libtalloc.m4 with 94% similarity]
lib/talloc/rules.mk [moved from source3/lib/talloc/rules.mk with 100% similarity]
lib/talloc/talloc.3.xml [moved from source3/lib/talloc/talloc.3.xml with 100% similarity]
lib/talloc/talloc.c [moved from source3/lib/talloc/talloc.c with 100% similarity]
lib/talloc/talloc.h [moved from source3/lib/talloc/talloc.h with 100% similarity]
lib/talloc/talloc.i [moved from source3/lib/talloc/talloc.i with 100% similarity]
lib/talloc/talloc.mk [moved from source3/lib/talloc/talloc.mk with 100% similarity]
lib/talloc/talloc.pc.in [moved from source3/lib/talloc/talloc.pc.in with 100% similarity]
lib/talloc/talloc_guide.txt [moved from source3/lib/talloc/talloc_guide.txt with 100% similarity]
lib/talloc/testsuite.c [moved from source3/lib/talloc/testsuite.c with 100% similarity]
lib/talloc/web/index.html [moved from source3/lib/talloc/web/index.html with 100% similarity]
lib/tdb/Makefile.in [moved from source3/lib/tdb/Makefile.in with 100% similarity]
lib/tdb/aclocal.m4 [moved from source3/lib/tdb/aclocal.m4 with 100% similarity]
lib/tdb/autogen.sh [moved from source3/lib/tdb/autogen.sh with 100% similarity]
lib/tdb/common/dump.c [moved from source3/lib/tdb/common/dump.c with 100% similarity]
lib/tdb/common/error.c [moved from source3/lib/tdb/common/error.c with 100% similarity]
lib/tdb/common/freelist.c [moved from source3/lib/tdb/common/freelist.c with 100% similarity]
lib/tdb/common/freelistcheck.c [moved from source3/lib/tdb/common/freelistcheck.c with 100% similarity]
lib/tdb/common/io.c [moved from source3/lib/tdb/common/io.c with 100% similarity]
lib/tdb/common/lock.c [moved from source3/lib/tdb/common/lock.c with 100% similarity]
lib/tdb/common/open.c [moved from source3/lib/tdb/common/open.c with 100% similarity]
lib/tdb/common/tdb.c [moved from source3/lib/tdb/common/tdb.c with 100% similarity]
lib/tdb/common/tdb_private.h [moved from source3/lib/tdb/common/tdb_private.h with 100% similarity]
lib/tdb/common/transaction.c [moved from source3/lib/tdb/common/transaction.c with 100% similarity]
lib/tdb/common/traverse.c [moved from source3/lib/tdb/common/traverse.c with 100% similarity]
lib/tdb/config.guess [moved from source3/lib/tdb/config.guess with 100% similarity]
lib/tdb/config.mk [moved from source4/lib/tdb/config.mk with 79% similarity]
lib/tdb/config.sub [moved from source3/lib/tdb/config.sub with 100% similarity]
lib/tdb/configure.ac [moved from source3/lib/tdb/configure.ac with 100% similarity]
lib/tdb/docs/README [moved from source3/lib/tdb/docs/README with 100% similarity]
lib/tdb/docs/tdb.magic [moved from source3/lib/tdb/docs/tdb.magic with 100% similarity]
lib/tdb/include/tdb.h [moved from source3/lib/tdb/include/tdb.h with 100% similarity]
lib/tdb/install-sh [moved from source3/lib/tdb/install-sh with 100% similarity]
lib/tdb/libtdb.m4 [moved from source4/lib/tdb/libtdb.m4 with 91% similarity]
lib/tdb/python.mk [moved from source3/lib/tdb/python.mk with 100% similarity]
lib/tdb/python/tdbdump.py [moved from source3/lib/tdb/python/tdbdump.py with 100% similarity]
lib/tdb/python/tests/simple.py [moved from source3/lib/tdb/python/tests/simple.py with 100% similarity]
lib/tdb/rules.mk [moved from source3/lib/tdb/rules.mk with 100% similarity]
lib/tdb/tdb.i [moved from source3/lib/tdb/tdb.i with 100% similarity]
lib/tdb/tdb.mk [moved from source3/lib/tdb/tdb.mk with 100% similarity]
lib/tdb/tdb.pc.in [moved from source3/lib/tdb/tdb.pc.in with 100% similarity]
lib/tdb/tdb.py [moved from source3/lib/tdb/tdb.py with 100% similarity]
lib/tdb/tdb_wrap.c [moved from source3/lib/tdb/tdb_wrap.c with 100% similarity]
lib/tdb/tools/tdbbackup.c [moved from source3/lib/tdb/tools/tdbbackup.c with 100% similarity]
lib/tdb/tools/tdbdump.c [moved from source3/lib/tdb/tools/tdbdump.c with 100% similarity]
lib/tdb/tools/tdbtest.c [moved from source3/lib/tdb/tools/tdbtest.c with 100% similarity]
lib/tdb/tools/tdbtool.c [moved from source3/lib/tdb/tools/tdbtool.c with 100% similarity]
lib/tdb/tools/tdbtorture.c [moved from source3/lib/tdb/tools/tdbtorture.c with 100% similarity]
lib/tdb/web/index.html [moved from source3/lib/tdb/web/index.html with 100% similarity]
pidl/MANIFEST [moved from source4/pidl/MANIFEST with 100% similarity]
pidl/META.yml [moved from source4/pidl/META.yml with 100% similarity]
pidl/Makefile.PL [moved from source4/pidl/Makefile.PL with 100% similarity]
pidl/README [moved from source4/pidl/README with 100% similarity]
pidl/TODO [moved from source4/pidl/TODO with 100% similarity]
pidl/config.m4 [moved from source4/pidl/config.m4 with 100% similarity]
pidl/config.mk [moved from source4/pidl/config.mk with 100% similarity]
pidl/expr.yp [moved from source4/pidl/expr.yp with 100% similarity]
pidl/idl.yp [moved from source4/pidl/idl.yp with 100% similarity]
pidl/lib/Parse/Pidl.pm [moved from source4/pidl/lib/Parse/Pidl.pm with 100% similarity]
pidl/lib/Parse/Pidl/CUtil.pm [moved from source4/pidl/lib/Parse/Pidl/CUtil.pm with 100% similarity]
pidl/lib/Parse/Pidl/Compat.pm [moved from source4/pidl/lib/Parse/Pidl/Compat.pm with 100% similarity]
pidl/lib/Parse/Pidl/Dump.pm [moved from source4/pidl/lib/Parse/Pidl/Dump.pm with 100% similarity]
pidl/lib/Parse/Pidl/Expr.pm [moved from source4/pidl/lib/Parse/Pidl/Expr.pm with 100% similarity]
pidl/lib/Parse/Pidl/IDL.pm [moved from source4/pidl/lib/Parse/Pidl/IDL.pm with 100% similarity]
pidl/lib/Parse/Pidl/NDR.pm [moved from source4/pidl/lib/Parse/Pidl/NDR.pm with 100% similarity]
pidl/lib/Parse/Pidl/ODL.pm [moved from source4/pidl/lib/Parse/Pidl/ODL.pm with 100% similarity]
pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm [moved from source4/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm with 100% similarity]
pidl/lib/Parse/Pidl/Samba3/ServerNDR.pm [moved from source4/pidl/lib/Parse/Pidl/Samba3/ServerNDR.pm with 100% similarity]
pidl/lib/Parse/Pidl/Samba4.pm [moved from source4/pidl/lib/Parse/Pidl/Samba4.pm with 100% similarity]
pidl/lib/Parse/Pidl/Samba4/COM/Header.pm [moved from source4/pidl/lib/Parse/Pidl/Samba4/COM/Header.pm with 100% similarity]
pidl/lib/Parse/Pidl/Samba4/COM/Proxy.pm [moved from source4/pidl/lib/Parse/Pidl/Samba4/COM/Proxy.pm with 100% similarity]
pidl/lib/Parse/Pidl/Samba4/COM/Stub.pm [moved from source4/pidl/lib/Parse/Pidl/Samba4/COM/Stub.pm with 100% similarity]
pidl/lib/Parse/Pidl/Samba4/EJS.pm [new file with mode: 0644]
pidl/lib/Parse/Pidl/Samba4/Header.pm [moved from source4/pidl/lib/Parse/Pidl/Samba4/Header.pm with 100% similarity]
pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm [moved from source4/pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm with 100% similarity]
pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm [moved from source4/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm with 99% similarity]
pidl/lib/Parse/Pidl/Samba4/NDR/Server.pm [moved from source4/pidl/lib/Parse/Pidl/Samba4/NDR/Server.pm with 100% similarity]
pidl/lib/Parse/Pidl/Samba4/Python.pm [moved from source4/pidl/lib/Parse/Pidl/Samba4/Python.pm with 100% similarity]
pidl/lib/Parse/Pidl/Samba4/SWIG.pm [moved from source4/pidl/lib/Parse/Pidl/Samba4/SWIG.pm with 100% similarity]
pidl/lib/Parse/Pidl/Samba4/TDR.pm [moved from source4/pidl/lib/Parse/Pidl/Samba4/TDR.pm with 100% similarity]
pidl/lib/Parse/Pidl/Samba4/Template.pm [moved from source4/pidl/lib/Parse/Pidl/Samba4/Template.pm with 100% similarity]
pidl/lib/Parse/Pidl/Typelist.pm [moved from source4/pidl/lib/Parse/Pidl/Typelist.pm with 100% similarity]
pidl/lib/Parse/Pidl/Util.pm [moved from source4/pidl/lib/Parse/Pidl/Util.pm with 100% similarity]
pidl/lib/Parse/Pidl/Wireshark/Conformance.pm [moved from source4/pidl/lib/Parse/Pidl/Wireshark/Conformance.pm with 100% similarity]
pidl/lib/Parse/Pidl/Wireshark/NDR.pm [moved from source4/pidl/lib/Parse/Pidl/Wireshark/NDR.pm with 100% similarity]
pidl/lib/Parse/Yapp/Driver.pm [moved from source4/pidl/lib/Parse/Yapp/Driver.pm with 100% similarity]
pidl/pidl [moved from source4/pidl/pidl with 100% similarity]
pidl/tests/Util.pm [moved from source4/pidl/tests/Util.pm with 100% similarity]
pidl/tests/cutil.pl [moved from source4/pidl/tests/cutil.pl with 100% similarity]
pidl/tests/dump.pl [moved from source4/pidl/tests/dump.pl with 100% similarity]
pidl/tests/header.pl [moved from source4/pidl/tests/header.pl with 100% similarity]
pidl/tests/ndr.pl [moved from source4/pidl/tests/ndr.pl with 100% similarity]
pidl/tests/ndr_align.pl [moved from source4/pidl/tests/ndr_align.pl with 100% similarity]
pidl/tests/ndr_alloc.pl [moved from source4/pidl/tests/ndr_alloc.pl with 100% similarity]
pidl/tests/ndr_array.pl [moved from source4/pidl/tests/ndr_array.pl with 100% similarity]
pidl/tests/ndr_compat.pl [moved from source4/pidl/tests/ndr_compat.pl with 100% similarity]
pidl/tests/ndr_deprecations.pl [moved from source4/pidl/tests/ndr_deprecations.pl with 100% similarity]
pidl/tests/ndr_fullptr.pl [moved from source4/pidl/tests/ndr_fullptr.pl with 100% similarity]
pidl/tests/ndr_refptr.pl [moved from source4/pidl/tests/ndr_refptr.pl with 100% similarity]
pidl/tests/ndr_represent.pl [moved from source4/pidl/tests/ndr_represent.pl with 100% similarity]
pidl/tests/ndr_simple.pl [moved from source4/pidl/tests/ndr_simple.pl with 100% similarity]
pidl/tests/ndr_string.pl [moved from source4/pidl/tests/ndr_string.pl with 100% similarity]
pidl/tests/ndr_tagtype.pl [moved from source4/pidl/tests/ndr_tagtype.pl with 100% similarity]
pidl/tests/parse_idl.pl [moved from source4/pidl/tests/parse_idl.pl with 100% similarity]
pidl/tests/samba-ejs.pl [moved from source4/pidl/tests/samba-ejs.pl with 100% similarity]
pidl/tests/samba-ndr.pl [moved from source4/pidl/tests/samba-ndr.pl with 100% similarity]
pidl/tests/samba3-cli.pl [moved from source4/pidl/tests/samba3-cli.pl with 100% similarity]
pidl/tests/samba3-srv.pl [moved from source4/pidl/tests/samba3-srv.pl with 100% similarity]
pidl/tests/tdr.pl [moved from source4/pidl/tests/tdr.pl with 100% similarity]
pidl/tests/test_util.pl [moved from source4/pidl/tests/test_util.pl with 100% similarity]
pidl/tests/typelist.pl [moved from source4/pidl/tests/typelist.pl with 100% similarity]
pidl/tests/util.pl [moved from source4/pidl/tests/util.pl with 100% similarity]
pidl/tests/wireshark-conf.pl [moved from source4/pidl/tests/wireshark-conf.pl with 100% similarity]
pidl/tests/wireshark-ndr.pl [moved from source4/pidl/tests/wireshark-ndr.pl with 100% similarity]
prog_guide4.txt
source3/Makefile.in
source3/autogen.sh
source3/configure.in
source3/include/ads.h
source3/include/includes.h
source3/include/interfaces.h
source3/include/nss_info.h
source3/include/talloc_stack.h
source3/iniparser_build/dictionary.c
source3/iniparser_build/iniparser.c
source3/iniparser_build/strlib.c
source3/lib/interfaces.c
source3/lib/ldb/ldb_tdb/ldb_tdb.h
source3/lib/netapi/examples/Makefile.in
source3/lib/netapi/tests/Makefile.in
source3/lib/nss_wrapper/config.m4 [deleted file]
source3/lib/nss_wrapper/config.mk [deleted file]
source3/lib/replace/getaddrinfo.h [deleted file]
source3/lib/replace/system/network.h [deleted file]
source3/lib/replace/system/passwd.h [deleted file]
source3/lib/socket_wrapper/config.m4 [deleted file]
source3/lib/socket_wrapper/socket_wrapper.c [deleted file]
source3/lib/talloc/config.mk [deleted file]
source3/lib/talloc/libtalloc.m4 [deleted file]
source3/lib/tdb/config.mk [deleted file]
source3/lib/tdb/libtdb.m4 [deleted file]
source3/libaddns/dns.h
source3/libads/ldap_schema.c
source3/librpc/gen_ndr/dfs.h
source3/librpc/gen_ndr/echo.h
source3/librpc/gen_ndr/epmapper.h
source3/librpc/gen_ndr/initshutdown.h
source3/librpc/gen_ndr/lsa.h
source3/librpc/gen_ndr/ndr_dfs.c
source3/librpc/gen_ndr/ndr_echo.c
source3/librpc/gen_ndr/ndr_echo.h
source3/librpc/gen_ndr/ndr_epmapper.c
source3/librpc/gen_ndr/ndr_eventlog.c
source3/librpc/gen_ndr/ndr_initshutdown.c
source3/librpc/gen_ndr/ndr_lsa.c
source3/librpc/gen_ndr/ndr_netlogon.c
source3/librpc/gen_ndr/ndr_notify.c
source3/librpc/gen_ndr/ndr_srvsvc.c
source3/librpc/gen_ndr/ndr_svcctl.c
source3/librpc/gen_ndr/ndr_winreg.c
source3/librpc/gen_ndr/netlogon.h
source3/librpc/gen_ndr/notify.h
source3/librpc/gen_ndr/svcctl.h
source3/librpc/idl/dfs.idl
source3/librpc/idl/drsuapi.idl
source3/librpc/idl/dssetup.idl
source3/librpc/idl/echo.idl
source3/librpc/idl/epmapper.idl
source3/librpc/idl/eventlog.idl
source3/librpc/idl/initshutdown.idl
source3/librpc/idl/lsa.idl
source3/librpc/idl/nbt.idl
source3/librpc/idl/netlogon.idl
source3/librpc/idl/notify.idl
source3/librpc/idl/ntsvcs.idl
source3/librpc/idl/spoolss.idl
source3/librpc/idl/srvsvc.idl
source3/librpc/idl/svcctl.idl
source3/librpc/idl/winreg.idl
source3/librpc/ndr/ndr_compression.c
source3/libsmb/async_smb.c
source3/m4/aclocal.m4
source3/modules/vfs_acl_xattr.c [new file with mode: 0644]
source3/nsswitch/pam_winbind.h
source3/nsswitch/winbind_nss_config.h
source3/samba4.m4
source3/samba4.mk
source3/script/build_idl.sh
source3/script/tests/selftest.sh
source3/services/services_db.c
source3/winbindd/idmap_ad.c
source3/winbindd/idmap_hash/idmap_hash.c [new file with mode: 0644]
source3/winbindd/idmap_hash/idmap_hash.h [new file with mode: 0644]
source3/winbindd/idmap_hash/mapfile.c [new file with mode: 0644]
source3/winbindd/nss_info.c
source3/winbindd/nss_info_template.c
source3/winbindd/winbindd_cache.c
source3/winbindd/winbindd_group.c
source3/winbindd/winbindd_pam.c
source3/winbindd/winbindd_proto.h
source3/winbindd/winbindd_rpc.c
source3/winbindd/winbindd_user.c
source3/winbindd/winbindd_util.c
source4/Makefile
source4/aclocal.m4
source4/autogen.sh
source4/build/m4/check_path.m4
source4/cluster/ctdb/brlock_ctdb.c
source4/cluster/ctdb/client/ctdb_client.c
source4/cluster/ctdb/common/ctdb_io.c
source4/cluster/ctdb/common/ctdb_ltdb.c
source4/cluster/ctdb/common/ctdb_message.c
source4/cluster/ctdb/common/ctdb_util.c
source4/cluster/ctdb/ctdb_cluster.c
source4/cluster/ctdb/opendb_ctdb.c
source4/cluster/ctdb/server/ctdb_call.c
source4/cluster/ctdb/server/ctdb_control.c
source4/cluster/ctdb/server/ctdb_daemon.c
source4/cluster/ctdb/server/ctdb_freeze.c
source4/cluster/ctdb/server/ctdb_lockwait.c
source4/cluster/ctdb/server/ctdb_ltdb_server.c
source4/cluster/ctdb/server/ctdb_recover.c
source4/cluster/ctdb/server/ctdb_server.c
source4/cluster/ctdb/server/ctdb_takeover.c
source4/cluster/ctdb/server/ctdb_traverse.c
source4/cluster/ctdb/takeover/ctdb_takeover.c
source4/cluster/ctdb/tcp/tcp_connect.c
source4/cluster/ctdb/tcp/tcp_init.c
source4/cluster/ctdb/tcp/tcp_io.c
source4/cluster/local.c
source4/configure.ac
source4/heimdal_build/config.h
source4/heimdal_build/gssapi-glue.c
source4/include/includes.h
source4/lib/com/main.c
source4/lib/com/tables.c
source4/lib/compression/mszip.c [deleted file]
source4/lib/compression/mszip.h [deleted file]
source4/lib/dbwrap/dbwrap.c
source4/lib/dbwrap/dbwrap_ctdb.c
source4/lib/dbwrap/dbwrap_tdb.c
source4/lib/messaging/messaging.c
source4/lib/nss_wrapper/nss_wrapper.c [deleted file]
source4/lib/nss_wrapper/nss_wrapper.h [deleted file]
source4/lib/nss_wrapper/nss_wrapper.pl [deleted file]
source4/lib/popt/CHANGES [deleted file]
source4/lib/popt/COPYING [deleted file]
source4/lib/popt/README [deleted file]
source4/lib/popt/findme.c [deleted file]
source4/lib/popt/findme.h [deleted file]
source4/lib/popt/popt.c [deleted file]
source4/lib/popt/popt.h [deleted file]
source4/lib/popt/poptconfig.c [deleted file]
source4/lib/popt/popthelp.c [deleted file]
source4/lib/popt/poptint.h [deleted file]
source4/lib/popt/poptparse.c [deleted file]
source4/lib/popt/system.h [deleted file]
source4/lib/replace/.checker_innocent [deleted file]
source4/lib/replace/Makefile.in [deleted file]
source4/lib/replace/README [deleted file]
source4/lib/replace/aclocal.m4 [deleted file]
source4/lib/replace/autoconf-2.60.m4 [deleted file]
source4/lib/replace/autogen.sh [deleted file]
source4/lib/replace/config.guess [deleted file]
source4/lib/replace/config.sub [deleted file]
source4/lib/replace/configure.ac [deleted file]
source4/lib/replace/dlfcn.c [deleted file]
source4/lib/replace/dlfcn.m4 [deleted file]
source4/lib/replace/getaddrinfo.c [deleted file]
source4/lib/replace/getifaddrs.c [deleted file]
source4/lib/replace/getpass.c [deleted file]
source4/lib/replace/getpass.m4 [deleted file]
source4/lib/replace/inet_aton.c [deleted file]
source4/lib/replace/inet_ntoa.c [deleted file]
source4/lib/replace/inet_ntop.c [deleted file]
source4/lib/replace/inet_pton.c [deleted file]
source4/lib/replace/install-sh [deleted file]
source4/lib/replace/libreplace.m4 [deleted file]
source4/lib/replace/libreplace_cc.m4 [deleted file]
source4/lib/replace/libreplace_ld.m4 [deleted file]
source4/lib/replace/libreplace_macros.m4 [deleted file]
source4/lib/replace/libreplace_network.m4 [deleted file]
source4/lib/replace/repdir.m4 [deleted file]
source4/lib/replace/repdir_getdents.c [deleted file]
source4/lib/replace/repdir_getdirentries.c [deleted file]
source4/lib/replace/replace.c [deleted file]
source4/lib/replace/replace.h [deleted file]
source4/lib/replace/samba.m4 [deleted file]
source4/lib/replace/snprintf.c [deleted file]
source4/lib/replace/socket.c [deleted file]
source4/lib/replace/socketpair.c [deleted file]
source4/lib/replace/strptime.c [deleted file]
source4/lib/replace/strptime.m4 [deleted file]
source4/lib/replace/system/README [deleted file]
source4/lib/replace/system/aio.h [deleted file]
source4/lib/replace/system/capability.h [deleted file]
source4/lib/replace/system/config.m4 [deleted file]
source4/lib/replace/system/dir.h [deleted file]
source4/lib/replace/system/filesys.h [deleted file]
source4/lib/replace/system/glob.h [deleted file]
source4/lib/replace/system/iconv.h [deleted file]
source4/lib/replace/system/kerberos.h [deleted file]
source4/lib/replace/system/locale.h [deleted file]
source4/lib/replace/system/readline.h [deleted file]
source4/lib/replace/system/select.h [deleted file]
source4/lib/replace/system/shmem.h [deleted file]
source4/lib/replace/system/syslog.h [deleted file]
source4/lib/replace/system/terminal.h [deleted file]
source4/lib/replace/system/time.h [deleted file]
source4/lib/replace/system/wait.h [deleted file]
source4/lib/replace/test/getifaddrs.c [deleted file]
source4/lib/replace/test/os2_delete.c [deleted file]
source4/lib/replace/test/shared_mmap.c [deleted file]
source4/lib/replace/test/strptime.c [deleted file]
source4/lib/replace/test/testsuite.c [deleted file]
source4/lib/replace/timegm.c [deleted file]
source4/lib/replace/timegm.m4 [deleted file]
source4/lib/replace/win32.m4 [deleted file]
source4/lib/replace/win32_replace.h [deleted file]
source4/lib/socket_wrapper/config.mk [deleted file]
source4/lib/socket_wrapper/socket_wrapper.h [deleted file]
source4/lib/socket_wrapper/testsuite.c [deleted file]
source4/lib/talloc/Makefile.in [deleted file]
source4/lib/talloc/NEWS [deleted file]
source4/lib/talloc/aclocal.m4 [deleted file]
source4/lib/talloc/autogen.sh [deleted file]
source4/lib/talloc/config.guess [deleted file]
source4/lib/talloc/config.sub [deleted file]
source4/lib/talloc/configure.ac [deleted file]
source4/lib/talloc/install-sh [deleted file]
source4/lib/talloc/rules.mk [deleted file]
source4/lib/talloc/talloc.3.xml [deleted file]
source4/lib/talloc/talloc.c [deleted file]
source4/lib/talloc/talloc.h [deleted file]
source4/lib/talloc/talloc.i [deleted file]
source4/lib/talloc/talloc.mk [deleted file]
source4/lib/talloc/talloc.pc.in [deleted file]
source4/lib/talloc/talloc_guide.txt [deleted file]
source4/lib/talloc/testsuite.c [deleted file]
source4/lib/talloc/web/index.html [deleted file]
source4/lib/tdb/Makefile.in [deleted file]
source4/lib/tdb/aclocal.m4 [deleted file]
source4/lib/tdb/autogen.sh [deleted file]
source4/lib/tdb/common/dump.c [deleted file]
source4/lib/tdb/common/error.c [deleted file]
source4/lib/tdb/common/freelist.c [deleted file]
source4/lib/tdb/common/freelistcheck.c [deleted file]
source4/lib/tdb/common/io.c [deleted file]
source4/lib/tdb/common/lock.c [deleted file]
source4/lib/tdb/common/open.c [deleted file]
source4/lib/tdb/common/tdb.c [deleted file]
source4/lib/tdb/common/tdb_private.h [deleted file]
source4/lib/tdb/common/transaction.c [deleted file]
source4/lib/tdb/common/traverse.c [deleted file]
source4/lib/tdb/config.guess [deleted file]
source4/lib/tdb/config.sub [deleted file]
source4/lib/tdb/configure.ac [deleted file]
source4/lib/tdb/docs/README [deleted file]
source4/lib/tdb/docs/tdb.magic [deleted file]
source4/lib/tdb/include/tdb.h [deleted file]
source4/lib/tdb/install-sh [deleted file]
source4/lib/tdb/python.mk [deleted file]
source4/lib/tdb/python/tdbdump.py [deleted file]
source4/lib/tdb/python/tests/simple.py [deleted file]
source4/lib/tdb/rules.mk [deleted file]
source4/lib/tdb/tdb.i [deleted file]
source4/lib/tdb/tdb.mk [deleted file]
source4/lib/tdb/tdb.pc.in [deleted file]
source4/lib/tdb/tdb.py [deleted file]
source4/lib/tdb/tdb_wrap.c [deleted file]
source4/lib/tdb/tools/tdbbackup.c [deleted file]
source4/lib/tdb/tools/tdbdump.c [deleted file]
source4/lib/tdb/tools/tdbtest.c [deleted file]
source4/lib/tdb/tools/tdbtool.c [deleted file]
source4/lib/tdb/tools/tdbtorture.c [deleted file]
source4/lib/tdb/web/index.html [deleted file]
source4/lib/tdb_wrap.c
source4/lib/util/util_tdb.c
source4/librpc/idl/dfs.idl
source4/librpc/idl/drsuapi.idl
source4/librpc/idl/eventlog.idl
source4/librpc/idl/lsa.idl
source4/librpc/idl/netlogon.idl
source4/librpc/idl/ntsvcs.idl
source4/librpc/idl/svcctl.idl
source4/librpc/ndr/libndr.h
source4/librpc/ndr/ndr_compression.c
source4/librpc/ndr/ndr_misc.c
source4/librpc/tests/samr-CreateUser-in.dat [moved from testprogs/blackbox/ndrdump/samr-CreateUser-in.dat with 100% similarity]
source4/librpc/tests/samr-CreateUser-out.dat [moved from testprogs/blackbox/ndrdump/samr-CreateUser-out.dat with 100% similarity]
source4/librpc/tests/test_ndrdump.sh [moved from testprogs/blackbox/test_ndrdump.sh with 94% similarity]
source4/main.mk
source4/nsswitch/winbind_nss_config.h
source4/ntvfs/common/brlock.c
source4/ntvfs/common/brlock_tdb.c
source4/ntvfs/common/notify.c
source4/ntvfs/common/opendb_tdb.c
source4/ntvfs/posix/vfs_posix.c
source4/ntvfs/posix/xattr_tdb.c
source4/param/secrets.c
source4/samba4-knownfail
source4/script/build_smb_interfaces.pl [deleted file]
source4/script/harness2subunit.pl
source4/scripting/python/config.m4
source4/selftest/samba4_tests.sh
source4/smbd/process_prefork.c
source4/smbd/process_standard.c
source4/torture/basic/delaywrite.c
source4/torture/basic/mangle_test.c
source4/torture/local/config.mk
source4/torture/local/dbspeed.c
source4/torture/tests/test_gentest.sh [moved from testprogs/blackbox/test_gentest.sh with 84% similarity]
source4/torture/tests/test_locktest.sh [moved from testprogs/blackbox/test_locktest.sh with 84% similarity]
source4/torture/tests/test_masktest.sh [moved from testprogs/blackbox/test_masktest.sh with 84% similarity]

index 2b09221efc0d980986c542cd52ef388e2cde5105..f6824a1181cab3421023ee183ef0be6cd836b997 100644 (file)
@@ -26,8 +26,8 @@ libmsrpc              Chris Nichols <skel@samba.org>
 
 libsmbclient           Derrell Lipman <derrell@samba.org>
 
-pdb_*sql               Wilco Baan Hofman <synnack@users.sf.net>
-                       Florian Effenberger <floeff@users.sf.net>
+pdb_*sql               Collen Blijenberg <collen@hermanjordan.nl>
+                               Herwin Weststrate <herwin@snt.utwente.nl>
 
                        http://pdbsql.sourceforge.net/
 
index 52ecf0e102fc91ef056ca2f1d360d9752415a8a5..8063ae8691a78996e372bb068abe17a3bce0f51e 100644 (file)
@@ -173,7 +173,7 @@ Goto
 ----
 
 While many people have been academically taught that goto's are fundamentally
-evil, then can greatly enhance readability and reduce memory leaks when used
+evil, they can greatly enhance readability and reduce memory leaks when used
 as the single exit point from a function.  But in no Samba world what so ever 
 is a goto outside of a function or block of code a good idea.
 
index dd4518f212d4e5d014a432acd12349e47a05f632..d9f0fd32c8de89e7e247811c63b8077813d55ed3 100644 (file)
@@ -6,7 +6,7 @@
 
 CC = @CC@
 
-SAMBA_DIR = ../../source
+SAMBA_DIR = ../../source3
 SAMBA_INCLUDES = -I$(SAMBA_DIR)/include
 SAMBA_LIBPATH = -L$(SAMBA_DIR)/bin
 
@@ -16,7 +16,7 @@ GTK_LIBS  = `gtk-config --libs`
 #GTK_CFLAGS = `pkg-config gtk+-2.0 --cflags`
 #GTK_LIBS = `pkg-config gtk+-2.0 --libs`
 
-FLAGS = @CPPFLAGS@ @CFLAGS@ $(GTK_CFLAGS) $(SAMBA_INCLUDES)
+CCFLAGS = @CPPFLAGS@ @CFLAGS@ $(GTK_CFLAGS) $(SAMBA_INCLUDES)
 
 PICFLAG=@PICFLAG@
 LDFLAGS= $(SAMBA_LIBPATH) @PIE_LDFLAGS@ @LDFLAGS@
@@ -27,7 +27,7 @@ CMDLINE_LIBS = @POPTLIBS@
 LIBS = $(EXTERNAL_LIBS) $(LIBSMBCLIENT_LIBS)
 
 # Compile a source file. (.c --> .o)
-COMPILE_CC = $(CC) -I. $(FLAGS) $(PICFLAG) -c $< -o $@
+COMPILE_CC = $(CC) -I. $(CCFLAGS) $(PICFLAG) -c $< -o $@
 COMPILE = $(COMPILE_CC)
 
 MAKEDIR = || exec false; \
@@ -68,67 +68,67 @@ all:        $(TESTS) smbsh
 
 testsmbc: testsmbc.o
        @echo Linking testsmbc
-       @$(CC) $(FLAGS) $(LDFLAGS) -o $@ $< $(LIBS)
+       @$(CC) $(CCFLAGS) $(LDFLAGS) -o $@ $< $(LIBS)
 
 tree: tree.o
        @echo Linking tree
-       @$(CC) $(GTK_CFLAGS) $(FLAGS) $(LDFLAGS) -o $@ $< $(GTK_LIBS) $(LIBS)
+       @$(CC) $(GTK_CFLAGS) $(CCFLAGS) $(LDFLAGS) -o $@ $< $(GTK_LIBS) $(LIBS)
 
 testacl: testacl.o
        @echo Linking testacl
-       @$(CC) $(FLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(CMDLINE_LIBS)
 
 testacl2: testacl2.o
        @echo Linking testacl2
-       @$(CC) $(FLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(CMDLINE_LIBS)
 
 testacl3: testacl3.o
        @echo Linking testacl3
-       @$(CC) $(FLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(CMDLINE_LIBS)
 
 testbrowse: testbrowse.o
        @echo Linking testbrowse
-       @$(CC) $(FLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(CMDLINE_LIBS)
 
 testbrowse2: testbrowse2.o
        @echo Linking testbrowse2
-       @$(CC) $(FLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(CMDLINE_LIBS)
 
 teststat: teststat.o
        @echo Linking teststat
-       @$(CC) $(FLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(CMDLINE_LIBS)
 
 teststat2: teststat2.o
        @echo Linking teststat2
-       @$(CC) $(FLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(CMDLINE_LIBS)
 
 teststat3: teststat3.o
        @echo Linking teststat3
-       @$(CC) $(FLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(CMDLINE_LIBS)
 
 testtruncate: testtruncate.o
        @echo Linking testtruncate
-       @$(CC) $(FLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(CMDLINE_LIBS)
 
 testchmod: testchmod.o
        @echo Linking testchmod
-       @$(CC) $(FLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(CMDLINE_LIBS)
 
 testutime: testutime.o
        @echo Linking testutime
-       @$(CC) $(FLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(CMDLINE_LIBS)
 
 testread: testread.o
        @echo Linking testread
-       @$(CC) $(FLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(CMDLINE_LIBS)
 
 testwrite: testwrite.o
        @echo Linking testwrite
-       @$(CC) $(FLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(CMDLINE_LIBS)
 
 testctx: testctx.o
        @echo Linking testctx
-       @$(CC) $(FLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(CMDLINE_LIBS)
 
 smbsh:
        make -C smbwrapper
index eb470056e1cb2917173b7e8e799c08d81d9cb89c..952015e96e82632606f732d6bd6bee33615ccd8d 100644 (file)
@@ -3,9 +3,9 @@ DEFS = -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
 
 CFLAGS = -I$(SAMBA_INCL) $(EXTLIB_INCL)
 
-LDFLAGS = -L/usr/local/samba/lib -L../../../source/bin
+LDFLAGS = -L/usr/local/samba/lib -L../../../source3/bin
 
-SMBINCLUDE = -I../../../source/include
+SMBINCLUDE = -I../../../source3/include
 CFLAGS= -fpic -g -O0 $(DEFS) $(SMBINCLUDE)
 
 BIN    = .
diff --git a/lib/README b/lib/README
new file mode 100644 (file)
index 0000000..b994447
--- /dev/null
@@ -0,0 +1,10 @@
+compression - Various compression algorithms (MSZIP, lzxpress)
+nss_wrapper - Wrapper for the user and group NSS API allowing the use 
+              of other data sources.
+popt - Command-line option parsing library
+replace - Provides replacements for standard (POSIX, C99) functions 
+          not provided by the host platform.
+socket_wrapper - Wrapper library allowing TCP/IP traffic to be redirected 
+                 over Unix domain sockets.
+talloc - Hierarchical pool based memory allocator 
+tdb - Simple but fast key/value database library, supporting multiple writers
similarity index 99%
rename from source3/lib/compression/mszip.c
rename to lib/compression/mszip.c
index aeeb2d8afd57681404f3edd61f66c3b56808b51c..9aa1772414bcbd0bc376e234799338654b161f4f 100644 (file)
@@ -21,7 +21,7 @@
  */
 
 #include "includes.h"
-#include "lib/compression/mszip.h"
+#include "../compression/mszip.h"
 
 /*--------------------------------------------------------------------------*/
 /* our archiver information / state */
similarity index 96%
rename from source4/lib/compression/testsuite.c
rename to lib/compression/testsuite.c
index f6e4d49afbcb1befac8e4d22ab9dec816c0202d6..b9cebb2e8d121e855cfe1844e6a8d890bb1a7999 100644 (file)
@@ -20,7 +20,7 @@
 
 #include "includes.h"
 #include "torture/torture.h"
-#include "lib/compression/mszip.h"
+#include "../compression/mszip.h"
 
 struct torture_suite *torture_local_compression(TALLOC_CTX *mem_ctx)
 {
similarity index 88%
rename from source4/lib/nss_wrapper/config.m4
rename to lib/nss_wrapper/config.m4
index 58e94f9830ad4ea1a9ece359019d92c28c579d12..45423788d126ea9de3a019516ca1e78be340e310 100644 (file)
@@ -12,7 +12,7 @@ if eval "test x$enable_nss_wrapper = xyes"; then
        HAVE_NSS_WRAPPER=yes
 
        # this is only used for samba3
-       NSS_WRAPPER_OBJS="lib/nss_wrapper/nss_wrapper.o"
+       NSS_WRAPPER_OBJS="../lib/nss_wrapper/nss_wrapper.o"
 fi
 
 AC_SUBST(HAVE_NSS_WRAPPER)
similarity index 99%
rename from source3/lib/nss_wrapper/nss_wrapper.c
rename to lib/nss_wrapper/nss_wrapper.c
index 5d443facd3e7ed5402f4cb52eb9a2c7d34ef073b..da090832b0674948bc00d07a09f228378a8a1630 100644 (file)
@@ -34,7 +34,7 @@
 #ifdef _SAMBA_BUILD_
 
 #define NSS_WRAPPER_NOT_REPLACE
-#include "lib/replace/replace.h"
+#include "../replace/replace.h"
 #include "system/passwd.h"
 #include "system/filesys.h"
 
similarity index 100%
rename from source3/popt/CHANGES
rename to lib/popt/CHANGES
similarity index 100%
rename from source3/popt/COPYING
rename to lib/popt/COPYING
similarity index 100%
rename from source3/popt/README
rename to lib/popt/README
similarity index 83%
rename from source4/lib/popt/config.mk
rename to lib/popt/config.mk
index e015577aead0c40bb018764e5db51e186af28157..04cc2c7ea53694afaa888d6eb2ab1a4b4fdc27ba 100644 (file)
@@ -1,5 +1,5 @@
 [SUBSYSTEM::LIBPOPT]
-CFLAGS = -Ilib/popt
+CFLAGS = -I$(poptsrcdir)
 
 LIBPOPT_OBJ_FILES = $(addprefix $(poptsrcdir)/, findme.o popt.o poptconfig.o popthelp.o poptparse.o)
 
similarity index 100%
rename from source3/popt/dummy.in
rename to lib/popt/dummy.in
similarity index 100%
rename from source3/popt/findme.c
rename to lib/popt/findme.c
similarity index 100%
rename from source3/popt/findme.h
rename to lib/popt/findme.h
similarity index 98%
rename from source4/lib/popt/libpopt.m4
rename to lib/popt/libpopt.m4
index 79980d1d6b504344330e1ce0d4e76ff5c4a7f698..cfa2eaad23210342575082f0d16009478dce2303 100644 (file)
@@ -25,7 +25,7 @@ if test x"$INCLUDED_POPT" != x"no"; then
        dnl find the popt sources. This is meant to work both for 
        dnl popt standalone builds, and builds of packages using popt
        poptdir=""
-       poptpaths="$srcdir $srcdir/lib/popt $srcdir/popt $srcdir/../popt"
+       poptpaths="$srcdir $srcdir/lib/popt $srcdir/popt $srcdir/../popt $srcdir/../lib/popt"
        for d in $poptpaths; do
                if test -f "$d/popt.c"; then
                        poptdir="$d"            
similarity index 100%
rename from source3/popt/popt.c
rename to lib/popt/popt.c
similarity index 100%
rename from source3/popt/popt.h
rename to lib/popt/popt.h
similarity index 100%
rename from source3/popt/popthelp.c
rename to lib/popt/popthelp.c
similarity index 100%
rename from source3/popt/poptint.h
rename to lib/popt/poptint.h
similarity index 52%
rename from source4/lib/popt/samba.m4
rename to lib/popt/samba.m4
index 855fd6c402690d2ff03d21f9ca51a666af537896..627dd854b2728e944428b9eb9ec8aa9dbe8d5ae7 100644 (file)
@@ -1,8 +1,8 @@
-m4_include(lib/popt/libpopt.m4)
+m4_include(../lib/popt/libpopt.m4)
 
 if test x"$POPT_OBJ" = "x"; then
        SMB_EXT_LIB(LIBPOPT, [${POPT_LIBS}])
 else
-       SMB_INCLUDE_MK(lib/popt/config.mk)
+       SMB_INCLUDE_MK(../lib/popt/config.mk)
 fi
 
similarity index 100%
rename from source3/popt/system.h
rename to lib/popt/system.h
similarity index 98%
rename from source4/lib/replace/getaddrinfo.h
rename to lib/replace/getaddrinfo.h
index dddd699b623f5ac3bd3da7288654600d67a5b8f2..cf040da2db47e19b21ae607a82b565f44d523639 100644 (file)
@@ -75,7 +75,9 @@ in lib/replace we use rep_xxx()
 #undef getnameinfo
 #endif
 #define getnameinfo rep_getnameinfo
+#ifndef HAVE_GETNAMEINFO
 #define HAVE_GETNAMEINFO
+#endif
 
 extern int rep_getaddrinfo(const char *node, const char *service,
                        const struct addrinfo * hints, struct addrinfo ** res);
similarity index 96%
rename from source3/lib/replace/libreplace.m4
rename to lib/replace/libreplace.m4
index 71fa0416721497d836c6bc2ca56663489df704e2..dc7d88e6e183b02f01486683a8466fca3f17cbd4 100644 (file)
@@ -5,7 +5,7 @@ echo "LIBREPLACE_LOCATION_CHECKS: START"
 dnl find the libreplace sources. This is meant to work both for 
 dnl libreplace standalone builds, and builds of packages using libreplace
 libreplacedir=""
-libreplacepaths="$srcdir $srcdir/lib/replace $srcdir/libreplace $srcdir/../libreplace $srcdir/../replace"
+libreplacepaths="$srcdir $srcdir/lib/replace $srcdir/libreplace $srcdir/../libreplace $srcdir/../replace $srcdir/../lib/replace"
 for d in $libreplacepaths; do
        if test -f "$d/replace.c"; then
                libreplacedir="$d"              
@@ -34,13 +34,18 @@ echo "LIBREPLACE_BROKEN_CHECKS: START"
 dnl find the libreplace sources. This is meant to work both for 
 dnl libreplace standalone builds, and builds of packages using libreplace
 libreplacedir=""
-for d in "$srcdir" "$srcdir/lib/replace" "$srcdir/libreplace" "$srcdir/../libreplace" "$srcdir/../replace"; do
+libreplacepaths="$srcdir $srcdir/lib/replace $srcdir/libreplace $srcdir/../libreplace $srcdir/../replace $srcdir/../lib/replace"
+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)
 
similarity index 99%
rename from source4/lib/replace/system/network.h
rename to lib/replace/system/network.h
index 077892a54e2d5d422d98d8daaff58c4ee93c3d54..473d79b5f2997835e9a6c426d0f63a721ece9feb 100644 (file)
@@ -326,7 +326,7 @@ struct addrinfo {
 #ifndef SOCKET_WRAPPER_NOT_REPLACE
 #define SOCKET_WRAPPER_REPLACE
 #endif
-#include "lib/socket_wrapper/socket_wrapper.h"
+#include "../socket_wrapper/socket_wrapper.h"
 #endif
 
 #endif
similarity index 98%
rename from source4/lib/replace/system/passwd.h
rename to lib/replace/system/passwd.h
index cad3197ccbac4cb5471787e5d36d580efa708018..9d7de34bce968ea6ff9c88c8ff9bcf3b60f6d246 100644 (file)
@@ -104,7 +104,7 @@ char *rep_getpass(const char *prompt);
 #ifndef NSS_WRAPPER_NOT_REPLACE
 #define NSS_WRAPPER_REPLACE
 #endif
-#include "lib/nss_wrapper/nss_wrapper.h"
+#include "../nss_wrapper/nss_wrapper.h"
 #endif
 
 #endif
similarity index 89%
rename from source4/lib/socket_wrapper/config.m4
rename to lib/socket_wrapper/config.m4
index f3ffb895a90600a1dd58956c417c405316aab2e9..68e392b3e70ecc03f5e4b9bcb5697f1a85a68636 100644 (file)
@@ -14,7 +14,7 @@ if eval "test x$enable_socket_wrapper = xyes"; then
        HAVE_SOCKET_WRAPPER=yes
 
        # this is only used for samba3
-       SOCKET_WRAPPER_OBJS="lib/socket_wrapper/socket_wrapper.o"
+       SOCKET_WRAPPER_OBJS="../lib/socket_wrapper/socket_wrapper.o"
 fi
 
 AC_SUBST(DEFAULT_TEST_OPTIONS)
similarity index 99%
rename from source4/lib/socket_wrapper/socket_wrapper.c
rename to lib/socket_wrapper/socket_wrapper.c
index 336179d837ba9c1a2fa9948206cb1f290b6c3fab..e8d27adc37fd8487a128c675aff582e009cc11c7 100644 (file)
@@ -42,7 +42,7 @@
 #ifdef _SAMBA_BUILD_
 
 #define SOCKET_WRAPPER_NOT_REPLACE
-#include "lib/replace/replace.h"
+#include "../replace/replace.h"
 #include "system/network.h"
 #include "system/filesys.h"
 #include "system/time.h"
similarity index 98%
rename from source3/lib/socket_wrapper/testsuite.c
rename to lib/socket_wrapper/testsuite.c
index 8877418e4cc46cfac37ca282fc471cc48d7f94c0..e6e08e3be685327f7b4c4fee83d4ecffa635372a 100644 (file)
@@ -21,7 +21,7 @@
 
 #include "includes.h"
 #include "system/network.h"
-#include "lib/socket_wrapper/socket_wrapper.h"
+#include "../socket_wrapper/socket_wrapper.h"
 #include "torture/torture.h"
 
 static char *old_dir = NULL;
similarity index 100%
rename from source3/lib/talloc/NEWS
rename to lib/talloc/NEWS
similarity index 52%
rename from source4/lib/talloc/config.mk
rename to lib/talloc/config.mk
index c13e1b79abd4a43b887105c1e938392e57dc19ea..5cdf3a1a8e1611ffd69965bff18cea0f288aa973 100644 (file)
@@ -1,7 +1,7 @@
 [LIBRARY::LIBTALLOC]
 OUTPUT_TYPE = MERGED_OBJ
-CFLAGS = -Ilib/talloc
+CFLAGS = -I$(tallocsrcdir)
 
-LIBTALLOC_OBJ_FILES = lib/talloc/talloc.o
+LIBTALLOC_OBJ_FILES = $(tallocsrcdir)/talloc.o
 
 MANPAGES += $(tallocdir)/talloc.3
similarity index 94%
rename from source4/lib/talloc/libtalloc.m4
rename to lib/talloc/libtalloc.m4
index fd2b4b22cdbb21777d5ea90a7e303d4a9f12a7b5..e6830fbef680c8db31aef664af8a476d30731895 100644 (file)
@@ -1,7 +1,7 @@
 dnl find the talloc sources. This is meant to work both for 
 dnl talloc standalone builds, and builds of packages using talloc
 tallocdir=""
-tallocpaths=". lib/talloc talloc ../talloc"
+tallocpaths=". lib/talloc talloc ../talloc ../lib/talloc"
 for d in $tallocpaths; do
        if test -f "$srcdir/$d/talloc.c"; then
                tallocdir="$d"
similarity index 79%
rename from source4/lib/tdb/config.mk
rename to lib/tdb/config.mk
index b9a8f80dda597dabffd2fde9d551a3e28f986325..90c9ba2863bda2e7a419ba406fdabd3e1dd5690a 100644 (file)
@@ -2,12 +2,12 @@
 # Start SUBSYSTEM LIBTDB
 [LIBRARY::LIBTDB]
 OUTPUT_TYPE = STATIC_LIBRARY
-CFLAGS = -Ilib/tdb/include
+CFLAGS = -I$(tdbsrcdir)/include
 #
 # End SUBSYSTEM ldb
 ################################################
 
-LIBTDB_OBJ_FILES = $(addprefix lib/tdb/common/, \
+LIBTDB_OBJ_FILES = $(addprefix $(tdbsrcdir)/common/, \
        tdb.o dump.o io.o lock.o \
        open.o traverse.o freelist.o \
        error.o transaction.o)
@@ -21,7 +21,7 @@ PRIVATE_DEPENDENCIES = \
 # End BINARY tdbtool
 ################################################
 
-tdbtool_OBJ_FILES = lib/tdb/tools/tdbtool.o
+tdbtool_OBJ_FILES = $(tdbsrcdir)/tools/tdbtool.o
 
 ################################################
 # Start BINARY tdbtorture
@@ -32,7 +32,7 @@ PRIVATE_DEPENDENCIES = \
 # End BINARY tdbtorture
 ################################################
 
-tdbtorture_OBJ_FILES = lib/tdb/tools/tdbtorture.o
+tdbtorture_OBJ_FILES = $(tdbsrcdir)/tools/tdbtorture.o
 
 ################################################
 # Start BINARY tdbdump
@@ -43,7 +43,7 @@ PRIVATE_DEPENDENCIES = \
 # End BINARY tdbdump
 ################################################
 
-tdbdump_OBJ_FILES = lib/tdb/tools/tdbdump.o
+tdbdump_OBJ_FILES = $(tdbsrcdir)/tools/tdbdump.o
 
 ################################################
 # Start BINARY tdbbackup
@@ -54,4 +54,4 @@ PRIVATE_DEPENDENCIES = \
 # End BINARY tdbbackup
 ################################################
 
-tdbbackup_OBJ_FILES = lib/tdb/tools/tdbbackup.o
+tdbbackup_OBJ_FILES = $(tdbsrcdir)/tools/tdbbackup.o
similarity index 91%
rename from source4/lib/tdb/libtdb.m4
rename to lib/tdb/libtdb.m4
index 1e17a7a4f23c74ea30eaf3914c5346b1915776df..252e0b0be30b929adcd2f82275119bac81e6b211 100644 (file)
@@ -1,7 +1,7 @@
 dnl find the tdb sources. This is meant to work both for 
 dnl tdb standalone builds, and builds of packages using tdb
 tdbdir=""
-tdbpaths="$srcdir $srcdir/lib/tdb $srcdir/tdb $srcdir/../tdb"
+tdbpaths="$srcdir $srcdir/lib/tdb $srcdir/tdb $srcdir/../tdb $srcdir/../lib/tdb"
 for d in $tdbpaths; do
        if test -f "$d/common/tdb.c"; then
                tdbdir="$d"             
similarity index 100%
rename from source3/lib/tdb/python.mk
rename to lib/tdb/python.mk
similarity index 100%
rename from source3/lib/tdb/rules.mk
rename to lib/tdb/rules.mk
similarity index 100%
rename from source3/lib/tdb/tdb.i
rename to lib/tdb/tdb.i
similarity index 100%
rename from source3/lib/tdb/tdb.mk
rename to lib/tdb/tdb.mk
similarity index 100%
rename from source3/lib/tdb/tdb.pc.in
rename to lib/tdb/tdb.pc.in
similarity index 100%
rename from source3/lib/tdb/tdb.py
rename to lib/tdb/tdb.py
similarity index 100%
rename from source4/pidl/MANIFEST
rename to pidl/MANIFEST
similarity index 100%
rename from source4/pidl/META.yml
rename to pidl/META.yml
similarity index 100%
rename from source4/pidl/Makefile.PL
rename to pidl/Makefile.PL
similarity index 100%
rename from source4/pidl/README
rename to pidl/README
similarity index 100%
rename from source4/pidl/TODO
rename to pidl/TODO
similarity index 100%
rename from source4/pidl/config.m4
rename to pidl/config.m4
similarity index 100%
rename from source4/pidl/config.mk
rename to pidl/config.mk
similarity index 100%
rename from source4/pidl/expr.yp
rename to pidl/expr.yp
similarity index 100%
rename from source4/pidl/idl.yp
rename to pidl/idl.yp
diff --git a/pidl/lib/Parse/Pidl/Samba4/EJS.pm b/pidl/lib/Parse/Pidl/Samba4/EJS.pm
new file mode 100644 (file)
index 0000000..efb3f28
--- /dev/null
@@ -0,0 +1,874 @@
+###################################################
+# EJS function wrapper generator
+# Copyright jelmer@samba.org 2005
+# Copyright Andrew Tridgell 2005
+# released under the GNU GPL
+
+package Parse::Pidl::Samba4::EJS;
+
+use Exporter;
+@ISA = qw(Exporter);
+@EXPORT_OK = qw(check_null_pointer fn_declare TypeFunctionName);
+
+use strict;
+use Parse::Pidl::Typelist qw(typeHasBody);
+use Parse::Pidl::CUtil qw(get_pointer_to get_value_of);
+use Parse::Pidl::Util qw(has_property ParseExpr);
+use Parse::Pidl::NDR qw(GetPrevLevel GetNextLevel);
+use Parse::Pidl::Samba4::Header qw(GenerateStructEnv GenerateFunctionInEnv
+                                        GenerateFunctionOutEnv);
+
+use vars qw($VERSION);
+$VERSION = '0.01';
+
+sub new($) {
+       my ($class) = @_;
+       my $self = { res => "", res_hdr => "", tabs => "", constants => {}};
+       bless($self, $class);
+}
+
+sub pidl_hdr ($$)
+{
+       my $self = shift;
+       $self->{res_hdr} .= shift;
+}
+
+sub pidl($$)
+{
+       my ($self, $d) = @_;
+       if ($d) {
+               $self->{res} .= $self->{tabs};
+               $self->{res} .= $d;
+       }
+       $self->{res} .= "\n";
+}
+
+sub indent($)
+{
+       my ($self) = @_;
+       $self->{tabs} .= "\t";
+}
+
+sub deindent($)
+{
+       my ($self) = @_;
+       $self->{tabs} = substr($self->{tabs}, 0, -1);
+}
+
+#####################################################################
+# check that a variable we get from ParseExpr isn't a null pointer
+sub check_null_pointer($$)
+{
+       my ($self, $size) = @_;
+       if ($size =~ /^\*/) {
+               my $size2 = substr($size, 1);
+               $self->pidl("if ($size2 == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;");
+       }
+}
+
+#####################################################################
+# work out is a parse function should be declared static or not
+sub fn_declare($$$)
+{
+       my ($self,$fn,$decl) = @_;
+
+       if (has_property($fn, "public")) {
+               $self->pidl_hdr("$decl;\n");
+               $self->pidl("_PUBLIC_ $decl");
+       } else {
+               $self->pidl("static $decl");
+       }
+}
+
+###########################
+# pull a scalar element
+sub EjsPullScalar($$$$$$$)
+{
+       my ($self, $e, $l, $var, $name, $env) = @_;
+
+       return if (has_property($e, "value"));
+
+       if (ref($e->{TYPE}) eq "HASH" and not defined($e->{TYPE}->{NAME})) {
+               $self->EjsTypePull($e->{TYPE}, $var);
+       } else {
+               my $pl = Parse::Pidl::NDR::GetPrevLevel($e, $l);
+        $var = get_pointer_to($var);
+        # have to handle strings specially :(
+               if (Parse::Pidl::Typelist::scalar_is_reference($e->{TYPE})
+                       and (defined($pl) and $pl->{TYPE} eq "POINTER")) {
+                $var = get_pointer_to($var);
+        }
+
+       my $t;
+               if (ref($e->{TYPE}) eq "HASH") {
+                       $t = "$e->{TYPE}->{TYPE}_$e->{TYPE}->{NAME}";
+               } else {
+                       $t = $e->{TYPE};
+               }
+               $self->pidl("EJS_CHECK(ejs_pull_$t(ejs, v, $name, $var));");
+       }
+}
+
+###########################
+# pull a pointer element
+sub EjsPullPointer($$$$$$)
+{
+       my ($self, $e, $l, $var, $name, $env) = @_;
+       $self->pidl("if (ejs_pull_null(ejs, v, $name)) {");
+       $self->indent;
+       if ($l->{POINTER_TYPE} eq "ref") {
+               $self->pidl("return NT_STATUS_INVALID_PARAMETER_MIX;");
+       } else {
+               $self->pidl("$var = NULL;");
+       }
+       $self->deindent;
+       $self->pidl("} else {");
+       $self->indent;
+       $self->pidl("EJS_ALLOC(ejs, $var);");
+       $var = get_value_of($var);              
+       $self->EjsPullElement($e, GetNextLevel($e, $l), $var, $name, $env);
+       $self->deindent;
+       $self->pidl("}");
+}
+
+###########################
+# pull a string element
+sub EjsPullString($$$$$$)
+{
+       my ($self, $e, $l, $var, $name, $env) = @_;
+       my $pl = GetPrevLevel($e, $l);
+       $var = get_pointer_to($var);
+       if (defined($pl) and $pl->{TYPE} eq "POINTER") {
+               $var = get_pointer_to($var);
+       }
+       $self->pidl("EJS_CHECK(ejs_pull_string(ejs, v, $name, $var));");
+}
+
+###########################
+# pull an array element
+sub EjsPullArray($$$$$$)
+{
+       my ($self, $e, $l, $var, $name, $env) = @_;
+       my $nl = GetNextLevel($e, $l);
+       my $length = ParseExpr($l->{LENGTH_IS}, $env, $e);
+       my $size = ParseExpr($l->{SIZE_IS}, $env, $e);
+       my $pl = GetPrevLevel($e, $l);
+       if ($pl && $pl->{TYPE} eq "POINTER") {
+               $var = get_pointer_to($var);
+       }
+       # uint8 arrays are treated as data blobs
+       if ($nl->{TYPE} eq 'DATA' && $e->{TYPE} eq 'uint8') {
+               if (!$l->{IS_FIXED}) {
+                       $self->check_null_pointer($size);
+                       $self->pidl("EJS_ALLOC_N(ejs, $var, $size);");
+               }
+               $self->check_null_pointer($length);
+               $self->pidl("ejs_pull_array_uint8(ejs, v, $name, $var, $length);");
+               return;
+       }
+       my $avar = $var . "[i]";
+       $self->pidl("{");
+       $self->indent;
+       $self->pidl("uint32_t i;");
+       if (!$l->{IS_FIXED}) {
+               $self->pidl("EJS_ALLOC_N(ejs, $var, $size);");
+       }
+       $self->pidl("for (i=0;i<$length;i++) {");
+       $self->indent;
+       $self->pidl("char *id = talloc_asprintf(ejs, \"%s.%u\", $name, i);");
+       $self->EjsPullElement($e, $nl, $avar, "id", $env);
+       $self->pidl("talloc_free(id);");
+       $self->deindent;
+       $self->pidl("}");
+       $self->pidl("ejs_push_uint32(ejs, v, $name \".length\", &i);");
+       $self->deindent;
+       $self->pidl("}");
+}
+
+###########################
+# pull a switch element
+sub EjsPullSwitch($$$$$$)
+{
+       my ($self, $e, $l, $var, $name, $env) = @_;
+       my $switch_var = ParseExpr($l->{SWITCH_IS}, $env, $e);
+       $self->pidl("ejs_set_switch(ejs, $switch_var);");
+       $self->EjsPullElement($e, GetNextLevel($e, $l), $var, $name, $env);
+}
+
+###########################
+# pull a structure element
+sub EjsPullElement($$$$$$)
+{
+       my ($self, $e, $l, $var, $name, $env) = @_;
+       if (($l->{TYPE} eq "POINTER")) {
+               $self->EjsPullPointer($e, $l, $var, $name, $env);
+       } elsif (has_property($e, "charset")) {
+               $self->EjsPullString($e, $l, $var, $name, $env);
+       } elsif ($l->{TYPE} eq "ARRAY") {
+               $self->EjsPullArray($e, $l, $var, $name, $env);
+       } elsif ($l->{TYPE} eq "DATA") {
+               $self->EjsPullScalar($e, $l, $var, $name, $env);
+       } elsif (($l->{TYPE} eq "SWITCH")) {
+               $self->EjsPullSwitch($e, $l, $var, $name, $env);
+       } else {
+               $self->pidl("return ejs_panic(ejs, \"unhandled pull type $l->{TYPE}\");");
+       }
+}
+
+#############################################
+# pull a structure/union element at top level
+sub EjsPullElementTop($$$)
+{
+       my ($self, $e, $env) = @_;
+       my $l = $e->{LEVELS}[0];
+       my $var = ParseExpr($e->{NAME}, $env, $e);
+       my $name = "\"$e->{NAME}\"";
+       $self->EjsPullElement($e, $l, $var, $name, $env);
+}
+
+###########################
+# pull a struct
+sub EjsStructPull($$$)
+{
+       my ($self, $d, $varname) = @_;
+       my $env = GenerateStructEnv($d, $varname);
+       $self->pidl("EJS_CHECK(ejs_pull_struct_start(ejs, &v, name));");
+    foreach my $e (@{$d->{ELEMENTS}}) {
+               $self->EjsPullElementTop($e, $env);
+       }
+}
+
+###########################
+# pull a union
+sub EjsUnionPull($$$)
+{
+       my ($self, $d, $varname) = @_;
+       my $have_default = 0;
+       $self->pidl("EJS_CHECK(ejs_pull_struct_start(ejs, &v, name));");
+       $self->pidl("switch (ejs->switch_var) {");
+       $self->indent;
+       foreach my $e (@{$d->{ELEMENTS}}) {
+               if ($e->{CASE} eq "default") {
+                       $have_default = 1;
+               }
+               $self->pidl("$e->{CASE}:");
+               $self->indent;
+               if ($e->{TYPE} ne "EMPTY") {
+                       $self->EjsPullElementTop($e, { $e->{NAME} => "$varname->$e->{NAME}"});
+               }
+               $self->pidl("break;");
+               $self->deindent;
+       }
+       if (! $have_default) {
+               $self->pidl("default:");
+               $self->indent;
+               $self->pidl("return ejs_panic(ejs, \"Bad switch value\");");
+               $self->deindent;
+       }
+       $self->deindent;
+       $self->pidl("}");
+}
+
+##############################################
+# put the enum elements in the constants array
+sub EjsEnumConstant($$)
+{
+       my ($self, $d) = @_;
+       return unless (defined($d->{ELEMENTS}));
+       my $v = 0;
+       foreach my $e (@{$d->{ELEMENTS}}) {
+               my $el = $e;
+               chomp $el;
+               if ($el =~ /^(.*)=\s*(.*)\s*$/) {
+                       $el = $1;
+                       $v = $2;
+               }
+               $self->{constants}->{$el} = $v;
+               $v++;
+       }
+}
+
+###########################
+# pull a enum
+sub EjsEnumPull($$$)
+{
+       my ($self, $d, $varname) = @_;
+       $self->EjsEnumConstant($d);
+       $self->pidl("unsigned e;");
+       $self->pidl("EJS_CHECK(ejs_pull_enum(ejs, v, name, &e));");
+       $self->pidl("*$varname = e;");
+}
+
+###########################
+# pull a bitmap
+sub EjsBitmapPull($$$)
+{
+       my ($self, $d, $varname) = @_;
+       my $type_fn = $d->{BASE_TYPE};
+       $self->pidl("EJS_CHECK(ejs_pull_$type_fn(ejs, v, name, $varname));");
+}
+
+sub EjsTypePullFunction($$$)
+{
+       sub EjsTypePullFunction($$$);
+       my ($self, $d, $name) = @_;
+       return if (has_property($d, "noejs"));
+
+       if ($d->{TYPE} eq "TYPEDEF") {
+               $self->EjsTypePullFunction($d->{DATA}, $name);
+               return;
+       }
+
+       if ($d->{TYPE} eq "STRUCT") {
+               $self->fn_declare($d, "NTSTATUS ejs_pull_$name(struct ejs_rpc *ejs, struct MprVar *v, const char *name, struct $name *r)");
+       } elsif ($d->{TYPE} eq "UNION") {
+               $self->fn_declare($d, "NTSTATUS ejs_pull_$name(struct ejs_rpc *ejs, struct MprVar *v, const char *name, union $name *r)");
+       } elsif ($d->{TYPE} eq "ENUM") {
+               $self->fn_declare($d, "NTSTATUS ejs_pull_$name(struct ejs_rpc *ejs, struct MprVar *v, const char *name, enum $name *r)");
+       } elsif ($d->{TYPE} eq "BITMAP") {
+               my($type_decl) = Parse::Pidl::Typelist::mapTypeName($d->{BASE_TYPE});
+               $self->fn_declare($d, "NTSTATUS ejs_pull_$name(struct ejs_rpc *ejs, struct MprVar *v, const char *name, $type_decl *r)");
+       }
+       $self->pidl("{");
+       $self->indent;
+
+       $self->EjsTypePull($d, "r");
+
+       $self->pidl("return NT_STATUS_OK;");
+       $self->deindent;
+       $self->pidl("}\n");
+}
+
+sub EjsTypePull($$$)
+{
+       my ($self, $d, $varname) = @_;
+       if ($d->{TYPE} eq 'STRUCT') {
+               $self->EjsStructPull($d, $varname);
+       } elsif ($d->{TYPE} eq 'UNION') {
+               $self->EjsUnionPull($d, $varname);
+       } elsif ($d->{TYPE} eq 'ENUM') {
+               $self->EjsEnumPull($d, $varname);
+       } elsif ($d->{TYPE} eq 'BITMAP') {
+               $self->EjsBitmapPull($d, $varname);
+       } else {
+               warn "Unhandled pull $varname of type $d->{TYPE}";
+       }
+}
+
+#####################
+# generate a function
+sub EjsPullFunction($$)
+{
+       my ($self, $d) = @_;
+       my $env = GenerateFunctionInEnv($d);
+       my $name = $d->{NAME};
+
+       $self->pidl("\nstatic NTSTATUS ejs_pull_$name(struct ejs_rpc *ejs, struct MprVar *v, struct $name *r)");
+       $self->pidl("{");
+       $self->indent;
+       $self->pidl("EJS_CHECK(ejs_pull_struct_start(ejs, &v, \"input\"));");
+
+       # we pull non-array elements before array elements as arrays
+       # may have length_is() or size_is() properties that depend
+       # on the non-array elements
+       foreach my $e (@{$d->{ELEMENTS}}) {
+               next unless (grep(/in/, @{$e->{DIRECTION}}));
+               next if (has_property($e, "length_is") || has_property($e, "size_is"));
+               $self->EjsPullElementTop($e, $env);
+       }
+
+       foreach my $e (@{$d->{ELEMENTS}}) {
+               next unless (grep(/in/, @{$e->{DIRECTION}}));
+               next unless (has_property($e, "length_is") || has_property($e, "size_is"));
+               $self->EjsPullElementTop($e, $env);
+       }
+
+       $self->pidl("return NT_STATUS_OK;");
+       $self->deindent;
+       $self->pidl("}\n");
+}
+
+###########################
+# push a scalar element
+sub EjsPushScalar($$$$$$)
+{
+       my ($self, $e, $l, $var, $name, $env) = @_;
+
+       if (ref($e->{TYPE}) eq "HASH" and not defined($e->{TYPE}->{NAME})) {
+               $self->EjsTypePush($e->{TYPE}, get_pointer_to($var));
+       } else {
+    # have to handle strings specially :(
+        my $pl = GetPrevLevel($e, $l);
+
+               if ((not Parse::Pidl::Typelist::scalar_is_reference($e->{TYPE}))
+                       or (defined($pl) and $pl->{TYPE} eq "POINTER")) {
+                                       $var = get_pointer_to($var);
+                       }
+
+               $self->pidl("EJS_CHECK(".TypeFunctionName("ejs_push", $e->{TYPE})."(ejs, v, $name, $var));");
+       }
+}
+
+###########################
+# push a string element
+sub EjsPushString($$$$$$)
+{
+       my ($self, $e, $l, $var, $name, $env) = @_;
+       my $pl = GetPrevLevel($e, $l);
+       if (defined($pl) and $pl->{TYPE} eq "POINTER") {
+               $var = get_pointer_to($var);
+       }
+       $self->pidl("EJS_CHECK(ejs_push_string(ejs, v, $name, $var));");
+}
+
+###########################
+# push a pointer element
+sub EjsPushPointer($$$$$$)
+{
+       my ($self, $e, $l, $var, $name, $env) = @_;
+       $self->pidl("if (NULL == $var) {");
+       $self->indent;
+       if ($l->{POINTER_TYPE} eq "ref") {
+               $self->pidl("return NT_STATUS_INVALID_PARAMETER_MIX;");
+       } else {
+               $self->pidl("EJS_CHECK(ejs_push_null(ejs, v, $name));");
+       }
+       $self->deindent;
+       $self->pidl("} else {");
+       $self->indent;
+       $var = get_value_of($var);              
+       $self->EjsPushElement($e, GetNextLevel($e, $l), $var, $name, $env);
+       $self->deindent;
+       $self->pidl("}");
+}
+
+###########################
+# push a switch element
+sub EjsPushSwitch($$$$$$)
+{
+       my ($self, $e, $l, $var, $name, $env) = @_;
+       my $switch_var = ParseExpr($l->{SWITCH_IS}, $env, $e);
+       $self->pidl("ejs_set_switch(ejs, $switch_var);");
+       $self->EjsPushElement($e, GetNextLevel($e, $l), $var, $name, $env);
+}
+
+###########################
+# push an array element
+sub EjsPushArray($$$$$$)
+{
+       my ($self, $e, $l, $var, $name, $env) = @_;
+       my $nl = GetNextLevel($e, $l);
+       my $length = ParseExpr($l->{LENGTH_IS}, $env, $e);
+       my $pl = GetPrevLevel($e, $l);
+       if ($pl && $pl->{TYPE} eq "POINTER") {
+               $var = get_pointer_to($var);
+       }
+       # uint8 arrays are treated as data blobs
+       if ($nl->{TYPE} eq 'DATA' && $e->{TYPE} eq 'uint8') {
+               $self->check_null_pointer($length);
+               $self->pidl("ejs_push_array_uint8(ejs, v, $name, $var, $length);");
+               return;
+       }
+       my $avar = $var . "[i]";
+       $self->pidl("{");
+       $self->indent;
+       $self->pidl("uint32_t i;");
+       $self->pidl("for (i=0;i<$length;i++) {");
+       $self->indent;
+       $self->pidl("const char *id = talloc_asprintf(ejs, \"%s.%u\", $name, i);");
+       $self->EjsPushElement($e, $nl, $avar, "id", $env);
+       $self->deindent;
+       $self->pidl("}");
+       $self->pidl("ejs_push_uint32(ejs, v, $name \".length\", &i);");
+       $self->deindent;
+       $self->pidl("}");
+}
+
+################################
+# push a structure/union element
+sub EjsPushElement($$$$$$)
+{
+       my ($self, $e, $l, $var, $name, $env) = @_;
+       if (($l->{TYPE} eq "POINTER")) {
+               $self->EjsPushPointer($e, $l, $var, $name, $env);
+       } elsif (has_property($e, "charset")) {
+               $self->EjsPushString($e, $l, $var, $name, $env);
+       } elsif ($l->{TYPE} eq "ARRAY") {
+               $self->EjsPushArray($e, $l, $var, $name, $env);
+       } elsif ($l->{TYPE} eq "DATA") {
+               $self->EjsPushScalar($e, $l, $var, $name, $env);
+       } elsif (($l->{TYPE} eq "SWITCH")) {
+               $self->EjsPushSwitch($e, $l, $var, $name, $env);
+       } else {
+               $self->pidl("return ejs_panic(ejs, \"unhandled push type $l->{TYPE}\");");
+       }
+}
+
+#############################################
+# push a structure/union element at top level
+sub EjsPushElementTop($$$)
+{
+       my ($self, $e, $env) = @_;
+       my $l = $e->{LEVELS}[0];
+       my $var = ParseExpr($e->{NAME}, $env, $e);
+       my $name = "\"$e->{NAME}\"";
+       $self->EjsPushElement($e, $l, $var, $name, $env);
+}
+
+###########################
+# push a struct
+sub EjsStructPush($$$)
+{
+       my ($self, $d, $varname) = @_;
+       my $env = GenerateStructEnv($d, $varname);
+       $self->pidl("EJS_CHECK(ejs_push_struct_start(ejs, &v, name));");
+        foreach my $e (@{$d->{ELEMENTS}}) {
+               $self->EjsPushElementTop($e, $env);
+       }
+}
+
+###########################
+# push a union
+sub EjsUnionPush($$$)
+{
+       my ($self, $d, $varname) = @_;
+       my $have_default = 0;
+       $self->pidl("EJS_CHECK(ejs_push_struct_start(ejs, &v, name));");
+       $self->pidl("switch (ejs->switch_var) {");
+       $self->indent;
+       foreach my $e (@{$d->{ELEMENTS}}) {
+               if ($e->{CASE} eq "default") {
+                       $have_default = 1;
+               }
+               $self->pidl("$e->{CASE}:");
+               $self->indent;
+               if ($e->{TYPE} ne "EMPTY") {
+                       $self->EjsPushElementTop($e, { $e->{NAME} => "$varname->$e->{NAME}"} );
+               }
+               $self->pidl("break;");
+               $self->deindent;
+       }
+       if (! $have_default) {
+               $self->pidl("default:");
+               $self->indent;
+               $self->pidl("return ejs_panic(ejs, \"Bad switch value\");");
+               $self->deindent;
+       }
+       $self->deindent;
+       $self->pidl("}");
+}
+
+###########################
+# push a enum
+sub EjsEnumPush($$$)
+{
+       my ($self, $d, $varname) = @_;
+       $self->EjsEnumConstant($d);
+       $self->pidl("unsigned e = ".get_value_of($varname).";");
+       $self->pidl("EJS_CHECK(ejs_push_enum(ejs, v, name, &e));");
+}
+
+###########################
+# push a bitmap
+sub EjsBitmapPush($$$)
+{
+       my ($self, $d, $varname) = @_;
+       return unless (defined($d->{ELEMENTS}));
+       my $type_fn = $d->{BASE_TYPE};
+       # put the bitmap elements in the constants array
+       foreach my $e (@{$d->{ELEMENTS}}) {
+               if ($e =~ /^(\w*)\s*(.*)\s*$/) {
+                       my $bname = $1;
+                       my $v = $2;
+                       $self->{constants}->{$bname} = $v;
+               }
+       }
+       $self->pidl("EJS_CHECK(ejs_push_$type_fn(ejs, v, name, $varname));");
+}
+
+sub EjsTypePushFunction($$$)
+{
+       sub EjsTypePushFunction($$$);
+       my ($self, $d, $name) = @_;
+       return if (has_property($d, "noejs"));
+
+       my $var = undef;
+       my $dt = $d;
+       if ($dt->{TYPE} eq "TYPEDEF") {
+               $dt = $dt->{DATA};
+       }
+       if ($dt->{TYPE} eq "STRUCT") {
+               $var = "const struct $name *r";
+       } elsif ($dt->{TYPE} eq "UNION") {
+               $var = "const union $name *r";
+       } elsif ($dt->{TYPE} eq "ENUM") {
+               $var = "const enum $name *r";
+       } elsif ($dt->{TYPE} eq "BITMAP") {
+               my($type_decl) = Parse::Pidl::Typelist::mapTypeName($dt->{BASE_TYPE});
+               $var = "const $type_decl *r";
+       }
+       $self->fn_declare($d, "NTSTATUS ".TypeFunctionName("ejs_push", $d) . "(struct ejs_rpc *ejs, struct MprVar *v, const char *name, $var)");
+       $self->pidl("{");
+       $self->indent;
+       $self->EjsTypePush($d, "r");
+       $self->pidl("return NT_STATUS_OK;");
+       $self->deindent;
+       $self->pidl("}\n");
+}
+
+sub EjsTypePush($$$)
+{
+       sub EjsTypePush($$$);
+       my ($self, $d, $varname) = @_;
+
+       if ($d->{TYPE} eq 'STRUCT') {
+               $self->EjsStructPush($d, $varname);
+       } elsif ($d->{TYPE} eq 'UNION') {
+               $self->EjsUnionPush($d, $varname);
+       } elsif ($d->{TYPE} eq 'ENUM') {
+               $self->EjsEnumPush($d, $varname);
+       } elsif ($d->{TYPE} eq 'BITMAP') {
+               $self->EjsBitmapPush($d, $varname);
+       } elsif ($d->{TYPE} eq 'TYPEDEF') {
+               $self->EjsTypePush($d->{DATA}, $varname);
+       } else {
+               warn "Unhandled push $varname of type $d->{TYPE}";
+       }
+}
+
+#####################
+# generate a function
+sub EjsPushFunction($$)
+{
+       my ($self, $d) = @_;
+       my $env = GenerateFunctionOutEnv($d);
+
+       $self->pidl("\nstatic NTSTATUS ejs_push_$d->{NAME}(struct ejs_rpc *ejs, struct MprVar *v, const struct $d->{NAME} *r)");
+       $self->pidl("{");
+       $self->indent;
+       $self->pidl("EJS_CHECK(ejs_push_struct_start(ejs, &v, \"output\"));");
+
+       foreach my $e (@{$d->{ELEMENTS}}) {
+               next unless (grep(/out/, @{$e->{DIRECTION}}));
+               $self->EjsPushElementTop($e, $env);
+       }
+
+       if ($d->{RETURN_TYPE}) {
+               $self->pidl("EJS_CHECK(".TypeFunctionName("ejs_push", $d->{RETURN_TYPE})."(ejs, v, \"result\", &r->out.result));");
+       }
+
+       $self->pidl("return NT_STATUS_OK;");
+       $self->deindent;
+       $self->pidl("}\n");
+}
+
+#################################
+# generate a ejs mapping function
+sub EjsFunction($$$)
+{
+       my ($self, $d, $iface) = @_;
+       my $name = $d->{NAME};
+       my $callnum = uc("NDR_$name");
+       my $table = "&ndr_table_$iface";
+
+       $self->pidl("static int ejs_$name(int eid, int argc, struct MprVar **argv)");
+       $self->pidl("{");
+       $self->indent;
+       $self->pidl("return ejs_rpc_call(eid, argc, argv, $table, $callnum, (ejs_pull_function_t)ejs_pull_$name, (ejs_push_function_t)ejs_push_$name);");
+       $self->deindent;
+       $self->pidl("}\n");
+}
+
+###################
+# handle a constant
+sub EjsConst($$)
+{
+    my ($self, $const) = @_;
+    $self->{constants}->{$const->{NAME}} = $const->{VALUE};
+}
+
+sub EjsImport
+{
+       my $self = shift;
+       my @imports = @_;
+       foreach (@imports) {
+               s/\.idl\"$//;
+               s/^\"//;
+               $self->pidl_hdr("#include \"librpc/gen_ndr/ndr_$_\_ejs\.h\"\n");
+       }
+}
+
+#####################################################################
+# parse the interface definitions
+sub EjsInterface($$$)
+{
+       my($self,$interface,$needed) = @_;
+       my @fns = ();
+       my $name = $interface->{NAME};
+
+       $self->pidl_hdr("#ifndef _HEADER_EJS_$interface->{NAME}\n");
+       $self->pidl_hdr("#define _HEADER_EJS_$interface->{NAME}\n\n");
+
+       $self->pidl_hdr("\n");
+
+       foreach my $d (@{$interface->{TYPES}}) {
+               next unless (typeHasBody($d));
+               ($needed->{TypeFunctionName("ejs_push", $d)}) && $self->EjsTypePushFunction($d, $d->{NAME});
+               ($needed->{TypeFunctionName("ejs_pull", $d)}) && $self->EjsTypePullFunction($d, $d->{NAME});
+       }
+
+       foreach my $d (@{$interface->{FUNCTIONS}}) {
+               next if not defined($d->{OPNUM});
+               next if has_property($d, "noejs");
+
+               $self->EjsPullFunction($d);
+               $self->EjsPushFunction($d);
+               $self->EjsFunction($d, $name);
+
+               push (@fns, $d->{NAME});
+       }
+
+       foreach my $d (@{$interface->{CONSTS}}) {
+               $self->EjsConst($d);
+       }
+
+       $self->pidl("static int ejs_$name\_init(int eid, int argc, struct MprVar **argv)");
+       $self->pidl("{");
+       $self->indent;
+       $self->pidl("struct MprVar *obj = mprInitObject(eid, \"$name\", argc, argv);");
+       foreach (@fns) {
+               $self->pidl("mprSetCFunction(obj, \"$_\", ejs_$_);");
+       }
+       foreach my $v (keys %{$self->{constants}}) {
+               my $value = $self->{constants}->{$v};
+               if (substr($value, 0, 1) eq "\"") {
+                       $self->pidl("mprSetVar(obj, \"$v\", mprString($value));");
+               } else {
+                       $self->pidl("mprSetVar(obj, \"$v\", mprCreateNumberVar($value));");
+               }
+       }
+       $self->pidl("return ejs_rpc_init(obj, \"$name\");");
+       $self->deindent;
+       $self->pidl("}\n");
+
+       $self->pidl("NTSTATUS ejs_init_$name(void)");
+       $self->pidl("{");
+       $self->indent;
+       $self->pidl("ejsDefineCFunction(-1, \"$name\_init\", ejs_$name\_init, NULL, MPR_VAR_SCRIPT_HANDLE);");
+       $self->pidl("return NT_STATUS_OK;");
+       $self->deindent;
+       $self->pidl("}");
+
+       $self->pidl_hdr("\n");
+       $self->pidl_hdr("#endif /* _HEADER_EJS_$interface->{NAME} */\n");
+}
+
+#####################################################################
+# parse a parsed IDL into a C header
+sub Parse($$$)
+{
+    my($self,$ndr,$hdr) = @_;
+    
+    my $ejs_hdr = $hdr;
+    $ejs_hdr =~ s/.h$/_ejs.h/;
+
+    $self->pidl_hdr("/* header auto-generated by pidl */\n\n");
+       
+    $self->pidl("
+/* EJS wrapper functions auto-generated by pidl */
+#include \"includes.h\"
+#include \"librpc/rpc/dcerpc.h\"
+#include \"lib/appweb/ejs/ejs.h\"
+#include \"scripting/ejs/ejsrpc.h\"
+#include \"scripting/ejs/smbcalls.h\"
+#include \"librpc/gen_ndr/ndr_misc_ejs.h\"
+#include \"$hdr\"
+#include \"$ejs_hdr\"
+
+");
+
+    my %needed = ();
+
+    foreach my $x (@{$ndr}) {
+           ($x->{TYPE} eq "INTERFACE") && NeededInterface($x, \%needed);
+    }
+
+    foreach my $x (@$ndr) {
+           ($x->{TYPE} eq "INTERFACE") && $self->EjsInterface($x, \%needed);
+               ($x->{TYPE} eq "IMPORT") && $self->EjsImport(@{$x->{PATHS}});
+    }
+
+    return ($self->{res_hdr}, $self->{res});
+}
+
+sub NeededFunction($$)
+{
+       my ($fn,$needed) = @_;
+
+       $needed->{"ejs_pull_$fn->{NAME}"} = 1;
+       $needed->{"ejs_push_$fn->{NAME}"} = 1;
+        
+       foreach (@{$fn->{ELEMENTS}}) {
+               next if (has_property($_, "subcontext")); #FIXME: Support subcontexts
+               if (grep(/in/, @{$_->{DIRECTION}})) {
+                       $needed->{TypeFunctionName("ejs_pull", $_->{TYPE})} = 1;
+               }
+               if (grep(/out/, @{$_->{DIRECTION}})) {
+                       $needed->{TypeFunctionName("ejs_push", $_->{TYPE})} = 1;
+               }
+       }
+}
+
+sub NeededType($$$)
+{
+       sub NeededType($$$);
+       my ($t,$needed,$req) = @_;
+
+       NeededType($t->{DATA}, $needed, $req) if ($t->{TYPE} eq "TYPEDEF");
+
+       return unless (($t->{TYPE} eq "STRUCT") or ($t->{TYPE} eq "UNION"));
+
+       return unless(typeHasBody($t));
+
+       foreach (@{$t->{ELEMENTS}}) {
+               next if (has_property($_, "subcontext")); #FIXME: Support subcontexts
+               my $n;
+               if (ref($_->{TYPE}) ne "HASH" or defined($_->{TYPE}->{NAME})) {
+                       $needed->{TypeFunctionName("ejs_$req", $_->{TYPE})} = 1;
+               }
+               NeededType($_->{TYPE}, $needed, $req) if (ref($_->{TYPE}) eq "HASH");
+       }
+}
+
+#####################################################################
+# work out what parse functions are needed
+sub NeededInterface($$)
+{
+       my ($interface,$needed) = @_;
+
+       NeededFunction($_, $needed) foreach (@{$interface->{FUNCTIONS}});
+
+       foreach (reverse @{$interface->{TYPES}}) {
+               if (has_property($_, "public")) {
+                       $needed->{TypeFunctionName("ejs_pull", $_)} = not has_property($_, "noejs");
+                       $needed->{TypeFunctionName("ejs_push", $_)} = not has_property($_, "noejs");
+               }
+
+               NeededType($_, $needed, "pull")  if ($needed->{TypeFunctionName("ejs_pull", $_)});
+               NeededType($_, $needed, "push")  if ($needed->{TypeFunctionName("ejs_push", $_)});
+       }
+}
+
+sub TypeFunctionName($$)
+{
+       my ($prefix, $t) = @_;
+
+       return "$prefix\_$t->{NAME}" if (ref($t) eq "HASH" and 
+                       $t->{TYPE} eq "TYPEDEF");
+       return "$prefix\_$t->{TYPE}_$t->{NAME}" if (ref($t) eq "HASH");
+       return "$prefix\_$t";
+}
+
+
+
+1;
similarity index 99%
rename from source4/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
rename to pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
index 0a6360f8ac50c7ab2e355373e71d00088fbb3a2a..fb73075f1ad218f07880989860eeb86c85627f83 100644 (file)
@@ -2228,7 +2228,7 @@ sub AuthServiceStruct($$$)
 sub FunctionCallEntry($$)
 {
        my ($self, $d) = @_;
-       next if not defined($d->{OPNUM});
+       return if not defined($d->{OPNUM});
        $self->pidl("\t{");
        $self->pidl("\t\t\"$d->{NAME}\",");
        $self->pidl("\t\tsizeof(struct $d->{NAME}),");
similarity index 100%
rename from source4/pidl/pidl
rename to pidl/pidl
similarity index 100%
rename from source4/pidl/tests/ndr.pl
rename to pidl/tests/ndr.pl
similarity index 100%
rename from source4/pidl/tests/tdr.pl
rename to pidl/tests/tdr.pl
index bba58b31b3b9350ba0e0d9e56b32d67e31710a87..2f5be5f7915582977ad0bbed19a21c0aad04ea00 100644 (file)
@@ -194,7 +194,7 @@ in the data and bss columns in "size" anyway (it will be included in
 How to use talloc
 -----------------
 
-Please see the separate document, source/lib/talloc/talloc_guide.txt
+Please see the separate document, lib/talloc/talloc_guide.txt
 You _must_ read this if you want to program in Samba4.
 
 
@@ -646,7 +646,7 @@ file cannot be deleted until you reboot
 trans2 qpathinfo doesn't see the delete_pending flag correctly, but
 qfileinfo does!
 
-get rid of pstring, fstring, strtok
+get rid of strtok
 
 add programming documentation note about lp_set_cmdline()
 
index 31387c315c0cf9a94a964b271135a74761edb47f..2300e4a20c745ca48a430fae6eb169689f3ec525 100644 (file)
@@ -249,7 +249,7 @@ LIBNDR_DRSUAPI_OBJ = librpc/ndr/ndr_drsuapi.o \
                     librpc/gen_ndr/ndr_drsuapi.o \
                     librpc/gen_ndr/ndr_drsblobs.o
 
-COMPRESSION_OBJ = lib/compression/mszip.o
+COMPRESSION_OBJ = ../lib/compression/mszip.o
 
 DRSUAPI_OBJ = $(LIBNDR_DRSUAPI_OBJ) \
              $(COMPRESSION_OBJ)
@@ -618,6 +618,7 @@ VFS_TSMSM_OBJ = modules/vfs_tsmsm.o
 VFS_FILEID_OBJ = modules/vfs_fileid.o
 VFS_AIO_FORK_OBJ = modules/vfs_aio_fork.o
 VFS_SYNCOPS_OBJ = modules/vfs_syncops.o
+VFS_ACL_XATTR_OBJ = modules/vfs_acl_xattr.o
 
 PLAINTEXT_AUTH_OBJ = auth/pampass.o auth/pass_check.o
 
@@ -948,10 +949,10 @@ SHARESEC_OBJ  = $(SHARESEC_OBJ0) $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
 TALLOCTORT_OBJ = @tallocdir@/testsuite.o $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
                  $(LIBSAMBA_OBJ)
 
-REPLACETORT_OBJ = lib/replace/test/testsuite.o \
-               lib/replace/test/getifaddrs.o \
-               lib/replace/test/os2_delete.o \
-               lib/replace/test/strptime.o \
+REPLACETORT_OBJ = @libreplacedir@/test/testsuite.o \
+               @libreplacedir@/test/getifaddrs.o \
+               @libreplacedir@/test/os2_delete.o \
+               @libreplacedir@/test/strptime.o \
                $(LIBREPLACE_OBJ)
 
 NDRDUMP_OBJ = librpc/tools/ndrdump.o \
@@ -979,6 +980,10 @@ IDMAP_OBJ     = winbindd/idmap.o winbindd/idmap_util.o @IDMAP_STATIC@
 
 NSS_INFO_OBJ = winbindd/nss_info.o @NSS_INFO_STATIC@
 
+IDMAP_HASH_OBJ = \
+               winbindd/idmap_hash/idmap_hash.o \
+               winbindd/idmap_hash/mapfile.o
+
 WINBINDD_OBJ1 = \
                winbindd/winbindd.o       \
                winbindd/winbindd_user.o  \
@@ -1056,8 +1061,8 @@ LDBMODIFY_OBJ = $(LDB_CMDLINE_OBJ) lib/ldb/tools/ldbmodify.o
 WINBIND_KRB5_LOCATOR_OBJ1 = nsswitch/winbind_krb5_locator.o
 WINBIND_KRB5_LOCATOR_OBJ = $(WINBIND_KRB5_LOCATOR_OBJ1) $(WBCOMMON_OBJ) $(LIBREPLACE_OBJ)
 
-POPT_OBJ=popt/findme.o popt/popt.o popt/poptconfig.o \
-          popt/popthelp.o popt/poptparse.o
+POPT_OBJ=../lib/popt/findme.o ../lib/popt/popt.o ../lib/popt/poptconfig.o \
+          ../lib/popt/popthelp.o ../lib/popt/poptparse.o
 
 INIPARSER_OBJ = iniparser_build/iniparser.o iniparser_build/dictionary.o \
                iniparser_build/strlib.o
@@ -1170,7 +1175,7 @@ samba3-idl::
                epmapper.idl messaging.idl xattr.idl misc.idl samr.idl security.idl \
                dssetup.idl krb5pac.idl ntsvcs.idl libnetapi.idl drsuapi.idl drsblobs.idl \
                nbt.idl" \
-               CPP="$(CPP)" PERL="$(PERL)" \
+               CPP="$(CPP)" PIDL="../pidl/pidl" \
         srcdir="$(srcdir)" $(srcdir)/script/build_idl.sh $(PIDL_ARGS)
 
 
@@ -2208,6 +2213,10 @@ bin/ad.@SHLIBEXT@: $(BINARY_PREREQS) winbindd/idmap_ad.o
        @echo "Building plugin $@"
        @$(SHLD_MODULE) winbindd/idmap_ad.o
 
+bin/hash.@SHLIBEXT@: $(BINARY_PREREQS) $(IDMAP_HASH_OBJ)
+       @echo "Building plugin $@"
+       @$(SHLD_MODULE) $(IDMAP_HASH_OBJ)
+
 bin/tdb2.@SHLIBEXT@: $(BINARY_PREREQS) winbindd/idmap_tdb2.o
        @echo "Building plugin $@"
        @$(SHLD_MODULE) winbindd/idmap_tdb2.o
@@ -2375,6 +2384,10 @@ bin/aio_fork.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_AIO_FORK_OBJ)
        @echo "Building plugin $@"
        @$(SHLD_MODULE) $(VFS_AIO_FORK_OBJ)
 
+bin/acl_xattr.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_ACL_XATTR_OBJ)
+       @echo "Building plugin $@"
+       @$(SHLD_MODULE) $(VFS_ACL_XATTR_OBJ)
+
 bin/registry.@SHLIBEXT@: $(BINARY_PREREQS) libgpo/gpext/registry.o
        @echo "Building plugin $@"
        @$(SHLD_MODULE) libgpo/gpext/registry.o
@@ -2715,8 +2728,14 @@ valgrindtest:: all torture timelimit
 ## Examples:
 ##
 
-libsmbclient_examples:
+libsmbclient_examples: libsmbclient
        $(MAKE) -C ../examples/libsmbclient -f Makefile.internal
 
 clean_libsmbclient_examples:
        $(MAKE) -C ../examples/libsmbclient -f Makefile.internal clean
+
+libnetapi_examples: libnetapi
+       $(MAKE) -C lib/netapi/examples
+
+clean_libnetapi_examples:
+       $(MAKE) -C lib/netapi/examples clean
index 355a742aa0377199e2a57af2ddc960d036a38825..deed774b39eec0cc815024192c041875c74f0101 100755 (executable)
@@ -53,7 +53,7 @@ echo "$0: running script/mkversion.sh"
 rm -rf autom4te*.cache
 rm -f configure include/config.h*
 
-IPATHS="-Im4 -Ilib/replace -I../source4"
+IPATHS="-Im4 -I../lib/replace -I../source4"
 
 echo "$0: running $AUTOHEADER $IPATHS"
 $AUTOHEADER $IPATHS || exit 1
index d9766e49d034525be11ec286c1c1cdfb2d7f55a3..640afc47fb8123ef129fb6002ec364688f4cec99 100644 (file)
@@ -23,7 +23,7 @@ m4_include(m4/check_path.m4)
 
 AC_LIBREPLACE_CC_CHECKS
 
-m4_include(lib/talloc/libtalloc.m4)
+m4_include(../lib/talloc/libtalloc.m4)
 
 LIBTALLOC_OBJ0=""
 for obj in ${TALLOC_OBJ}; do
@@ -33,7 +33,7 @@ AC_SUBST(LIBTALLOC_OBJ0)
 
 # TODO: These should come from m4_include(lib/tdb/libtdb.m4)
 # but currently this fails: things have to get merged from s4.
-tdbdir="lib/tdb"
+tdbdir="../lib/tdb"
 AC_SUBST(tdbdir)
 TDB_CFLAGS="-I${srcdir-.}/$tdbdir/include"
 AC_SUBST(TDB_CFLAGS)
@@ -43,18 +43,18 @@ for o in common/tdb.o common/dump.o common/transaction.o common/error.o \
             common/traverse.o common/freelist.o common/freelistcheck.o \
                 common/io.o common/lock.o common/open.o; 
 do 
-       LIBTDB_OBJ0="$LIBTDB_OBJ0 lib/tdb/$o"
+       LIBTDB_OBJ0="$LIBTDB_OBJ0 $tdbdir/$o"
 done
 
 AC_SUBST(LIBTDB_OBJ0)
 SAMBA_CPPFLAGS="-Iinclude -I${srcdir-.}/include  -I. -I${srcdir-.}"
-SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/lib/replace"
+SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/../lib/replace"
 SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} ${TALLOC_CFLAGS}"
 SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} ${TDB_CFLAGS}"
 SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/libaddns"
 SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/librpc"
 
-SAMBA_CONFIGURE_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/popt"
+SAMBA_CONFIGURE_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/../lib/popt"
 
 ## cleanup the $(srcdir) in the Makefile if we are outside of the tree
 if test "x${srcdir-.}" != "x."; then
@@ -131,8 +131,8 @@ else
        CFLAGS="-O"
 fi
 
-m4_include(lib/socket_wrapper/config.m4)
-m4_include(lib/nss_wrapper/config.m4)
+m4_include(../lib/socket_wrapper/config.m4)
+m4_include(../lib/nss_wrapper/config.m4)
 
 m4_include(m4/swat.m4)
 
@@ -407,7 +407,7 @@ dnl These have to be built static:
 default_static_modules="pdb_smbpasswd pdb_tdbsam rpc_lsarpc rpc_samr rpc_winreg rpc_initshutdown rpc_dssetup rpc_wkssvc rpc_svcctl2 rpc_ntsvcs2 rpc_netlogon rpc_netdfs rpc_srvsvc rpc_spoolss rpc_eventlog2 auth_sam auth_unix auth_winbind auth_server auth_domain auth_builtin vfs_default nss_info_template"
 
 dnl These are preferably build shared, and static if dlopen() is not available
-default_shared_modules="vfs_recycle vfs_audit vfs_extd_audit vfs_full_audit vfs_netatalk vfs_fake_perms vfs_default_quota vfs_readonly vfs_cap vfs_expand_msdfs vfs_shadow_copy vfs_shadow_copy2 charset_CP850 charset_CP437 auth_script vfs_readahead vfs_xattr_tdb vfs_streams_xattr"
+default_shared_modules="vfs_recycle vfs_audit vfs_extd_audit vfs_full_audit vfs_netatalk vfs_fake_perms vfs_default_quota vfs_readonly vfs_cap vfs_expand_msdfs vfs_shadow_copy vfs_shadow_copy2 charset_CP850 charset_CP437 auth_script vfs_readahead vfs_xattr_tdb vfs_streams_xattr vfs_acl_xattr"
 
 if test "x$developer" = xyes; then
    default_static_modules="$default_static_modules rpc_rpcecho"
@@ -5872,7 +5872,7 @@ if test x"$INCLUDED_POPT" = x"yes"; then
     AC_MSG_RESULT(yes)
     BUILD_POPT='$(POPT_OBJ)'
     POPTLIBS='$(POPT_OBJ)'
-    FLAGS1="-I\$(srcdir)/popt"
+    FLAGS1="-I\$(srcdir)/../lib/popt"
 else
     AC_MSG_RESULT(no)
        BUILD_POPT=""
@@ -6057,6 +6057,7 @@ SMB_MODULE(idmap_passdb, winbindd/idmap_passdb.o, "bin/passdb.$SHLIBEXT", IDMAP)
 SMB_MODULE(idmap_nss, winbindd/idmap_nss.o, "bin/nss.$SHLIBEXT", IDMAP)
 SMB_MODULE(idmap_rid, winbindd/idmap_rid.o, "bin/rid.$SHLIBEXT", IDMAP)
 SMB_MODULE(idmap_ad, winbindd/idmap_ad.o, "bin/ad.$SHLIBEXT", IDMAP)
+SMB_MODULE(idmap_hash, \$(IDMAP_HASH_OBJ), "bin/hash.$SHLIBEXT", IDMAP)
 SMB_SUBSYSTEM(IDMAP, winbindd/idmap.o)
 
 SMB_MODULE(nss_info_template, winbindd/nss_info_template.o, "bin/template.$SHLIBEXT", NSS_INFO)
@@ -6113,6 +6114,7 @@ SMB_MODULE(vfs_aio_fork, \$(VFS_AIO_FORK_OBJ), "bin/aio_fork.$SHLIBEXT", VFS)
 SMB_MODULE(vfs_syncops, \$(VFS_SYNCOPS_OBJ), "bin/syncops.$SHLIBEXT", VFS)
 SMB_MODULE(vfs_zfsacl, \$(VFS_ZFSACL_OBJ), "bin/zfsacl.$SHLIBEXT", VFS)
 SMB_MODULE(vfs_notify_fam, \$(VFS_NOTIFY_FAM_OBJ), "bin/notify_fam.$SHLIBEXT", VFS)
+SMB_MODULE(vfs_acl_xattr, \$(VFS_ACL_XATTR_OBJ), "bin/acl_xattr.$SHLIBEXT", VFS)
 
 
 SMB_SUBSYSTEM(VFS,smbd/vfs.o)
index 97faf0b6eb4515b9bc02e73284fe8531d456f09a..b72d25094025156108c6815f62c44c8a0b141867 100644 (file)
@@ -133,6 +133,7 @@ struct posix_schema {
        char *posix_uidnumber_attr;
        char *posix_gidnumber_attr;
        char *posix_gecos_attr;
+       char *posix_uid_attr;
 };
 
 
@@ -179,6 +180,7 @@ typedef void **ADS_MODLIST;
 #define ADS_ATTR_SFU_HOMEDIR_OID       "1.2.840.113556.1.6.18.1.344"
 #define ADS_ATTR_SFU_SHELL_OID                 "1.2.840.113556.1.6.18.1.312"
 #define ADS_ATTR_SFU_GECOS_OID                 "1.2.840.113556.1.6.18.1.337"
+#define ADS_ATTR_SFU_UID_OID            "1.2.840.113556.1.6.18.1.309"
 
 /* ldap attribute oids (Services for Unix 2.0) */
 #define ADS_ATTR_SFU20_UIDNUMBER_OID   "1.2.840.113556.1.4.7000.187.70"
@@ -186,6 +188,8 @@ typedef void **ADS_MODLIST;
 #define ADS_ATTR_SFU20_HOMEDIR_OID     "1.2.840.113556.1.4.7000.187.106"
 #define ADS_ATTR_SFU20_SHELL_OID       "1.2.840.113556.1.4.7000.187.72"
 #define ADS_ATTR_SFU20_GECOS_OID       "1.2.840.113556.1.4.7000.187.97"
+#define ADS_ATTR_SFU20_UID_OID          "1.2.840.113556.1.4.7000.187.102"
+
 
 /* ldap attribute oids (RFC2307) */
 #define ADS_ATTR_RFC2307_UIDNUMBER_OID "1.3.6.1.1.1.1.0"
@@ -193,6 +197,7 @@ typedef void **ADS_MODLIST;
 #define ADS_ATTR_RFC2307_HOMEDIR_OID   "1.3.6.1.1.1.1.3"
 #define ADS_ATTR_RFC2307_SHELL_OID     "1.3.6.1.1.1.1.4"
 #define ADS_ATTR_RFC2307_GECOS_OID     "1.3.6.1.1.1.1.2"
+#define ADS_ATTR_RFC2307_UID_OID        "0.9.2342.19200300.100.1.1"
 
 /* ldap bitwise searches */
 #define ADS_LDAP_MATCHING_RULE_BIT_AND "1.2.840.113556.1.4.803"
index 9c5ea08f6d523a16278fb78b18774140f4ddcc66..ccdc6d3fd3c19ecc17947340b8e6b707026b95fd 100644 (file)
@@ -25,7 +25,7 @@
 #undef SIZEOF_LONG
 #endif
 
-#include "lib/replace/replace.h"
+#include "../replace/replace.h"
 
 /* make sure we have included the correct config.h */
 #ifndef NO_CONFIG_H /* for some tests */
@@ -652,7 +652,7 @@ typedef char fstring[FSTRING_LEN];
 #include "tdb.h"
 #include "util_tdb.h"
 
-#include "lib/talloc/talloc.h"
+#include "../talloc/talloc.h"
 /* And a little extension. Abort on type mismatch */
 #define talloc_get_type_abort(ptr, type) \
        (type *)talloc_check_name_abort(ptr, #type)
index 84501cee412d020d8507a5e5a5139618fb1eed5c..9a19c33b57062f5a0ddb64c0cfccc1f4f006dc4c 100644 (file)
@@ -24,8 +24,8 @@
 #ifndef _INTERFACES_H
 #define _INTERFACES_H
 
-#include "lib/replace/replace.h"
-#include "lib/replace/system/network.h"
+#include "../replace/replace.h"
+#include "../replace/system/network.h"
 
 #define MAX_INTERFACES 128
 
index 1ff9ebcd55945b91ca75c90a6b353883fedf25af..e756136b76ab062af280794c04aee0c6e79e8d3c 100644 (file)
@@ -66,6 +66,10 @@ struct nss_info_methods {
                                  TALLOC_CTX *ctx, 
                                  ADS_STRUCT *ads, LDAPMessage *msg,
                                  char **homedir, char **shell, char **gecos, gid_t *p_gid);
+       NTSTATUS (*map_to_alias)( TALLOC_CTX *mem_ctx, const char *domain,
+                                 const char *name, char **alias );
+       NTSTATUS (*map_from_alias)( TALLOC_CTX *mem_ctx, const char *domain,
+                                   const char *alias, char **name );
        NTSTATUS (*close_fn)( void );
 };
 
@@ -84,6 +88,12 @@ NTSTATUS nss_get_info( const char *domain, const DOM_SID *user_sid,
                        char **homedir, char **shell, char **gecos,
                        gid_t *p_gid);
 
+NTSTATUS nss_map_to_alias( TALLOC_CTX *mem_ctx, const char *domain,
+                          const char *name, char **alias );
+
+NTSTATUS nss_map_from_alias( TALLOC_CTX *mem_ctx, const char *domain,
+                            const char *alias, char **name );
+
 NTSTATUS nss_close( const char *parameters );
 
 #endif /* _IDMAP_NSS_H_ */
index a2a12f8a633ba15c4785f69f0cccfd90db5fbf52..bb22b8a0294aed21a94eb412ed143c18d88aebed 100644 (file)
@@ -35,7 +35,7 @@
 #ifndef _TALLOC_STACK_H
 #define _TALLOC_STACK_H
 
-#include "lib/talloc/talloc.h"
+#include "../talloc/talloc.h"
 
 /*
  * Create a new talloc stack frame.
index de98a4523f04f8b2ad5150cc457df4f65c5c4ea3..3147361746dcc6e618507ca445f1c1026d4b9e33 100644 (file)
@@ -3,5 +3,5 @@
  the iniparser source code
  --metze
 */
-#include "lib/replace/replace.h"
+#include "../replace/replace.h"
 #include "iniparser/src/dictionary.c"
index 4974f373ee55d54a251371e18d6292aab4b99d17..3f4a1aaf1a6d5c3c99c8b0cc9c46e56415087721 100644 (file)
@@ -3,5 +3,5 @@
  the iniparser source code
  --metze
 */
-#include "lib/replace/replace.h"
+#include "../replace/replace.h"
 #include "iniparser/src/iniparser.c"
index 685ec8e04db28961c506e24a82030bb99586417b..4ea95b73ae03f509f0703715dfdc78f4f5be4469 100644 (file)
@@ -3,5 +3,5 @@
  the iniparser source code
  --metze
 */
-#include "lib/replace/replace.h"
+#include "../replace/replace.h"
 #include "iniparser/src/strlib.c"
index dd857ae6722f31bc62de29318e7d8503ef6ea05c..4567fe457b83b0cc083aa22006606dc4d513ff37 100644 (file)
@@ -86,7 +86,7 @@
 
 #define SOCKET_WRAPPER_NOT_REPLACE
 #include "interfaces.h"
-#include "lib/replace/replace.h"
+#include "../replace/replace.h"
 
 /****************************************************************************
  Utility functions.
index 42f3dc242122eb2309f9f4887e428c406e577271..486d948fa0ed766974d93d809ccc47f6ecbc0d05 100644 (file)
@@ -6,7 +6,7 @@
 #if (_SAMBA_BUILD_ >= 4)
 #include "lib/tdb/include/tdb.h"
 #elif defined(_SAMBA_BUILD_)
-#include "tdb/include/tdb.h"
+#include "../tdb/include/tdb.h"
 #else
 #include "tdb.h"
 #endif
index b1c1e59be77c9b730ee313e22282ac91ce60a257..090bc50deefd05108b1ff0311f8803a6d9ab3d69 100644 (file)
@@ -5,7 +5,7 @@ KRB5LIBS=@KRB5_LIBS@
 LDAP_LIBS=@LDAP_LIBS@
 LIBS=@LIBS@ -lnetapi -ltdb -ltalloc
 DEVELOPER_CFLAGS=@DEVELOPER_CFLAGS@
-FLAGS=-I../ -L../../../bin @CFLAGS@ $(GTK_FLAGS)
+CCFLAGS=-I../ -L../../../bin @CFLAGS@ $(GTK_FLAGS)
 CC=@CC@
 PICFLAG=@PICFLAG@
 LDFLAGS=@PIE_LDFLAGS@ @LDFLAGS@
@@ -14,7 +14,7 @@ NETAPI_LIBS=$(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
 CMDLINE_LIBS=$(NETAPI_LIBS) @POPTLIBS@
 
 # Compile a source file.
-COMPILE_CC = $(CC) -I. $(FLAGS) $(PICFLAG) -c $< -o $@
+COMPILE_CC = $(CC) -I. $(CCFLAGS) $(PICFLAG) -c $< -o $@
 COMPILE = $(COMPILE_CC)
 
 PROGS = bin/getdc@EXEEXT@ \
@@ -140,187 +140,187 @@ FILEENUM_OBJ = file/file_enum.o $(CMDLINE_OBJ)
 
 bin/getdc@EXEEXT@: $(BINARY_PREREQS) $(GETDC_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(GETDC_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(GETDC_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/dsgetdc@EXEEXT@: $(BINARY_PREREQS) $(DSGETDC_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(DSGETDC_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(DSGETDC_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/getjoinableous@EXEEXT@: $(BINARY_PREREQS) $(GETJOINABLEOUS_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(GETJOINABLEOUS_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(GETJOINABLEOUS_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/rename_machine@EXEEXT@: $(BINARY_PREREQS) $(RENAMEMACHINE_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(RENAMEMACHINE_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(RENAMEMACHINE_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/netdomjoin@EXEEXT@: $(BINARY_PREREQS) $(NETDOMJOIN_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(NETDOMJOIN_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(NETDOMJOIN_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/netdomjoin-gui@EXEEXT@: $(BINARY_PREREQS) $(NETDOMJOIN_GUI_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) $(GTK_FLAGS) -o $@ $(NETDOMJOIN_GUI_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS) $(GTK_LIBS)
+       @$(CC) $(CCFLAGS) $(GTK_FLAGS) -o $@ $(NETDOMJOIN_GUI_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS) $(GTK_LIBS)
 
 bin/user_add@EXEEXT@: $(BINARY_PREREQS) $(USERADD_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(USERADD_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(USERADD_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/user_del@EXEEXT@: $(BINARY_PREREQS) $(USERDEL_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(USERDEL_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(USERDEL_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/user_enum@EXEEXT@: $(BINARY_PREREQS) $(USERENUM_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(USERENUM_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(USERENUM_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/user_dispinfo@EXEEXT@: $(BINARY_PREREQS) $(USERDISPINFO_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(USERDISPINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(USERDISPINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/user_chgpwd@EXEEXT@: $(BINARY_PREREQS) $(USERCHGPWD_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(USERCHGPWD_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(USERCHGPWD_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/user_getinfo@EXEEXT@: $(BINARY_PREREQS) $(USERGETINFO_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(USERGETINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(USERGETINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/user_setinfo@EXEEXT@: $(BINARY_PREREQS) $(USERSETINFO_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(USERSETINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(USERSETINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/user_modalsget@EXEEXT@: $(BINARY_PREREQS) $(USERMODALSGET_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(USERMODALSGET_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(USERMODALSGET_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/user_modalsset@EXEEXT@: $(BINARY_PREREQS) $(USERMODALSSET_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(USERMODALSSET_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(USERMODALSSET_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/user_getgroups@EXEEXT@: $(BINARY_PREREQS) $(USERGETGROUPS_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(USERGETGROUPS_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(USERGETGROUPS_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/user_setgroups@EXEEXT@: $(BINARY_PREREQS) $(USERSETGROUPS_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(USERSETGROUPS_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(USERSETGROUPS_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/user_getlocalgroups@EXEEXT@: $(BINARY_PREREQS) $(USERGETLOCALGROUPS_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(USERGETLOCALGROUPS_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(USERGETLOCALGROUPS_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/group_add@EXEEXT@: $(BINARY_PREREQS) $(GROUPADD_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(GROUPADD_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(GROUPADD_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/group_del@EXEEXT@: $(BINARY_PREREQS) $(GROUPDEL_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(GROUPDEL_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(GROUPDEL_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/group_enum@EXEEXT@: $(BINARY_PREREQS) $(GROUPENUM_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(GROUPENUM_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(GROUPENUM_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/group_setinfo@EXEEXT@: $(BINARY_PREREQS) $(GROUPSETINFO_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(GROUPSETINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(GROUPSETINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/group_getinfo@EXEEXT@: $(BINARY_PREREQS) $(GROUPGETINFO_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(GROUPGETINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(GROUPGETINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/group_adduser@EXEEXT@: $(BINARY_PREREQS) $(GROUPADDUSER_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(GROUPADDUSER_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(GROUPADDUSER_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/group_deluser@EXEEXT@: $(BINARY_PREREQS) $(GROUPDELUSER_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(GROUPDELUSER_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(GROUPDELUSER_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/group_getusers@EXEEXT@: $(BINARY_PREREQS) $(GROUPGETUSERS_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(GROUPGETUSERS_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(GROUPGETUSERS_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/group_setusers@EXEEXT@: $(BINARY_PREREQS) $(GROUPSETUSERS_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(GROUPSETUSERS_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(GROUPSETUSERS_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/localgroup_add@EXEEXT@: $(BINARY_PREREQS) $(LOCALGROUPADD_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(LOCALGROUPADD_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(LOCALGROUPADD_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/localgroup_del@EXEEXT@: $(BINARY_PREREQS) $(LOCALGROUPDEL_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(LOCALGROUPDEL_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(LOCALGROUPDEL_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/localgroup_getinfo@EXEEXT@: $(BINARY_PREREQS) $(LOCALGROUPGETINFO_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(LOCALGROUPGETINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(LOCALGROUPGETINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/localgroup_setinfo@EXEEXT@: $(BINARY_PREREQS) $(LOCALGROUPSETINFO_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(LOCALGROUPSETINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(LOCALGROUPSETINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/localgroup_enum@EXEEXT@: $(BINARY_PREREQS) $(LOCALGROUPENUM_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(LOCALGROUPENUM_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(LOCALGROUPENUM_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/localgroup_addmembers@EXEEXT@: $(BINARY_PREREQS) $(LOCALGROUPADDMEMBERS_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(LOCALGROUPADDMEMBERS_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(LOCALGROUPADDMEMBERS_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/localgroup_delmembers@EXEEXT@: $(BINARY_PREREQS) $(LOCALGROUPDELMEMBERS_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(LOCALGROUPDELMEMBERS_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(LOCALGROUPDELMEMBERS_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/localgroup_setmembers@EXEEXT@: $(BINARY_PREREQS) $(LOCALGROUPSETMEMBERS_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(LOCALGROUPSETMEMBERS_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(LOCALGROUPSETMEMBERS_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/localgroup_getmembers@EXEEXT@: $(BINARY_PREREQS) $(LOCALGROUPGETMEMBERS_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(LOCALGROUPGETMEMBERS_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(LOCALGROUPGETMEMBERS_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/remote_tod@EXEEXT@: $(BINARY_PREREQS) $(REMOTETOD_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(REMOTETOD_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(REMOTETOD_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/server_getinfo@EXEEXT@: $(BINARY_PREREQS) $(SERVERGETINFO_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(SERVERGETINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(SERVERGETINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/share_add@EXEEXT@: $(BINARY_PREREQS) $(SHAREADD_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(SHAREADD_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(SHAREADD_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/share_del@EXEEXT@: $(BINARY_PREREQS) $(SHAREDEL_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(SHAREDEL_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(SHAREDEL_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/share_enum@EXEEXT@: $(BINARY_PREREQS) $(SHAREENUM_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(SHAREENUM_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(SHAREENUM_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/share_getinfo@EXEEXT@: $(BINARY_PREREQS) $(SHAREGETINFO_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(SHAREGETINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(SHAREGETINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/share_setinfo@EXEEXT@: $(BINARY_PREREQS) $(SHARESETINFO_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(SHARESETINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(SHARESETINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/file_close@EXEEXT@: $(BINARY_PREREQS) $(FILECLOSE_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(FILECLOSE_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(FILECLOSE_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/file_getinfo@EXEEXT@: $(BINARY_PREREQS) $(FILEGETINFO_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(FILEGETINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(FILEGETINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 bin/file_enum@EXEEXT@: $(BINARY_PREREQS) $(FILEENUM_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(FILEENUM_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(FILEENUM_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 clean:
        -rm -f $(PROGS)
index d3f06639083f8e4b21c162d0911b7553acd7fad6..01457532120c2fce2fa098c16a634adfaea4f764 100644 (file)
@@ -2,7 +2,7 @@ KRB5LIBS=@KRB5_LIBS@
 LDAP_LIBS=@LDAP_LIBS@
 LIBS=@LIBS@ -lnetapi -ltdb -ltalloc
 DEVELOPER_CFLAGS=@DEVELOPER_CFLAGS@
-FLAGS=-I../ -L../../../bin @CFLAGS@ $(GTK_FLAGS)
+CCFLAGS=-I../ -L../../../bin @CFLAGS@ $(GTK_FLAGS)
 CC=@CC@
 PICFLAG=@PICFLAG@
 LDFLAGS=@PIE_LDFLAGS@ @LDFLAGS@
@@ -11,7 +11,7 @@ NETAPI_LIBS=$(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
 CMDLINE_LIBS=$(NETAPI_LIBS) @POPTLIBS@
 
 # Compile a source file.
-COMPILE_CC = $(CC) -I. $(FLAGS) $(PICFLAG) -c $< -o $@
+COMPILE_CC = $(CC) -I. $(CCFLAGS) $(PICFLAG) -c $< -o $@
 COMPILE = $(COMPILE_CC)
 
 PROGS = bin/netapitest@EXEEXT@
@@ -48,7 +48,7 @@ NETAPITEST_OBJ = netapitest.o netlocalgroup.o netuser.o netgroup.o netdisplay.o
 
 bin/netapitest@EXEEXT@: $(BINARY_PREREQS) $(NETAPITEST_OBJ)
        @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(NETAPITEST_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
+       @$(CC) $(CCFLAGS) -o $@ $(NETAPITEST_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
 
 clean:
        -rm -f $(PROGS)
diff --git a/source3/lib/nss_wrapper/config.m4 b/source3/lib/nss_wrapper/config.m4
deleted file mode 100644 (file)
index 58e94f9..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-AC_ARG_ENABLE(nss-wrapper,
-[  --enable-nss-wrapper         Turn on nss wrapper library (default=no)])
-
-HAVE_NSS_WRAPPER=no
-
-if eval "test x$developer = xyes"; then
-       enable_nss_wrapper=yes
-fi
-
-if eval "test x$enable_nss_wrapper = xyes"; then
-        AC_DEFINE(NSS_WRAPPER,1,[Use nss wrapper library])
-       HAVE_NSS_WRAPPER=yes
-
-       # this is only used for samba3
-       NSS_WRAPPER_OBJS="lib/nss_wrapper/nss_wrapper.o"
-fi
-
-AC_SUBST(HAVE_NSS_WRAPPER)
-AC_SUBST(NSS_WRAPPER_OBJS)
diff --git a/source3/lib/nss_wrapper/config.mk b/source3/lib/nss_wrapper/config.mk
deleted file mode 100644 (file)
index 9751d2b..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-##############################
-# Start SUBSYSTEM NSS_WRAPPER
-[LIBRARY::NSS_WRAPPER]
-VERSION = 0.0.1
-SO_VERSION = 0
-DESCRIPTION = Wrapper library for testing nss calls without being root
-PUBLIC_HEADERS = nss_wrapper.h
-OBJ_FILES = nss_wrapper.o
-# End SUBSYSTEM NSS_WRAPPER
-##############################
diff --git a/source3/lib/replace/getaddrinfo.h b/source3/lib/replace/getaddrinfo.h
deleted file mode 100644 (file)
index dddd699..0000000
+++ /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/system/network.h b/source3/lib/replace/system/network.h
deleted file mode 100644 (file)
index 077892a..0000000
+++ /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