svn commit: samba r14905 - in branches/SAMBA_4_0/source/librpc: .

2006-04-04 Thread jelmer
Author: jelmer
Date: 2006-04-04 14:38:05 + (Tue, 04 Apr 2006)
New Revision: 14905

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=14905

Log:
Prevent partly generated files when building using heavy parallel make.

Modified:
   branches/SAMBA_4_0/source/librpc/config.mk
   branches/SAMBA_4_0/source/librpc/tables.pl


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/config.mk
===
--- branches/SAMBA_4_0/source/librpc/config.mk  2006-04-04 04:16:02 UTC (rev 
14904)
+++ branches/SAMBA_4_0/source/librpc/config.mk  2006-04-04 14:38:05 UTC (rev 
14905)
@@ -346,7 +346,8 @@
 REQUIRED_SUBSYSTEMS = LIBNDR NDR_NBT
 
 librpc/gen_ndr/tables.c: $(IDL_NDR_HEADER_FILES)
-   @$(PERL) $(srcdir)/librpc/tables.pl --output=librpc/gen_ndr/tables.c 
$(IDL_NDR_HEADER_FILES)
+   @echo Generating librpc/gen_ndr/tables.c
+   @$(PERL) $(srcdir)/librpc/tables.pl --output=librpc/gen_ndr/tables.c 
$(IDL_NDR_HEADER_FILES)  librpc/gen_ndr/tables.c
 
 [SUBSYSTEM::NDR_IFACE_TABLE]
 OBJ_FILES = gen_ndr/tables.o

Modified: branches/SAMBA_4_0/source/librpc/tables.pl
===
--- branches/SAMBA_4_0/source/librpc/tables.pl  2006-04-04 04:16:02 UTC (rev 
14904)
+++ branches/SAMBA_4_0/source/librpc/tables.pl  2006-04-04 14:38:05 UTC (rev 
14905)
@@ -25,8 +25,6 @@
 
Usage: tables.pl [options] idlfile
 
-   Options:
- --output OUTNAME  put output in OUTNAME.*
\n;
 exit(0);
 }
@@ -61,17 +59,14 @@
}
 
if ($found) {
-   print TABLEC #include \$filename\\n;
+   print #include \$filename\\n;
}
 
close(FILE);
 }
 
-print Creating $opt_output\n;
-open(TABLEC, $opt_output) || die failed to open $opt_output\n;
+print EOF;
 
-print TABLEC EOF;
-
 /* Automatically generated by tables.pl. DO NOT EDIT */
 
 #include includes.h
@@ -81,7 +76,7 @@
 
 process_file($_) foreach (@ARGV);
 
-print TABLEC EOF;
+print EOF;
 
 NTSTATUS dcerpc_register_builtin_interfaces(void)
 {
@@ -92,5 +87,3 @@
return NT_STATUS_OK;
 }
 EOF
-
-close(TABLEC);



svn commit: samba r14906 - in branches/SAMBA_4_0/source: . lib/registry scripting scripting/swig

2006-04-04 Thread jelmer
Author: jelmer
Date: 2006-04-04 14:39:00 + (Tue, 04 Apr 2006)
New Revision: 14906

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=14906

Log:
Move SWIG-specific files to scripting/swig/

Added:
   branches/SAMBA_4_0/source/scripting/swig/config.m4
   branches/SAMBA_4_0/source/scripting/swig/config.mk
Removed:
   branches/SAMBA_4_0/source/scripting/config.m4
   branches/SAMBA_4_0/source/scripting/config.mk
Modified:
   branches/SAMBA_4_0/source/configure.in
   branches/SAMBA_4_0/source/lib/registry/config.mk
   branches/SAMBA_4_0/source/main.mk


Changeset:
Modified: branches/SAMBA_4_0/source/configure.in
===
--- branches/SAMBA_4_0/source/configure.in  2006-04-04 14:38:05 UTC (rev 
14905)
+++ branches/SAMBA_4_0/source/configure.in  2006-04-04 14:39:00 UTC (rev 
14906)
@@ -35,7 +35,7 @@
 sinclude(libcli/config.m4)
 sinclude(smbd/process_model.m4)
 sinclude(lib/registry/config.m4)
-sinclude(scripting/config.m4)
+sinclude(scripting/swig/config.m4)
 sinclude(gtk/config.m4)
 sinclude(ntvfs/posix/config.m4)
 sinclude(lib/socket_wrapper/config.m4)

Modified: branches/SAMBA_4_0/source/lib/registry/config.mk
===
--- branches/SAMBA_4_0/source/lib/registry/config.mk2006-04-04 14:38:05 UTC 
(rev 14905)
+++ branches/SAMBA_4_0/source/lib/registry/config.mk2006-04-04 14:39:00 UTC 
(rev 14906)
@@ -21,6 +21,9 @@
--header --outputdir=lib/registry \
--tdr-parser -- lib/registry/regf.idl
 
+clean::
+   @-rm -f lib/registry/regf.h lib/registry/tdr_regf*
+
 
 # Start MODULE registry_w95
 [MODULE::registry_w95]

Modified: branches/SAMBA_4_0/source/main.mk
===
--- branches/SAMBA_4_0/source/main.mk   2006-04-04 14:38:05 UTC (rev 14905)
+++ branches/SAMBA_4_0/source/main.mk   2006-04-04 14:39:00 UTC (rev 14906)
@@ -28,7 +28,8 @@
 include librpc/config.mk
 include client/config.mk
 include libcli/config.mk
-include scripting/config.mk
+include scripting/ejs/config.mk
+include scripting/swig/config.mk
 include kdc/config.mk
 include passdb/config.mk
 
@@ -246,7 +247,6 @@
@echo Removing generated files
@-rm -f bin/*_init_module.c
@-rm -rf librpc/gen_* 
-   @-rm -f lib/registry/regf.h lib/registry/tdr_regf*
@echo Removing proto headers
@-rm -f $(PROTO_HEADERS)
 
@@ -255,7 +255,6 @@
-rm -f Makefile 
-rm -f config.status
-rm -f config.log config.cache
-   -rm -f samba4-deps.dot
-rm -f config.pm config.mk
-rm -f $(PC_FILES)
 

Deleted: branches/SAMBA_4_0/source/scripting/config.m4
===
--- branches/SAMBA_4_0/source/scripting/config.m4   2006-04-04 14:38:05 UTC 
(rev 14905)
+++ branches/SAMBA_4_0/source/scripting/config.m4   2006-04-04 14:39:00 UTC 
(rev 14906)
@@ -1,27 +0,0 @@
-dnl # Scripting subsystem
-
-# Check for python support
-
-PYTHON=
- 
-AC_ARG_WITH(python,
-[  --with-python=PYTHONNAME  build Python libraries],
-[ case ${withval-python} in
-  yes)
-PYTHON=python
-;;
-  no)
-PYTHON=
-;;
-  *)
-PYTHON=${withval-python}
-;;
-  esac ])
-
-if test x$PYTHON != x; then
-   incdir=`python -c 'import sys; print %s/include/python%d.%d % 
(sys.prefix, sys.version_info[[0]], sys.version_info[[1]])'`
-   CPPFLAGS=$CPPFLAGS -I $incdir
-fi
-
-AC_SUBST(PYTHON)
-

Deleted: branches/SAMBA_4_0/source/scripting/config.mk
===
--- branches/SAMBA_4_0/source/scripting/config.mk   2006-04-04 14:38:05 UTC 
(rev 14905)
+++ branches/SAMBA_4_0/source/scripting/config.mk   2006-04-04 14:39:00 UTC 
(rev 14906)
@@ -1,48 +0,0 @@
-include ejs/config.mk
-
-###
-# Start LIBRARY swig_tdb
-[LIBRARY::swig_tdb]
-LIBRARY_REALNAME = swig/_tdb.$(SHLIBEXT)
-OBJ_FILES = swig/tdb_wrap.o
-REQUIRED_SUBSYSTEMS = LIBTDB DYNCONFIG
-# End LIBRARY swig_tdb
-###
-
-###
-# Start LIBRARY swig_ldb
-[LIBRARY::swig_ldb]
-REQUIRED_SUBSYSTEMS = ldb DYNCONFIG
-LIBRARY_REALNAME = swig/_ldb.$(SHLIBEXT)
-OBJ_FILES = swig/ldb_wrap.o
-# End LIBRARY swig_ldb
-###
-
-###
-# Start LIBRARY swig_dcerpc
-[LIBRARY::swig_dcerpc]
-LIBRARY_REALNAME = swig/_dcerpc.$(SHLIBEXT)
-REQUIRED_SUBSYSTEMS = LIBCLI NDR_MISC LIBSAMBA-UTIL LIBSAMBA-CONFIG 
RPC_NDR_SAMR RPC_NDR_LSA DYNCONFIG
-OBJ_FILES = swig/dcerpc_wrap.o
-# End LIBRARY swig_dcerpc
-###
-
-# Swig extensions
-swig: scripting/swig/_tdb.$(SHLIBEXT) scripting/swig/_ldb.$(SHLIBEXT)
-
-.SUFFIXES: _wrap.c .i
-
-.i_wrap.c:
-   swig -python $
-
-SWIG_INCLUDES = librpc/gen_ndr/samr.i librpc/gen_ndr/lsa.i 
librpc/gen_ndr/spoolss.i
-

svn commit: samba r14907 - in branches/SAMBA_4_0/source/librpc: .

2006-04-04 Thread jelmer
Author: jelmer
Date: 2006-04-04 15:20:02 + (Tue, 04 Apr 2006)
New Revision: 14907

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=14907

Log:
Another attempt at fixing partially generated tables.c files

Modified:
   branches/SAMBA_4_0/source/librpc/config.mk


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/config.mk
===
--- branches/SAMBA_4_0/source/librpc/config.mk  2006-04-04 14:39:00 UTC (rev 
14906)
+++ branches/SAMBA_4_0/source/librpc/config.mk  2006-04-04 15:20:02 UTC (rev 
14907)
@@ -347,7 +347,8 @@
 
 librpc/gen_ndr/tables.c: $(IDL_NDR_HEADER_FILES)
@echo Generating librpc/gen_ndr/tables.c
-   @$(PERL) $(srcdir)/librpc/tables.pl --output=librpc/gen_ndr/tables.c 
$(IDL_NDR_HEADER_FILES)  librpc/gen_ndr/tables.c
+   @$(PERL) $(srcdir)/librpc/tables.pl --output=librpc/gen_ndr/tables.c 
$(IDL_NDR_HEADER_FILES)  librpc/gen_ndr/tables.x
+   mv librpc/gen_ndr/tables.x librpc/gen_ndr/tables.c
 
 [SUBSYSTEM::NDR_IFACE_TABLE]
 OBJ_FILES = gen_ndr/tables.o



svn commit: samba r14908 - in branches/SAMBA_4_0/source/script/tests: .

2006-04-04 Thread jelmer
Author: jelmer
Date: 2006-04-04 15:37:30 + (Tue, 04 Apr 2006)
New Revision: 14908

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=14908

Log:
Fix LD_LIBRARY_PATH

Modified:
   branches/SAMBA_4_0/source/script/tests/selftest.sh


Changeset:
Modified: branches/SAMBA_4_0/source/script/tests/selftest.sh
===
--- branches/SAMBA_4_0/source/script/tests/selftest.sh  2006-04-04 15:20:02 UTC 
(rev 14907)
+++ branches/SAMBA_4_0/source/script/tests/selftest.sh  2006-04-04 15:37:30 UTC 
(rev 14908)
@@ -50,7 +50,7 @@
 TEST_DATA_PREFIX=$PREFIX_ABS
 export TEST_DATA_PREFIX
 
-LD_LIBRARY_PATH=$PREFIX_ABS/bin:$LD_LIBRARY_PATH
+LD_LIBRARY_PATH=$OLD_PWD/bin:$LD_LIBRARY_PATH
 export LD_LIBRARY_PATH
 
 TMPDIR=$PREFIX_ABS/tmp



svn commit: samba r14909 - in branches/SAMBA_4_0/source/param: .

2006-04-04 Thread jelmer
Author: jelmer
Date: 2006-04-04 16:20:32 + (Tue, 04 Apr 2006)
New Revision: 14909

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=14909

Log:
Add lp_modulesdir() smb.conf option

Modified:
   branches/SAMBA_4_0/source/param/loadparm.c
   branches/SAMBA_4_0/source/param/util.c


Changeset:
Modified: branches/SAMBA_4_0/source/param/loadparm.c
===
--- branches/SAMBA_4_0/source/param/loadparm.c  2006-04-04 15:37:30 UTC (rev 
14908)
+++ branches/SAMBA_4_0/source/param/loadparm.c  2006-04-04 16:20:32 UTC (rev 
14909)
@@ -98,6 +98,7 @@
char *ncalrpc_dir;
char *display_charset;
char *szLockDir;
+   char *szModulesDir;
char *szPidDir;
char *szSetupDir;
char *szServerString;
@@ -528,6 +529,7 @@
{auto services, P_STRING, P_GLOBAL, Globals.szAutoServices, NULL, 
NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
{lock dir, P_STRING, P_GLOBAL, Globals.szLockDir, NULL, NULL, 
FLAG_HIDE}, 
{lock directory, P_STRING, P_GLOBAL, Globals.szLockDir, NULL, NULL, 
FLAG_ADVANCED | FLAG_DEVELOPER},
+   {modules dir, P_STRING, P_GLOBAL, Globals.szModulesDir, NULL, NULL, 
FLAG_ADVANCED | FLAG_DEVELOPER},
{pid directory, P_STRING, P_GLOBAL, Globals.szPidDir, NULL, NULL, 
FLAG_ADVANCED | FLAG_DEVELOPER}, 
{js include, P_LIST, P_GLOBAL, Globals.jsInclude, NULL, NULL, 
FLAG_ADVANCED | FLAG_DEVELOPER},
{setup directory, P_STRING, P_GLOBAL, Globals.szSetupDir, NULL, 
NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
@@ -629,6 +631,7 @@
 
do_parameter(pid directory, dyn_PIDDIR, NULL);
do_parameter(lock dir, dyn_LOCKDIR, NULL);
+   do_parameter(modules dir, dyn_MODULESDIR, NULL);
do_parameter(ncalrpc dir, dyn_NCALRPCDIR, NULL);
 
do_parameter(socket address, 0.0.0.0, NULL);
@@ -828,6 +831,7 @@
 _PUBLIC_ FN_GLOBAL_STRING(lp_private_dir, Globals.szPrivateDir)
 _PUBLIC_ FN_GLOBAL_STRING(lp_serverstring, Globals.szServerString)
 _PUBLIC_ FN_GLOBAL_STRING(lp_lockdir, Globals.szLockDir)
+_PUBLIC_ FN_GLOBAL_STRING(lp_modulesdir, Globals.szModulesDir)
 _PUBLIC_ FN_GLOBAL_STRING(lp_setupdir, Globals.szSetupDir)
 _PUBLIC_ FN_GLOBAL_STRING(lp_ncalrpc_dir, Globals.ncalrpc_dir)
 _PUBLIC_ FN_GLOBAL_STRING(lp_piddir, Globals.szPidDir)

Modified: branches/SAMBA_4_0/source/param/util.c
===
--- branches/SAMBA_4_0/source/param/util.c  2006-04-04 15:37:30 UTC (rev 
14908)
+++ branches/SAMBA_4_0/source/param/util.c  2006-04-04 16:20:32 UTC (rev 
14909)
@@ -170,7 +170,7 @@
 
 static char *modules_path(TALLOC_CTX* mem_ctx, const char *name)
 {
-   return talloc_asprintf(mem_ctx, %s/%s, dyn_MODULESDIR, name);
+   return talloc_asprintf(mem_ctx, %s/%s, lp_modulesdir(), name);
 }
 
 /**
@@ -184,6 +184,7 @@
char *path = modules_path(mem_ctx, subsystem);
init_module_fn *ret;
 
+   printf(MODULESDIR: %s\n, path);
ret = load_modules(mem_ctx, path);
 
talloc_free(path);



svn commit: samba r14910 - in branches/SAMBA_4_0/source/build: m4 smb_build

2006-04-04 Thread jelmer
Author: jelmer
Date: 2006-04-04 16:21:08 + (Tue, 04 Apr 2006)
New Revision: 14910

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=14910

Log:
Remove unused configure options

Modified:
   branches/SAMBA_4_0/source/build/m4/check_path.m4
   branches/SAMBA_4_0/source/build/smb_build/makefile.pm


Changeset:
Modified: branches/SAMBA_4_0/source/build/m4/check_path.m4
===
--- branches/SAMBA_4_0/source/build/m4/check_path.m42006-04-04 16:20:32 UTC 
(rev 14909)
+++ branches/SAMBA_4_0/source/build/m4/check_path.m42006-04-04 16:21:08 UTC 
(rev 14910)
@@ -122,21 +122,6 @@
 AC_SUBST(winbindd_socket_dir)
 AC_SUBST(modulesdir)
 
-#
-# set prefix for 'make test'
-selftest_prefix=./
-AC_SUBST(selftest_prefix)
-AC_ARG_WITH(selftest-prefix,
-[  --with-selftest-prefix=DIRThe prefix where make test will be runned 
(\$selftest_prefix)],
-[ case $withval in
-  yes|no)
-AC_MSG_WARN([--with-selftest-prefix called without argument - will use 
default])
-  ;;
-  * )
-selftest_prefix=$withval
-;;
-  esac])
-
 debug=no
 AC_ARG_ENABLE(debug,
 [  --enable-debug  Turn on compiler debugging information 
(default=no)],
@@ -153,13 +138,6 @@
 developer=yes
 fi])
 
-experimental=no
-AC_ARG_ENABLE(experimental,
-[  --enable-experimental   Turn on experimental features (default=no)],
-[if test x$enable_experimental = xyes; then
-experimental=yes
-fi])
-
 dnl disable these external libs 
 AC_ARG_WITH(disable-ext-lib,
 [  --with-disable-ext-lib=LIB Comma-seperated list of external libraries],
@@ -169,33 +147,3 @@
eval SMB_EXT_LIB_$i=NO
done
 fi ])
-
-dnl exclude these modules 
-AC_ARG_WITH(exclude-modules,
-[  --with-exclude-modules=MODULES Comma-seperated list of names of modules to 
exclude from build],
-[ if test $withval; then
-   for i in `echo $withval | sed -e's/,/ /g'`
-   do
-   eval SMB_MODULE_$i=NOT
-   done
-fi ])
-
-dnl Always built these modules shared
-AC_ARG_WITH(shared-modules,
-[  --with-shared-modules=MODULES  Comma-seperated list of names of modules to 
build shared],
-[ if test $withval; then
-   for i in `echo $withval | sed -e's/,/ /g'`
-   do
-   eval SMB_MODULE_$i=SHARED
-   done
-fi ])
-
-dnl Always built these modules static
-AC_ARG_WITH(static-modules,
-[  --with-static-modules=MODULES  Comma-seperated list of names of modules to 
statically link in],
-[ if test $withval; then
-   for i in `echo $withval | sed -e's/,/ /g'`
-   do
-   eval SMB_MODULE_$i=STATIC
-   done
-fi ])

Modified: branches/SAMBA_4_0/source/build/smb_build/makefile.pm
===
--- branches/SAMBA_4_0/source/build/smb_build/makefile.pm   2006-04-04 
16:20:32 UTC (rev 14909)
+++ branches/SAMBA_4_0/source/build/smb_build/makefile.pm   2006-04-04 
16:21:08 UTC (rev 14910)
@@ -67,7 +67,7 @@
$self-output( __EOD__
 prefix = $self-{config}-{prefix}
 exec_prefix = $self-{config}-{exec_prefix}
-selftest_prefix = $self-{config}-{selftest_prefix}
+selftest_prefix = ./
 VPATH = 
$self-{config}-{srcdir}:heimdal/lib/asn1:heimdal/lib/krb5:heimdal/lib/gssapi:heimdal/lib/hdb:heimdal/lib/roken:heimdal/lib/des
 srcdir = $self-{config}-{srcdir}
 builddir = $self-{config}-{builddir}



svn commit: samba r14911 - in branches/SAMBA_4_0/source: . build/smb_build

2006-04-04 Thread jelmer
Author: jelmer
Date: 2006-04-04 16:23:05 + (Tue, 04 Apr 2006)
New Revision: 14911

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=14911

Log:
Allow easy modification of selftest subdirectory name

Modified:
   branches/SAMBA_4_0/source/build/smb_build/makefile.pm
   branches/SAMBA_4_0/source/main.mk


Changeset:
Modified: branches/SAMBA_4_0/source/build/smb_build/makefile.pm
===
--- branches/SAMBA_4_0/source/build/smb_build/makefile.pm   2006-04-04 
16:21:08 UTC (rev 14910)
+++ branches/SAMBA_4_0/source/build/smb_build/makefile.pm   2006-04-04 
16:23:05 UTC (rev 14911)
@@ -67,7 +67,7 @@
$self-output( __EOD__
 prefix = $self-{config}-{prefix}
 exec_prefix = $self-{config}-{exec_prefix}
-selftest_prefix = ./
+selftest_prefix = ./st
 VPATH = 
$self-{config}-{srcdir}:heimdal/lib/asn1:heimdal/lib/krb5:heimdal/lib/gssapi:heimdal/lib/hdb:heimdal/lib/roken:heimdal/lib/des
 srcdir = $self-{config}-{srcdir}
 builddir = $self-{config}-{builddir}

Modified: branches/SAMBA_4_0/source/main.mk
===
--- branches/SAMBA_4_0/source/main.mk   2006-04-04 16:21:08 UTC (rev 14910)
+++ branches/SAMBA_4_0/source/main.mk   2006-04-04 16:23:05 UTC (rev 14911)
@@ -270,35 +270,35 @@
 test: $(DEFAULT_TEST_TARGET)
 
 test-swrap: all
-   ./script/tests/selftest.sh ${selftest_prefix}/st all SOCKET_WRAPPER
+   ./script/tests/selftest.sh ${selftest_prefix} all SOCKET_WRAPPER
 
 test-noswrap: all
-   ./script/tests/selftest.sh ${selftest_prefix}/st all
+   ./script/tests/selftest.sh ${selftest_prefix} all
 
 quicktest: all
-   ./script/tests/selftest.sh ${selftest_prefix}/st quick SOCKET_WRAPPER
+   ./script/tests/selftest.sh ${selftest_prefix} quick SOCKET_WRAPPER
 
 valgrindtest: valgrindtest-quick
 
 valgrindtest-quick: all
SMBD_VALGRIND=xterm -n smbd -e valgrind -q --db-attach=yes 
--num-callers=30 \
-   VALGRIND=valgrind -q --num-callers=30 
--log-file=${selftest_prefix}/st/valgrind.log \
-   ./script/tests/selftest.sh ${selftest_prefix}/st quick SOCKET_WRAPPER
+   VALGRIND=valgrind -q --num-callers=30 
--log-file=${selftest_prefix}/valgrind.log \
+   ./script/tests/selftest.sh ${selftest_prefix} quick SOCKET_WRAPPER
 
 valgrindtest-all: all
SMBD_VALGRIND=xterm -n smbd -e valgrind -q --db-attach=yes 
--num-callers=30 \
-   VALGRIND=valgrind -q --num-callers=30 
--log-file=${selftest_prefix}/st/valgrind.log \
-   ./script/tests/selftest.sh ${selftest_prefix}/st all SOCKET_WRAPPER
+   VALGRIND=valgrind -q --num-callers=30 
--log-file=${selftest_prefix}/valgrind.log \
+   ./script/tests/selftest.sh ${selftest_prefix} all SOCKET_WRAPPER
 
 gdbtest: gdbtest-quick
 
 gdbtest-quick: all
SMBD_VALGRIND=xterm -n smbd -e gdb --args  \
-   ./script/tests/selftest.sh ${selftest_prefix}/st quick SOCKET_WRAPPER
+   ./script/tests/selftest.sh ${selftest_prefix} quick SOCKET_WRAPPER
 
 gdbtest-all: all
SMBD_VALGRIND=xterm -n smbd -e gdb --args  \
-   ./script/tests/selftest.sh ${selftest_prefix}/st all SOCKET_WRAPPER
+   ./script/tests/selftest.sh ${selftest_prefix} all SOCKET_WRAPPER
 
 unused_macros:
./script/find_unused_macros.pl `find . -name *.[ch]` | sort



Re: svn commit: samba r14910 - in branches/SAMBA_4_0/source/build: m4 smb_build

2006-04-04 Thread Stefan (metze) Metzmacher
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

[EMAIL PROTECTED] schrieb:
 Log:
 Remove unused configure options

Hi Jelmer,

the --with-selftest-prefix option is used to workarround the
108 char limit of unix socket path...

please readd this, thanks!

- --
metze

Stefan Metzmacher metze at samba.org www.samba.org
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.2.3-nr1 (Windows XP)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFEMqNWm70gjA5TCD8RAis/AJ4/Oqvh54YfFe6RismYT2ZK3YtHjACgzKNd
qxvmSuB9njDwTKwsRlqtjZU=
=5sw2
-END PGP SIGNATURE-


svn commit: samba r14912 - in branches/SAMBA_4_0/source/ntvfs/sysdep: .

2006-04-04 Thread metze
Author: metze
Date: 2006-04-04 16:58:28 + (Tue, 04 Apr 2006)
New Revision: 14912

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=14912

Log:
don't crash if inotify isn't present...

metze
Modified:
   branches/SAMBA_4_0/source/ntvfs/sysdep/sys_notify.c


Changeset:
Modified: branches/SAMBA_4_0/source/ntvfs/sysdep/sys_notify.c
===
--- branches/SAMBA_4_0/source/ntvfs/sysdep/sys_notify.c 2006-04-04 16:23:05 UTC 
(rev 14911)
+++ branches/SAMBA_4_0/source/ntvfs/sysdep/sys_notify.c 2006-04-04 16:58:28 UTC 
(rev 14912)
@@ -44,10 +44,6 @@
const char *bname;
struct sys_notify_backend *b;
 
-   if (backends == NULL) {
-   return NULL;
-   }
-
if (ev == NULL) {
ev = event_context_find(mem_ctx);
}
@@ -60,16 +56,25 @@
ctx-ev = ev;
 
bname = lp_parm_string(snum, notify, backend);
-   if (bname == NULL) {
-   bname = backends-name;
+   if (!bname) {
+   if (backends) {
+   bname = backends-name;
+   } else {
+   bname = __unknown__;
+   }
}
 
for (b=backends;b;b=b-next) {
-   if (strcasecmp(b-name, bname) == 0) break;
+   if (strcasecmp(b-name, bname) == 0) {
+   bname = b-name;
+   break;
+   }
}
 
+   ctx-name = bname;
+   ctx-notify_watch = NULL;
+
if (b != NULL) {
-   ctx-name = b-name;
ctx-notify_watch = b-notify_watch;
}
 
@@ -83,6 +88,9 @@
  uint32_t filter, sys_notify_callback_t callback,
  void *private, void **handle)
 {
+   if (!ctx-notify_watch) {
+   return NT_STATUS_NOT_IMPLEMENTED;
+   }
return ctx-notify_watch(ctx, dirpath, filter, callback, private, 
handle);
 }
 



svn commit: samba r14913 - in branches/SAMBA_4_0/source/build: m4 smb_build

2006-04-04 Thread metze
Author: metze
Date: 2006-04-04 17:10:07 + (Tue, 04 Apr 2006)
New Revision: 14913

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=14913

Log:
readd --with-selftest-prefix as it's needed
to workarround the 108 char limitation on unix socket paths.

make test fails when I try to use ./st
in /home/People/metze/devel/samba/4.0/samba4-ci/source/

metze
Modified:
   branches/SAMBA_4_0/source/build/m4/check_path.m4
   branches/SAMBA_4_0/source/build/smb_build/makefile.pm


Changeset:
Modified: branches/SAMBA_4_0/source/build/m4/check_path.m4
===
--- branches/SAMBA_4_0/source/build/m4/check_path.m42006-04-04 16:58:28 UTC 
(rev 14912)
+++ branches/SAMBA_4_0/source/build/m4/check_path.m42006-04-04 17:10:07 UTC 
(rev 14913)
@@ -122,6 +122,24 @@
 AC_SUBST(winbindd_socket_dir)
 AC_SUBST(modulesdir)
 
+#
+# set prefix for 'make test'
+# this is needed to workarround the 108 char 
+# unix socket path limitation!
+#
+selftest_prefix=./st
+AC_SUBST(selftest_prefix)
+AC_ARG_WITH(selftest-prefix,
+[  --with-selftest-prefix=DIRThe prefix where make test will be runned 
($selftest_prefix)],
+[ case $withval in
+  yes|no)
+AC_MSG_WARN([--with-selftest-prefix called without argument - will use 
default])
+  ;;
+  * )
+selftest_prefix=$withval
+;;
+  esac])
+
 debug=no
 AC_ARG_ENABLE(debug,
 [  --enable-debug  Turn on compiler debugging information 
(default=no)],

Modified: branches/SAMBA_4_0/source/build/smb_build/makefile.pm
===
--- branches/SAMBA_4_0/source/build/smb_build/makefile.pm   2006-04-04 
16:58:28 UTC (rev 14912)
+++ branches/SAMBA_4_0/source/build/smb_build/makefile.pm   2006-04-04 
17:10:07 UTC (rev 14913)
@@ -67,7 +67,7 @@
$self-output( __EOD__
 prefix = $self-{config}-{prefix}
 exec_prefix = $self-{config}-{exec_prefix}
-selftest_prefix = ./st
+selftest_prefix = $self-{config}-{selftest_prefix}
 VPATH = 
$self-{config}-{srcdir}:heimdal/lib/asn1:heimdal/lib/krb5:heimdal/lib/gssapi:heimdal/lib/hdb:heimdal/lib/roken:heimdal/lib/des
 srcdir = $self-{config}-{srcdir}
 builddir = $self-{config}-{builddir}



Re: svn commit: samba r14910 - in branches/SAMBA_4_0/source/build: m4 smb_build

2006-04-04 Thread Stefan (metze) Metzmacher
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Stefan (metze) Metzmacher schrieb:
 [EMAIL PROTECTED] schrieb:
 please readd this, thanks!

Ok, I readded it myself in rev 14913

- --
metze

Stefan Metzmacher metze at samba.org www.samba.org
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.2.3-nr1 (Windows XP)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFEMqimm70gjA5TCD8RAodFAKCQNOeWDVOP/Mhdr6p21k4Ln2DIggCfcsOV
y0j1AZFZaiN+Fiy6O5ioRFM=
=rXN8
-END PGP SIGNATURE-


svn commit: samba r14914 - in branches/SAMBA_4_0/source/param: .

2006-04-04 Thread jelmer
Author: jelmer
Date: 2006-04-04 17:48:53 + (Tue, 04 Apr 2006)
New Revision: 14914

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=14914

Log:
Remove printf statement I accidently committed.

Modified:
   branches/SAMBA_4_0/source/param/util.c


Changeset:
Modified: branches/SAMBA_4_0/source/param/util.c
===
--- branches/SAMBA_4_0/source/param/util.c  2006-04-04 17:10:07 UTC (rev 
14913)
+++ branches/SAMBA_4_0/source/param/util.c  2006-04-04 17:48:53 UTC (rev 
14914)
@@ -184,7 +184,6 @@
char *path = modules_path(mem_ctx, subsystem);
init_module_fn *ret;
 
-   printf(MODULESDIR: %s\n, path);
ret = load_modules(mem_ctx, path);
 
talloc_free(path);



svn commit: samba r14915 - in branches/SAMBA_4_0/source/scripting/swig: .

2006-04-04 Thread tpot
Author: tpot
Date: 2006-04-04 22:15:27 + (Tue, 04 Apr 2006)
New Revision: 14915

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=14915

Log:
Work in progress - getting ldb_add() working.

Modified:
   branches/SAMBA_4_0/source/scripting/swig/Ldb.py
   branches/SAMBA_4_0/source/scripting/swig/ldb.i


Changeset:
Modified: branches/SAMBA_4_0/source/scripting/swig/Ldb.py
===
--- branches/SAMBA_4_0/source/scripting/swig/Ldb.py 2006-04-04 17:48:53 UTC 
(rev 14914)
+++ branches/SAMBA_4_0/source/scripting/swig/Ldb.py 2006-04-04 22:15:27 UTC 
(rev 14915)
@@ -44,15 +44,21 @@
 class LdbMessage:
 A class representing a ldb message as a dict of ldb elements.
 
-def __init__(self, msg):
-self.dn = msg.dn
-self.private_data = msg.private_data
-eltlist = \
-[LdbElement(ldb.ldb_message_element_array_getitem(msg.elements, x))
- for x in range(msg.num_elements)]
-self.elements = \
-dict([(x.name, x) for x in eltlist])
+def __init__(self, msg = None):
 
+self.dn = None
+self.private_data = None
+self.elements = []
+
+if msg is not None:
+self.dn = msg.dn
+self.private_data = msg.private_data
+eltlist = \
+[LdbElement(ldb.ldb_message_element_array_getitem(
+msg.elements, x))
+ for x in range(msg.num_elements)]
+self.elements = dict([(x.name, x) for x in eltlist])
+
 def __repr__(self):
 return '%s(dn=%s) instance at 0x%x' % (self.__class__.__name__,
`self.dn`, id(self))

Modified: branches/SAMBA_4_0/source/scripting/swig/ldb.i
===
--- branches/SAMBA_4_0/source/scripting/swig/ldb.i  2006-04-04 17:48:53 UTC 
(rev 14914)
+++ branches/SAMBA_4_0/source/scripting/swig/ldb.i  2006-04-04 22:15:27 UTC 
(rev 14915)
@@ -156,6 +156,30 @@
void *private_data; /* private to the backend */
 };
 
+%typemap(in) struct ldb_message * {
+   PyObject *obj, *key, *value;
+   int pos;
+
+   $1 = ldb_msg_new(NULL);
+
+   obj = PyObject_GetAttrString($input, dn);
+   $1-dn = ldb_dn_explode(NULL, PyString_AsString(obj));
+
+   obj = PyObject_GetAttrString($input, private_data);
+   $1-private_data = PyString_AsString(obj);
+
+   obj = PyObject_GetAttrString($input, elements);
+
+   pos = 0;
+   while (PyDict_Next(obj, pos, key, value)) {
+   struct ldb_val v;
+
+   v.data = PyString_AsString(value);
+   v.length = PyString_Size(value);
+   ldb_msg_add_value($1, PyString_AsString(key), v);
+   }
+}
+
 /*
  * Wrap struct ldb_result
  */



Build status as of Wed Apr 5 00:00:02 2006

2006-04-04 Thread build
URL: http://build.samba.org/

--- /home/build/master/cache/broken_results.txt.old 2006-04-04 
00:00:03.0 +
+++ /home/build/master/cache/broken_results.txt 2006-04-05 00:00:04.0 
+
@@ -1,17 +1,17 @@
-Build status as of Tue Apr  4 00:00:01 2006
+Build status as of Wed Apr  5 00:00:02 2006
 
 Build counts:
 Tree Total  Broken Panic 
-ccache   31 3  0 
-distcc   31 4  0 
-lorikeet-heimdal 26 26 0 
-ppp  18 0  0 
-rsync31 2  0 
-samba3  0  0 
+ccache   33 3  0 
+distcc   33 4  0 
+lorikeet-heimdal 27 27 0 
+ppp  20 0  0 
+rsync32 2  0 
+samba2  0  0 
 samba-docs   0  0  0 
-samba4   36 28 8 
-samba_3_033 7  0 
-smb-build25 0  0 
-talloc   29 15 0 
-tdb  29 4  0 
+samba4   38 33 1 
+samba_3_034 7  0 
+smb-build26 0  0 
+talloc   30 15 0 
+tdb  30 4  0 
 


svn commit: samba r14916 - in branches/SAMBA_4_0/source/lib/tdb/common: .

2006-04-04 Thread tridge
Author: tridge
Date: 2006-04-05 03:51:43 + (Wed, 05 Apr 2006)
New Revision: 14916

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=14916

Log:

print errno so I can work out why OpenBSD is failing the test for tdb
in the build farm. msync() is failing.

Modified:
   branches/SAMBA_4_0/source/lib/tdb/common/transaction.c


Changeset:
Modified: branches/SAMBA_4_0/source/lib/tdb/common/transaction.c
===
--- branches/SAMBA_4_0/source/lib/tdb/common/transaction.c  2006-04-04 
22:15:27 UTC (rev 14915)
+++ branches/SAMBA_4_0/source/lib/tdb/common/transaction.c  2006-04-05 
03:51:43 UTC (rev 14916)
@@ -544,7 +544,8 @@
if (msync(moffset + (char *)tdb-map_ptr, 
  length + (offset - moffset), MS_SYNC) != 0) {
tdb-ecode = TDB_ERR_IO;
-   TDB_LOG((tdb, 0, tdb_transaction: msync failed\n));
+   TDB_LOG((tdb, 0, tdb_transaction: msync failed - %s\n,
+strerror(errno)));
return -1;
}
}



svn commit: samba r14917 - in branches/SAMBA_4_0/source/librpc/ndr: .

2006-04-04 Thread tridge
Author: tridge
Date: 2006-04-05 04:44:13 + (Wed, 05 Apr 2006)
New Revision: 14917

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=14917

Log:

fixed length strings don't count any trailing nulls in the length

Modified:
   branches/SAMBA_4_0/source/librpc/ndr/ndr_string.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/ndr/ndr_string.c
===
--- branches/SAMBA_4_0/source/librpc/ndr/ndr_string.c   2006-04-05 03:51:43 UTC 
(rev 14916)
+++ branches/SAMBA_4_0/source/librpc/ndr/ndr_string.c   2006-04-05 04:44:13 UTC 
(rev 14917)
@@ -317,7 +317,10 @@
 
flags = ~LIBNDR_FLAG_STR_CONFORMANT;
 
-   if (!(flags  LIBNDR_FLAG_STR_NOTERM)) {
+   if (!(flags  
+ (LIBNDR_FLAG_STR_NOTERM |
+  LIBNDR_FLAG_STR_FIXLEN15 |
+  LIBNDR_FLAG_STR_FIXLEN32))) {
s_len++;
}
d_len = convert_string_talloc(ndr, CH_UNIX, chset, s, s_len, (void 
**)dest);



svn commit: samba r14918 - in branches/SAMBA_4_0/source/ntvfs: common sysdep

2006-04-04 Thread tridge
Author: tridge
Date: 2006-04-05 04:50:08 + (Wed, 05 Apr 2006)
New Revision: 14918

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=14918

Log:

cleaner handling of systems without inotify

Modified:
   branches/SAMBA_4_0/source/ntvfs/common/notify.c
   branches/SAMBA_4_0/source/ntvfs/sysdep/inotify.c
   branches/SAMBA_4_0/source/ntvfs/sysdep/sys_notify.c


Changeset:
Modified: branches/SAMBA_4_0/source/ntvfs/common/notify.c
===
--- branches/SAMBA_4_0/source/ntvfs/common/notify.c 2006-04-05 04:44:13 UTC 
(rev 14917)
+++ branches/SAMBA_4_0/source/ntvfs/common/notify.c 2006-04-05 04:50:08 UTC 
(rev 14918)
@@ -268,6 +268,25 @@
 }
 
 /*
+  add an entry to the notify array
+*/
+static NTSTATUS notify_add_array(struct notify_context *notify, struct 
notify_entry *e,
+const char *path, void *private)
+{
+   notify-array-entries[notify-array-num_entries] = *e;
+   notify-array-entries[notify-array-num_entries].private = private;
+   notify-array-entries[notify-array-num_entries].server = 
notify-server;
+   
+   if (path) {
+   notify-array-entries[notify-array-num_entries].path = path;
+   }
+
+   notify-array-num_entries++;
+   
+   return notify_save(notify);
+}
+
+/*
   add a notify watch. This is called when a notify is first setup on a open
   directory handle.
 */
@@ -312,34 +331,24 @@
DLIST_ADD(notify-list, listel);
 
/* ignore failures from sys_notify */
-   status = sys_notify_watch(notify-sys_notify_ctx, e-path, e-filter, 
- sys_notify_callback, listel, 
- listel-sys_notify_handle);
-   if (NT_STATUS_IS_OK(status)) {
-   talloc_steal(listel, listel-sys_notify_handle);
-   notify_unlock(notify);
-   } else {
-   notify-array-entries[notify-array-num_entries] = *e;
-   notify-array-entries[notify-array-num_entries].private = 
private;
-   notify-array-entries[notify-array-num_entries].server = 
notify-server;
-
-   if (path) {
-   notify-array-entries[notify-array-num_entries].path 
= path;
+   if (notify-sys_notify_ctx != NULL) {
+   status = sys_notify_watch(notify-sys_notify_ctx, e-path, 
e-filter, 
+ sys_notify_callback, listel, 
+ listel-sys_notify_handle);
+   if (NT_STATUS_IS_OK(status)) {
+   /* if the kernel handler has said it can handle this 
notify then
+  we don't need to add it to the array */
+   talloc_steal(listel, listel-sys_notify_handle);
+   goto done;
}
+   }
 
-   notify-array-num_entries++;
+   status = notify_add_array(notify, e, path, private);
 
-   status = notify_save(notify);
+done:
+   notify_unlock(notify);
+   talloc_free(path);
 
-   notify_unlock(notify);
-
-   NT_STATUS_NOT_OK_RETURN(status);
-   }
-
-   if (path) {
-   talloc_free(path);
-   }
-
return status;
 }
 

Modified: branches/SAMBA_4_0/source/ntvfs/sysdep/inotify.c
===
--- branches/SAMBA_4_0/source/ntvfs/sysdep/inotify.c2006-04-05 04:44:13 UTC 
(rev 14917)
+++ branches/SAMBA_4_0/source/ntvfs/sysdep/inotify.c2006-04-05 04:50:08 UTC 
(rev 14918)
@@ -239,7 +239,7 @@
 
 /*
   add a watch. The watch is removed when the caller calls
-  talloc_free() on handle
+  talloc_free() on *handle
 */
 static NTSTATUS inotify_watch(struct sys_notify_context *ctx, const char 
*dirpath,
  uint32_t filter, sys_notify_callback_t callback,

Modified: branches/SAMBA_4_0/source/ntvfs/sysdep/sys_notify.c
===
--- branches/SAMBA_4_0/source/ntvfs/sysdep/sys_notify.c 2006-04-05 04:44:13 UTC 
(rev 14917)
+++ branches/SAMBA_4_0/source/ntvfs/sysdep/sys_notify.c 2006-04-05 04:50:08 UTC 
(rev 14918)
@@ -44,6 +44,10 @@
const char *bname;
struct sys_notify_backend *b;
 
+   if (backends == NULL) {
+   return NULL;
+   }
+
if (ev == NULL) {
ev = event_context_find(mem_ctx);
}



svn commit: samba r14919 - in branches/SAMBA_4_0/source/script/tests: .

2006-04-04 Thread tridge
Author: tridge
Date: 2006-04-05 05:05:49 + (Wed, 05 Apr 2006)
New Revision: 14919

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=14919

Log:

disable the BASE-DEFER_OPEN test until it gets fixed (it sleeps for
way too long). Jeremy, whats the idea behind those long sleeps?

its also redundent, as the RAW-MUX test already tests the sharing
violation open delay

Modified:
   branches/SAMBA_4_0/source/script/tests/test_posix.sh


Changeset:
Modified: branches/SAMBA_4_0/source/script/tests/test_posix.sh
===
--- branches/SAMBA_4_0/source/script/tests/test_posix.sh2006-04-05 
04:50:08 UTC (rev 14918)
+++ branches/SAMBA_4_0/source/script/tests/test_posix.sh2006-04-05 
05:05:49 UTC (rev 14919)
@@ -20,7 +20,7 @@
 incdir=`dirname $0`
 . $incdir/test_functions.sh
 
-base=BASE-ATTR BASE-CHARSET BASE-CHKPATH BASE-DEFER_OPEN BASE-DELAYWRITE 
BASE-DELETE
+base=BASE-ATTR BASE-CHARSET BASE-CHKPATH BASE-DELAYWRITE BASE-DELETE
 base=$base BASE-DENY1 BASE-DENY2 BASE-DENY3 BASE-DENYDOS BASE-DIR1 BASE-DIR2
 base=$base BASE-DISCONNECT BASE-FDPASS BASE-LOCK1 BASE-LOCK2 BASE-LOCK3 
BASE-LOCK4
 base=$base BASE-LOCK5 BASE-LOCK6 BASE-LOCK7 BASE-MANGLE BASE-NEGNOWAIT 
BASE-NTDENY1
@@ -35,7 +35,7 @@
 
 tests=$base $raw
 
-skipped=BASE-CHARSET BASE-DELAYWRITE RAW-COMPOSITE RAW-OPLOCK
+skipped=BASE-CHARSET BASE-DELAYWRITE RAW-COMPOSITE RAW-OPLOCK BASE-DEFER_OPEN
 
 echo WARNING: Skipping tests $skipped
 



svn commit: samba r14920 - in branches/SAMBA_4_0/source/ntvfs: common posix sysdep

2006-04-04 Thread tridge
Author: tridge
Date: 2006-04-05 05:54:10 + (Wed, 05 Apr 2006)
New Revision: 14920

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=14920

Log:

allow a notify backend to separately specify if it has handled the
given mask for the current directory and sub-directories. This allows
us to setup the less efficient internal handling for subdirectories,
while using the kernel inotify service for the current directory if
available. It also allows inotify to handle only some of the filter
bits, leaving the other filter bits for the user space handler.

Modified:
   branches/SAMBA_4_0/source/ntvfs/common/notify.c
   branches/SAMBA_4_0/source/ntvfs/posix/pvfs_notify.c
   branches/SAMBA_4_0/source/ntvfs/sysdep/inotify.c
   branches/SAMBA_4_0/source/ntvfs/sysdep/sys_notify.c
   branches/SAMBA_4_0/source/ntvfs/sysdep/sys_notify.h


Changeset:
Modified: branches/SAMBA_4_0/source/ntvfs/common/notify.c
===
--- branches/SAMBA_4_0/source/ntvfs/common/notify.c 2006-04-05 05:05:49 UTC 
(rev 14919)
+++ branches/SAMBA_4_0/source/ntvfs/common/notify.c 2006-04-05 05:54:10 UTC 
(rev 14920)
@@ -290,10 +290,11 @@
   add a notify watch. This is called when a notify is first setup on a open
   directory handle.
 */
-NTSTATUS notify_add(struct notify_context *notify, struct notify_entry *e,
+NTSTATUS notify_add(struct notify_context *notify, struct notify_entry *e0,
void (*callback)(void *, const struct notify_event *), 
void *private)
 {
+   struct notify_entry e = *e0;
NTSTATUS status;
struct notify_list *listel;
char *path = NULL;
@@ -304,8 +305,7 @@
 
status = notify_load(notify);
if (!NT_STATUS_IS_OK(status)) {
-   notify_unlock(notify);
-   return status;
+   goto done;
}
 
notify-array-entries = talloc_realloc(notify-array, 
notify-array-entries, 
@@ -313,18 +313,25 @@
notify-array-num_entries+1);
 
if (notify-array-entries == NULL) {
-   notify_unlock(notify);
-   return NT_STATUS_NO_MEMORY;
+   status = NT_STATUS_NO_MEMORY;
+   goto done;
}
 
/* cope with /. on the end of the path */
-   len = strlen(e-path);
-   if (len  1  e-path[len-1] == '.'  e-path[len-2] == '/') {
-   path = talloc_strndup(notify, e-path, len-2);
+   len = strlen(e.path);
+   if (len  1  e.path[len-1] == '.'  e.path[len-2] == '/') {
+   e.path = talloc_strndup(notify, e.path, len-2);
+   if (e.path == NULL) {
+   status = NT_STATUS_NO_MEMORY;
+   goto done;
+   }
}
 
listel = talloc_zero(notify, struct notify_list);
-   NT_STATUS_HAVE_NO_MEMORY(listel);
+   if (listel == NULL) {
+   status = NT_STATUS_NO_MEMORY;
+   goto done;
+   }
 
listel-private = private;
listel-callback = callback;
@@ -332,22 +339,31 @@
 
/* ignore failures from sys_notify */
if (notify-sys_notify_ctx != NULL) {
-   status = sys_notify_watch(notify-sys_notify_ctx, e-path, 
e-filter, 
+   /*
+ this call will modify e.filter and e.subdir_filter
+ to remove bits handled by the backend
+   */
+   status = sys_notify_watch(notify-sys_notify_ctx, e,
  sys_notify_callback, listel, 
  listel-sys_notify_handle);
if (NT_STATUS_IS_OK(status)) {
-   /* if the kernel handler has said it can handle this 
notify then
-  we don't need to add it to the array */
talloc_steal(listel, listel-sys_notify_handle);
-   goto done;
}
}
 
-   status = notify_add_array(notify, e, path, private);
+   /* if the system notify handler couldn't handle some of the
+  filter bits, or couldn't handle a request for recursion
+  then we need to install it in the array used for the
+  intra-samba notify handling */
+   if (e.filter != 0 || e.subdir_filter != 0) {
+   status = notify_add_array(notify, e, path, private);
+   }
 
 done:
notify_unlock(notify);
-   talloc_free(path);
+   if (e.path != e0-path) {
+   talloc_free(e.path);
+   }
 
return status;
 }
@@ -483,8 +499,9 @@
 const char *path, uint32_t filter)
 {
size_t len;
+   BOOL subdir;
 
-   if (!(filter  e-filter)) {
+   if (!(filter  e-filter)  !(filter  e-subdir_filter)) {
return False;
}
 
@@ -498,13 +515,15 @@
return False;
}
 
-   if (!e-recursive) {
-