svn commit: samba r13030 - in trunk/source: . param smbd

jpeach at samba.org jpeach at samba.org
Thu Jan 19 00:38:43 GMT 2006


Author: jpeach
Date: 2006-01-19 00:38:40 +0000 (Thu, 19 Jan 2006)
New Revision: 13030

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=13030

Log:
svn merge -r 13026:13027 ../branches/SAMBA_3_0

Added:
   trunk/source/smbd/notify_fam.c
Modified:
   trunk/source/Makefile.in
   trunk/source/configure.in
   trunk/source/param/loadparm.c
   trunk/source/smbd/notify.c


Changeset:
Modified: trunk/source/Makefile.in
===================================================================
--- trunk/source/Makefile.in	2006-01-19 00:34:52 UTC (rev 13029)
+++ trunk/source/Makefile.in	2006-01-19 00:38:40 UTC (rev 13030)
@@ -349,7 +349,7 @@
 
 OPLOCK_OBJ = smbd/oplock.o smbd/oplock_irix.o smbd/oplock_linux.o
 
-NOTIFY_OBJ = smbd/notify.o smbd/notify_hash.o smbd/notify_kernel.o
+NOTIFY_OBJ = smbd/notify.o smbd/notify_hash.o smbd/notify_kernel.o smbd/notify_fam.o
 
 VFS_AUDIT_OBJ = modules/vfs_audit.o
 VFS_EXTD_AUDIT_OBJ = modules/vfs_extd_audit.o
@@ -897,7 +897,7 @@
 	@echo Linking $@
 	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(SMBD_OBJ) $(LDFLAGS) $(LDAP_LIBS) \
 		$(KRB5LIBS) $(DYNEXP) $(PRINT_LIBS) $(AUTH_LIBS) \
-		$(ACL_LIBS) $(PASSDB_LIBS) $(LIBS) @POPTLIBS@
+		$(ACL_LIBS) $(PASSDB_LIBS) $(LIBS) @POPTLIBS@ @SMBD_LIBS@
 
 bin/nmbd at EXEEXT@: $(NMBD_OBJ) @BUILD_POPT@ bin/.dummy
 	@echo Linking $@
@@ -1032,7 +1032,7 @@
 
 bin/vfstest at EXEEXT@: $(VFSTEST_OBJ) @BUILD_POPT@ bin/.dummy
 	@echo Linking $@
-	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(VFSTEST_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(TERMLIBS) $(DYNEXP) $(PRINT_LIBS) $(AUTH_LIBS) $(ACL_LIBS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS)
+	@$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(VFSTEST_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(TERMLIBS) $(DYNEXP) $(PRINT_LIBS) $(AUTH_LIBS) $(ACL_LIBS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS) @SMBD_LIBS@
 
 bin/smbiconv at EXEEXT@: $(SMBICONV_OBJ) @BUILD_POPT@ bin/.dummy
 	@echo Linking $@

Modified: trunk/source/configure.in
===================================================================
--- trunk/source/configure.in	2006-01-19 00:34:52 UTC (rev 13029)
+++ trunk/source/configure.in	2006-01-19 00:38:40 UTC (rev 13030)
@@ -2174,6 +2174,33 @@
     AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY,1,[Whether kernel notifies changes])
 fi
 
+#################################################
+# Check if FAM notifications are available. For FAM info, see
+#	http://oss.sgi.com/projects/fam/
+#	http://savannah.nongnu.org/projects/fam/
+
+AC_CHECK_HEADERS(fam.h, [samba_cv_HAVE_FAM_H=yes], [samba_cv_HAVE_FAM_H=no])
+if test x"$samba_cv_HAVE_FAM_H" = x"yes"; then
+    # On IRIX, libfam requires libC, but other FAM implementations might not
+    # need it.
+    AC_CHECK_LIB(fam, FAMOpen2,
+	    [samba_cv_HAVE_LIBFAM=yes; samba_fam_libs="-lfam"],
+	    [samba_cv_HAVE_LIBFAM=no])
+
+    if test x"$samba_cv_HAVE_LIBFAM" = x"no" ; then
+	samba_fam_xtra=-lC
+	AC_CHECK_LIB_EXT(fam, samba_fam_xtra, FAMOpen2,
+		[samba_cv_HAVE_LIBFAM=yes; samba_fam_libs="-lfam -lC"],
+		[samba_cv_HAVE_LIBFAM=no])
+	unset samba_fam_xtra
+    fi
+fi
+
+if test x"$samba_cv_HAVE_LIBFAM" = x"yes" ; then
+    AC_DEFINE(HAVE_FAM_CHANGE_NOTIFY, 1,
+	    [Whether FAM is file notifications are available])
+fi
+
 AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[
 AC_TRY_RUN([
 #include <sys/types.h>
@@ -2194,8 +2221,6 @@
 fi
 
 
-
-
 AC_CACHE_CHECK([for IRIX kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS_IRIX,[
 AC_TRY_COMPILE([#include <sys/types.h>
 #include <fcntl.h>],
@@ -5260,6 +5285,10 @@
 builddir=`pwd`
 AC_SUBST(builddir)
 
+# Stuff the FAM libraries at the end of the smbd link path (if we have them).
+SMBD_LIBS="$samba_fam_libs"
+AC_SUBST(SMBD_LIBS)
+
 dnl Remove -L/usr/lib/? from LDFLAGS and LIBS
 LIB_REMOVE_USR_LIB(LDFLAGS)
 LIB_REMOVE_USR_LIB(LIBS)

Modified: trunk/source/param/loadparm.c
===================================================================
--- trunk/source/param/loadparm.c	2006-01-19 00:34:52 UTC (rev 13029)
+++ trunk/source/param/loadparm.c	2006-01-19 00:38:40 UTC (rev 13030)
@@ -302,6 +302,7 @@
 	BOOL bUnixExtensions;
 	BOOL bDisableNetbios;
 	BOOL bKernelChangeNotify;
+	BOOL bFamChangeNotify;
 	BOOL bUseKerberosKeytab;
 	BOOL bDeferSharingViolations;
 	BOOL bEnablePrivileges;
@@ -1003,6 +1004,7 @@
 	{"getwd cache", P_BOOL, P_GLOBAL, &use_getwd_cache, NULL, NULL, FLAG_ADVANCED}, 
 	{"keepalive", P_INTEGER, P_GLOBAL, &keepalive, NULL, NULL, FLAG_ADVANCED}, 
 	{"kernel change notify", P_BOOL, P_GLOBAL, &Globals.bKernelChangeNotify, NULL, NULL, FLAG_ADVANCED}, 
+	{"fam change notify", P_BOOL, P_GLOBAL, &Globals.bFamChangeNotify, NULL, NULL, FLAG_ADVANCED},
 
 	{"lpq cache time", P_INTEGER, P_GLOBAL, &Globals.lpqcachetime, NULL, NULL, FLAG_ADVANCED}, 
 	{"max smbd processes", P_INTEGER, P_GLOBAL, &Globals.iMaxSmbdProcesses, NULL, NULL, FLAG_ADVANCED}, 
@@ -1503,6 +1505,7 @@
 	Globals.machine_password_timeout = 60 * 60 * 24 * 7;	/* 7 days default. */
 	Globals.change_notify_timeout = 60;	/* 1 minute default. */
 	Globals.bKernelChangeNotify = True;	/* On if we have it. */
+	Globals.bFamChangeNotify = True;	/* On if we have it. */
 	Globals.lm_announce = 2;	/* = Auto: send only if LM clients found */
 	Globals.lm_interval = 60;
 	Globals.announce_as = ANNOUNCE_AS_NT_SERVER;
@@ -1909,6 +1912,7 @@
 FN_GLOBAL_BOOL(lp_client_use_spnego, &Globals.bClientUseSpnego)
 FN_GLOBAL_BOOL(lp_hostname_lookups, &Globals.bHostnameLookups)
 FN_GLOBAL_BOOL(lp_kernel_change_notify, &Globals.bKernelChangeNotify)
+FN_GLOBAL_BOOL(lp_fam_change_notify, &Globals.bFamChangeNotify)
 FN_GLOBAL_BOOL(lp_use_kerberos_keytab, &Globals.bUseKerberosKeytab)
 FN_GLOBAL_BOOL(lp_defer_sharing_violations, &Globals.bDeferSharingViolations)
 FN_GLOBAL_BOOL(lp_enable_privileges, &Globals.bEnablePrivileges)

Modified: trunk/source/smbd/notify.c
===================================================================
--- trunk/source/smbd/notify.c	2006-01-19 00:34:52 UTC (rev 13029)
+++ trunk/source/smbd/notify.c	2006-01-19 00:38:40 UTC (rev 13030)
@@ -212,10 +212,16 @@
 
 BOOL init_change_notify(void)
 {
+	cnotify = NULL;
+
 #if HAVE_KERNEL_CHANGE_NOTIFY
-	if (lp_kernel_change_notify())
+	if (cnotify == NULL && lp_kernel_change_notify())
 		cnotify = kernel_notify_init();
 #endif
+#if HAVE_FAM_CHANGE_NOTIFY
+	if (cnotify == NULL && lp_fam_change_notify())
+		cnotify = fam_notify_init();
+#endif
 	if (!cnotify) cnotify = hash_notify_init();
 	
 	if (!cnotify) {

Copied: trunk/source/smbd/notify_fam.c (from rev 13027, branches/SAMBA_3_0/source/smbd/notify_fam.c)



More information about the samba-cvs mailing list