The branch, master has been updated
       via  93c91bd Remove ctdb_conn.[ch]
       via  4e8e76d notifyd: Add notifydd
       via  b4d6aee utils: add net notify
       via  14b426c notify: Remove two now unused stubs
       via  70283ff smbd: Remove SMB_VFS_NOTIFY_WATCH
       via  c118c30 notify: Re-add notify_walk()
       via  0deb657 notifyd: Add notifyd_parse_db()
       via  730b025 smbd: Remove the notify_fam module
       via  ce26c64 smbd: Kernel change notify is done by notifyd
       via  b434eb5 smbd: Replace the tdb-based notify_internal with notify_msg
       via  96a256b smbd: Don't start the notify cleanup anymore
       via  72a8fcf smbd: Start the notify daemon
       via  802b282 smbd: Add the notify daemon
       via  45a2c2e smbd: Add direct notify_fam support
       via  a24f037 param: Make "kernel change notify" global
       via  e5895c3 param: Make "change notify" global
       via  e749174 lib: Add server_id_db_set_exclusive
       via  bf65865 lib: Add server_id_db_pid()
       via  b593cc7 lib: Add server_id_db_prune_name
       via  07c9f69 lib: Add tevent_req_poll_unix
      from  117e87d librpc:ndr:witness: remove an unneeded block, reducing 
indentation.

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 93c91bddd89be74d7721d36d67112d86b71d0bf1
Author: Volker Lendecke <[email protected]>
Date:   Sun May 3 16:30:45 2015 +0000

    Remove ctdb_conn.[ch]
    
    This was only used in notify_internal.c
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>
    
    Autobuild-User(master): Jeremy Allison <[email protected]>
    Autobuild-Date(master): Wed Jul  8 02:53:33 CEST 2015 on sn-devel-104

commit 4e8e76dd597aae36193e440e49cdf225707d66be
Author: Volker Lendecke <[email protected]>
Date:   Tue Jun 16 14:57:14 2015 +0000

    notifyd: Add notifydd
    
    A little standalone notify daemon to play around with.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

commit b4d6aee15ef5643c1516347cb19402e7dd0b7b95
Author: Volker Lendecke <[email protected]>
Date:   Mon Jun 15 12:14:03 2015 +0000

    utils: add net notify
    
    A little tool to play with the notify daemon
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

commit 14b426ce07ec28713b297b27cfed8d5c61073f07
Author: Volker Lendecke <[email protected]>
Date:   Fri Jan 9 12:59:46 2015 +0000

    notify: Remove two now unused stubs
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

commit 70283ffd38bdaccbf05f66953aec6cfd83611aa5
Author: Volker Lendecke <[email protected]>
Date:   Fri Dec 12 15:37:30 2014 +0100

    smbd: Remove SMB_VFS_NOTIFY_WATCH
    
    No longer needed
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

commit c118c301c9d9b5eb9244e473ac8f251d40d11526
Author: Volker Lendecke <[email protected]>
Date:   Fri Jan 9 12:48:56 2015 +0000

    notify: Re-add notify_walk()
    
    This used to be a tdb traverse wrapper. Now we get the notify db from
    notifyd via messages.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

commit 0deb657ba689c8b0e259b385bce30d4ff56f2810
Author: Volker Lendecke <[email protected]>
Date:   Fri Jan 9 12:24:58 2015 +0000

    notifyd: Add notifyd_parse_db()
    
    The database format notifyd is "private" to it. This makes it
    possible for smbcontrol and others to query notifyd's database with
    MSG_SMB_NOTIFY_GET_DB and inspect it without having to know exactly what
    format it uses.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

commit 730b025d7bf8c951d55db60018c6ef85eae387a3
Author: Volker Lendecke <[email protected]>
Date:   Fri Nov 21 17:28:02 2014 +0100

    smbd: Remove the notify_fam module
    
    This has been moved to main smbd
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

commit ce26c642724fb95d610c19d7f03e8c1e065219a2
Author: Volker Lendecke <[email protected]>
Date:   Fri Nov 21 17:23:18 2014 +0100

    smbd: Kernel change notify is done by notifyd
    
    smbd itself does not need to call VFS_NOTIFY_WATCH anymore
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

commit b434eb5077948fb8db2f1cc90556edce34d26af0
Author: Volker Lendecke <[email protected]>
Date:   Fri Nov 21 17:05:16 2014 +0100

    smbd: Replace the tdb-based notify_internal with notify_msg
    
    For the moment, this removes smbstatus -N output. It will come back with
    the next commits.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

commit 96a256baf273d8fe5327809b4ff37618c621e2b9
Author: Volker Lendecke <[email protected]>
Date:   Fri Nov 21 16:58:47 2014 +0100

    smbd: Don't start the notify cleanup anymore
    
    We don't have a database to clean up anymore
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

commit 72a8fcf0ca0141be225bab7828539b9615f6018a
Author: Volker Lendecke <[email protected]>
Date:   Fri Nov 21 16:55:25 2014 +0100

    smbd: Start the notify daemon
    
    For this we need the kernel change notify stuff to be global: There's only 
one
    notifyd and we have to pass over the kernel change notify watch function
    
    Signed-off-by: Volker Lendecke <[email protected]>

commit 802b282a8f24610dd4ba0b7d3032d400fa5b70ec
Author: Volker Lendecke <[email protected]>
Date:   Fri Nov 21 16:52:47 2014 +0100

    smbd: Add the notify daemon
    
    This adds the notify daemon listening on MSG_SMB_NOTIFY_REC_CHANGE
    and MSG_SMB_NOTIFY_TRIGGER messages. It relies on ctdbd to distribute
    the notify database and events in a cluster.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

commit 45a2c2ee3f89f66cab0b440f5dc442cc59ebcd79
Author: Volker Lendecke <[email protected]>
Date:   Thu Nov 20 15:30:51 2014 +0000

    smbd: Add direct notify_fam support
    
    notifyd won't have the VFS around, it is a systemwide daemon without
    a connection to specific shares. To continue FAM support, notifyd
    needs to be able to link it directly. This adds code to make fam
    equivalent to inotify.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

commit a24f0379aca67bf8126878b8a671964d7d936c1c
Author: Volker Lendecke <[email protected]>
Date:   Fri Nov 21 16:02:27 2014 +0100

    param: Make "kernel change notify" global
    
    With a central notifyd, we can't do this per share anymore. Notifyd will
    only look at absolute paths, not shares.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

commit e5895c3c37885c3538666bf6cde75881156419cf
Author: Volker Lendecke <[email protected]>
Date:   Fri Nov 21 15:53:53 2014 +0100

    param: Make "change notify" global
    
    With a central notifyd, we can't do this per share anymore. Notifyd will
    only look at absolute paths, not shares.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

commit e749174dd8207bd9ffcb950d701e89661f3801e3
Author: Volker Lendecke <[email protected]>
Date:   Tue Jun 9 05:03:25 2015 +0000

    lib: Add server_id_db_set_exclusive
    
    This is used for server names where only one instance can exist.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

commit bf658656e7297077f6b347a748e4f5a26efbe2ca
Author: Volker Lendecke <[email protected]>
Date:   Mon Jun 8 20:46:54 2015 +0000

    lib: Add server_id_db_pid()
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

commit b593cc78aeaaa5d79ddfccc46bdbac6296a63890
Author: Volker Lendecke <[email protected]>
Date:   Sun Apr 26 11:02:27 2015 +0200

    lib: Add server_id_db_prune_name
    
    With this you can remove a foreign mapping. Required to clean up dead
    processes.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

commit 07c9f697692c784af1f5ab254c1638c60dec407f
Author: Volker Lendecke <[email protected]>
Date:   Wed Jul 9 12:50:24 2014 +0000

    lib: Add tevent_req_poll_unix
    
    This makes sync wrappers a bit shorter
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

-----------------------------------------------------------------------

Summary of changes:
 docs-xml/Samba3-HOWTO/manpages.xml                 |    1 -
 docs-xml/manpages/vfs_notify_fam.8.xml             |   70 -
 docs-xml/smbdotconf/misc/changenotify.xml          |    3 +-
 docs-xml/smbdotconf/misc/kernelchangenotify.xml    |    3 +-
 docs-xml/wscript_build                             |    1 -
 examples/VFS/skel_opaque.c                         |   14 -
 examples/VFS/skel_transparent.c                    |   16 -
 lib/param/param_table.c                            |    8 +-
 lib/util/server_id_db.c                            |   36 +-
 lib/util/server_id_db.h                            |    3 +
 lib/util/tevent_unix.c                             |   10 +
 lib/util/tevent_unix.h                             |    2 +
 librpc/idl/messaging.idl                           |   13 +
 source3/include/vfs.h                              |   20 +-
 source3/include/vfs_macros.h                       |    5 -
 source3/lib/ctdb_conn.c                            |  547 -------
 source3/lib/ctdb_conn.h                            |   65 -
 source3/lib/ctdb_dummy.c                           |   76 -
 source3/lib/server_id_db_util.c                    |  104 ++
 .../lib/server_id_db_util.h                        |   12 +-
 source3/modules/vfs_ceph.c                         |   18 -
 source3/modules/vfs_default.c                      |   46 -
 source3/modules/vfs_full_audit.c                   |   24 -
 source3/modules/vfs_glusterfs.c                    |   13 -
 source3/modules/vfs_time_audit.c                   |   29 -
 source3/modules/wscript_build                      |    7 -
 source3/param/loadparm.c                           |    5 +-
 source3/smbd/notify.c                              |   22 -
 .../vfs_notify_fam.c => smbd/notify_fam.c}         |   61 +-
 source3/smbd/notify_internal.c                     | 1278 -----------------
 source3/smbd/notify_msg.c                          |  312 ++++
 source3/smbd/notifyd/notifyd.c                     | 1490 ++++++++++++++++++++
 source3/smbd/notifyd/notifyd.h                     |  156 ++
 source3/smbd/notifyd/notifydd.c                    |   83 ++
 source3/smbd/notifyd/tests.c                       |  118 ++
 source3/smbd/notifyd/wscript_build                 |   19 +
 source3/smbd/proto.h                               |   32 +-
 source3/smbd/server.c                              |  189 ++-
 source3/smbd/service.c                             |    2 +-
 source3/smbd/vfs.c                                 |   16 -
 source3/torture/proto.h                            |    1 -
 source3/torture/test_ctdbconn.c                    |  239 ----
 source3/torture/torture.c                          |    1 -
 source3/utils/net.c                                |    8 +
 source3/utils/net_notify.c                         |  198 +++
 source3/utils/net_proto.h                          |    1 +
 source3/utils/status.c                             |   44 +-
 source3/wscript_build                              |   17 +-
 48 files changed, 2725 insertions(+), 2713 deletions(-)
 delete mode 100644 docs-xml/manpages/vfs_notify_fam.8.xml
 delete mode 100644 source3/lib/ctdb_conn.c
 delete mode 100644 source3/lib/ctdb_conn.h
 create mode 100644 source3/lib/server_id_db_util.c
 copy lib/util/close_low_fd.h => source3/lib/server_id_db_util.h (81%)
 rename source3/{modules/vfs_notify_fam.c => smbd/notify_fam.c} (86%)
 delete mode 100644 source3/smbd/notify_internal.c
 create mode 100644 source3/smbd/notify_msg.c
 create mode 100644 source3/smbd/notifyd/notifyd.c
 create mode 100644 source3/smbd/notifyd/notifyd.h
 create mode 100644 source3/smbd/notifyd/notifydd.c
 create mode 100644 source3/smbd/notifyd/tests.c
 create mode 100644 source3/smbd/notifyd/wscript_build
 delete mode 100644 source3/torture/test_ctdbconn.c
 create mode 100644 source3/utils/net_notify.c


Changeset truncated at 500 lines:

diff --git a/docs-xml/Samba3-HOWTO/manpages.xml 
b/docs-xml/Samba3-HOWTO/manpages.xml
index 577ac8b..ad23f49 100644
--- a/docs-xml/Samba3-HOWTO/manpages.xml
+++ b/docs-xml/Samba3-HOWTO/manpages.xml
@@ -58,7 +58,6 @@
        <xi:include href="../manpages/vfs_full_audit.8.xml"/>
        <xi:include href="../manpages/vfs_gpfs.8.xml"/>
        <xi:include href="../manpages/vfs_netatalk.8.xml"/>
-       <xi:include href="../manpages/vfs_notify_fam.8.xml"/>
        <xi:include href="../manpages/vfs_prealloc.8.xml"/>
        <xi:include href="../manpages/vfs_readahead.8.xml"/>
        <xi:include href="../manpages/vfs_readonly.8.xml"/>
diff --git a/docs-xml/manpages/vfs_notify_fam.8.xml 
b/docs-xml/manpages/vfs_notify_fam.8.xml
deleted file mode 100644
index 954aa37..0000000
--- a/docs-xml/manpages/vfs_notify_fam.8.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE refentry PUBLIC "-//Samba-Team//DTD DocBook V4.2-Based Variant 
V1.0//EN" "http://www.samba.org/samba/DTD/samba-doc";>
-<refentry id="vfs_notify_fam.8">
-
-<refmeta>
-       <refentrytitle>vfs_notify_fam</refentrytitle>
-       <manvolnum>8</manvolnum>
-       <refmiscinfo class="source">Samba</refmiscinfo>
-       <refmiscinfo class="manual">System Administration tools</refmiscinfo>
-       <refmiscinfo class="version">4.2</refmiscinfo>
-</refmeta>
-
-
-<refnamediv>
-       <refname>vfs_notify_fam</refname>
-       <refpurpose>FAM support for file change notifications</refpurpose>
-</refnamediv>
-
-<refsynopsisdiv>
-       <cmdsynopsis>
-               <command>vfs objects = notify_fam</command>
-       </cmdsynopsis>
-</refsynopsisdiv>
-
-<refsect1>
-       <title>DESCRIPTION</title>
-
-       <para>This VFS module is part of the
-       <citerefentry><refentrytitle>samba</refentrytitle>
-       <manvolnum>7</manvolnum></citerefentry> suite.</para>
-
-       <para>The <command>vfs_notify_fam</command> module makes use of
-       the system FAM (File Alteration Monitor) daemon to implement
-       file change notifications for Windows clients. FAM is generally
-       present only on IRIX and some BSD systems.</para>
-
-       <para>This module is not stackable.</para>
-
-</refsect1>
-
-<refsect1>
-       <title>EXAMPLES</title>
-
-       <para>Support FAM notifications globally:</para>
-
-<programlisting>
-        <smbconfsection name="[global]"/>
-       <smbconfoption name="vfs objects">notify_fam</smbconfoption>
-</programlisting>
-
-</refsect1>
-
-<refsect1>
-       <title>VERSION</title>
-
-       <para>This man page is correct for version 3.0.25 of the Samba suite.
-       </para>
-</refsect1>
-
-<refsect1>
-       <title>AUTHOR</title>
-
-       <para>The original Samba software and related utilities
-       were created by Andrew Tridgell. Samba is now developed
-       by the Samba Team as an Open Source project similar
-       to the way the Linux kernel is developed.</para>
-
-</refsect1>
-
-</refentry>
diff --git a/docs-xml/smbdotconf/misc/changenotify.xml 
b/docs-xml/smbdotconf/misc/changenotify.xml
index 1344dce..70793d6 100644
--- a/docs-xml/smbdotconf/misc/changenotify.xml
+++ b/docs-xml/smbdotconf/misc/changenotify.xml
@@ -1,7 +1,6 @@
 <samba:parameter name="change notify"
-                 context="S"
+                 context="G"
                                 type="boolean"
-                 parm="1"
                  xmlns:samba="http://www.samba.org/samba/DTD/samba-doc";>
 <description>
        <para>This parameter specifies whether Samba should reply
diff --git a/docs-xml/smbdotconf/misc/kernelchangenotify.xml 
b/docs-xml/smbdotconf/misc/kernelchangenotify.xml
index 1e11bb8..6a41dcb 100644
--- a/docs-xml/smbdotconf/misc/kernelchangenotify.xml
+++ b/docs-xml/smbdotconf/misc/kernelchangenotify.xml
@@ -1,7 +1,6 @@
 <samba:parameter name="kernel change notify"
-                 context="S"
+                 context="G"
                                 type="boolean"
-                 parm="1"
                  xmlns:samba="http://www.samba.org/samba/DTD/samba-doc";>
 <description>
        <para>This parameter specifies whether Samba should ask the 
diff --git a/docs-xml/wscript_build b/docs-xml/wscript_build
index f54ae15..5c42a31 100644
--- a/docs-xml/wscript_build
+++ b/docs-xml/wscript_build
@@ -68,7 +68,6 @@ manpages='''
          manpages/vfs_linux_xfs_sgid.8
          manpages/vfs_media_harmony.8
          manpages/vfs_netatalk.8
-         manpages/vfs_notify_fam.8
          manpages/vfs_prealloc.8
          manpages/vfs_preopen.8
          manpages/vfs_readahead.8
diff --git a/examples/VFS/skel_opaque.c b/examples/VFS/skel_opaque.c
index 296a855..7021998 100644
--- a/examples/VFS/skel_opaque.c
+++ b/examples/VFS/skel_opaque.c
@@ -490,19 +490,6 @@ static char *skel_realpath(vfs_handle_struct *handle, 
const char *path)
        return NULL;
 }
 
-static NTSTATUS skel_notify_watch(struct vfs_handle_struct *handle,
-                                 struct sys_notify_context *ctx,
-                                 const char *path,
-                                 uint32_t *filter,
-                                 uint32_t *subdir_filter,
-                                 void (*callback) (struct sys_notify_context *
-                                                   ctx, void *private_data,
-                                                   struct notify_event *ev),
-                                 void *private_data, void *handle_p)
-{
-       return NT_STATUS_NOT_IMPLEMENTED;
-}
-
 static int skel_chflags(vfs_handle_struct *handle, const char *path,
                        uint flags)
 {
@@ -918,7 +905,6 @@ struct vfs_fn_pointers skel_opaque_fns = {
        .link_fn = skel_link,
        .mknod_fn = skel_mknod,
        .realpath_fn = skel_realpath,
-       .notify_watch_fn = skel_notify_watch,
        .chflags_fn = skel_chflags,
        .file_id_create_fn = skel_file_id_create,
        .copy_chunk_send_fn = skel_copy_chunk_send,
diff --git a/examples/VFS/skel_transparent.c b/examples/VFS/skel_transparent.c
index 10f5ac5..6c6adea 100644
--- a/examples/VFS/skel_transparent.c
+++ b/examples/VFS/skel_transparent.c
@@ -579,21 +579,6 @@ static char *skel_realpath(vfs_handle_struct *handle, 
const char *path)
        return SMB_VFS_NEXT_REALPATH(handle, path);
 }
 
-static NTSTATUS skel_notify_watch(struct vfs_handle_struct *handle,
-                                 struct sys_notify_context *ctx,
-                                 const char *path,
-                                 uint32_t *filter,
-                                 uint32_t *subdir_filter,
-                                 void (*callback) (struct sys_notify_context 
*ctx,
-                                                   void *private_data,
-                                                   struct notify_event *ev),
-                                 void *private_data, void *handle_p)
-{
-       return SMB_VFS_NEXT_NOTIFY_WATCH(handle, ctx, path,
-                                        filter, subdir_filter, callback,
-                                        private_data, handle_p);
-}
-
 static int skel_chflags(vfs_handle_struct *handle, const char *path,
                        uint flags)
 {
@@ -1029,7 +1014,6 @@ struct vfs_fn_pointers skel_transparent_fns = {
        .link_fn = skel_link,
        .mknod_fn = skel_mknod,
        .realpath_fn = skel_realpath,
-       .notify_watch_fn = skel_notify_watch,
        .chflags_fn = skel_chflags,
        .file_id_create_fn = skel_file_id_create,
        .copy_chunk_send_fn = skel_copy_chunk_send,
diff --git a/lib/param/param_table.c b/lib/param/param_table.c
index 148f79c..0fdd50d 100644
--- a/lib/param/param_table.c
+++ b/lib/param/param_table.c
@@ -1660,8 +1660,8 @@ struct parm_struct parm_table[] = {
        {
                .label          = "change notify",
                .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(change_notify),
+               .p_class        = P_GLOBAL,
+               .offset         = GLOBAL_VAR(change_notify),
                .special        = NULL,
                .enum_list      = NULL,
        },
@@ -1676,8 +1676,8 @@ struct parm_struct parm_table[] = {
        {
                .label          = "kernel change notify",
                .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(kernel_change_notify),
+               .p_class        = P_GLOBAL,
+               .offset         = GLOBAL_VAR(kernel_change_notify),
                .special        = NULL,
                .enum_list      = NULL,
        },
diff --git a/lib/util/server_id_db.c b/lib/util/server_id_db.c
index 7f5b055..0874129 100644
--- a/lib/util/server_id_db.c
+++ b/lib/util/server_id_db.c
@@ -74,6 +74,11 @@ void server_id_db_reinit(struct server_id_db *db, struct 
server_id pid)
        TALLOC_FREE(db->names);
 }
 
+struct server_id server_id_db_pid(struct server_id_db *db)
+{
+       return db->pid;
+}
+
 static int server_id_db_destructor(struct server_id_db *db)
 {
        char *name = NULL;
@@ -118,22 +123,18 @@ int server_id_db_add(struct server_id_db *db, const char 
*name)
        return 0;
 }
 
-int server_id_db_remove(struct server_id_db *db, const char *name)
+int server_id_db_prune_name(struct server_id_db *db, const char *name,
+                           struct server_id server)
 {
        struct tdb_context *tdb = db->tdb->tdb;
        struct server_id_buf buf;
        TDB_DATA key;
        uint8_t *data;
-       char *ids, *n, *id;
+       char *ids, *id;
        int ret;
 
-       n = strv_find(db->names, name);
-       if (n == NULL) {
-               return ENOENT;
-       }
-
        key = string_term_tdb_data(name);
-       server_id_str_buf(db->pid, &buf);
+       server_id_str_buf(server, &buf);
 
        ret = tdb_chainlock(tdb, key);
        if (ret == -1) {
@@ -162,9 +163,22 @@ int server_id_db_remove(struct server_id_db *db, const 
char *name)
 
        tdb_chainunlock(tdb, key);
 
-       if (ret == -1) {
-               enum TDB_ERROR err = tdb_error(tdb);
-               return map_unix_error_from_tdb(err);
+       return 0;
+}
+
+int server_id_db_remove(struct server_id_db *db, const char *name)
+{
+       char *n;
+       int ret;
+
+       n = strv_find(db->names, name);
+       if (n == NULL) {
+               return ENOENT;
+       }
+
+       ret = server_id_db_prune_name(db, name, db->pid);
+       if (ret != 0) {
+               return ret;
        }
 
        strv_delete(&db->names, n);
diff --git a/lib/util/server_id_db.h b/lib/util/server_id_db.h
index 31b3305..2dcce62 100644
--- a/lib/util/server_id_db.h
+++ b/lib/util/server_id_db.h
@@ -30,8 +30,11 @@ struct server_id_db *server_id_db_init(TALLOC_CTX *mem_ctx,
                                       const char *base_path,
                                       int hash_size, int tdb_flags);
 void server_id_db_reinit(struct server_id_db *db, struct server_id pid);
+struct server_id server_id_db_pid(struct server_id_db *db);
 int server_id_db_add(struct server_id_db *db, const char *name);
 int server_id_db_remove(struct server_id_db *db, const char *name);
+int server_id_db_prune_name(struct server_id_db *db, const char *name,
+                           struct server_id server);
 int server_id_db_lookup(struct server_id_db *db, const char *name,
                        TALLOC_CTX *mem_ctx, unsigned *num_servers,
                        struct server_id **servers);
diff --git a/lib/util/tevent_unix.c b/lib/util/tevent_unix.c
index ee7ec8a..63bdaf6 100644
--- a/lib/util/tevent_unix.c
+++ b/lib/util/tevent_unix.c
@@ -61,3 +61,13 @@ int tevent_req_simple_recv_unix(struct tevent_req *req)
        tevent_req_received(req);
        return err;
 }
+
+bool tevent_req_poll_unix(struct tevent_req *req, struct tevent_context *ev,
+                         int *err)
+{
+       bool ret = tevent_req_poll(req, ev);
+       if (!ret) {
+               *err = errno;
+       }
+       return ret;
+}
diff --git a/lib/util/tevent_unix.h b/lib/util/tevent_unix.h
index c1b0eb4..39689d6 100644
--- a/lib/util/tevent_unix.h
+++ b/lib/util/tevent_unix.h
@@ -28,5 +28,7 @@
 
 bool tevent_req_is_unix_error(struct tevent_req *req, int *perrno);
 int tevent_req_simple_recv_unix(struct tevent_req *req);
+bool tevent_req_poll_unix(struct tevent_req *req, struct tevent_context *ev,
+                         int *err);
 
 #endif
diff --git a/librpc/idl/messaging.idl b/librpc/idl/messaging.idl
index 2b902ec..ca99f41 100644
--- a/librpc/idl/messaging.idl
+++ b/librpc/idl/messaging.idl
@@ -99,6 +99,13 @@ interface messaging
                /* Cancel a notify, directory got deleted */
                MSG_SMB_NOTIFY_CANCEL_DELETED   = 0x0319,
 
+               /* notifyd messages */
+               MSG_SMB_NOTIFY_REC_CHANGE       = 0x031A,
+               MSG_SMB_NOTIFY_TRIGGER          = 0x031B,
+               MSG_SMB_NOTIFY_GET_DB           = 0x031C,
+               MSG_SMB_NOTIFY_DB               = 0x031D,
+               MSG_SMB_NOTIFY_REC_CHANGES      = 0x031E,
+
                /* winbind messages */
                MSG_WINBIND_FINISHED            = 0x0401,
                MSG_WINBIND_FORGET_STATE        = 0x0402,
@@ -152,4 +159,10 @@ interface messaging
                uint8 num_fds;
                dlong fds[num_fds];
        } messaging_rec;
+
+       typedef [public] struct {
+               hyper rec_index;
+               uint32 num_recs;
+               messaging_rec *recs[num_recs];
+       } messaging_reclog;
 }
diff --git a/source3/include/vfs.h b/source3/include/vfs.h
index 081030c..9945375 100644
--- a/source3/include/vfs.h
+++ b/source3/include/vfs.h
@@ -166,6 +166,7 @@
 /* Version 33 - change fallocate mode flags param from enum->uint32_t */
 /* Version 33 - Add snapshot create/delete calls */
 /* Version 33 - Add OS X SMB2 AAPL copyfile extension flag to fsp */
+/* Version 33 - Remove notify_watch_fn */
 
 #define SMB_VFS_INTERFACE_VERSION 33
 
@@ -626,16 +627,6 @@ struct vfs_fn_pointers {
        int (*link_fn)(struct vfs_handle_struct *handle, const char *oldpath, 
const char *newpath);
        int (*mknod_fn)(struct vfs_handle_struct *handle, const char *path, 
mode_t mode, SMB_DEV_T dev);
        char *(*realpath_fn)(struct vfs_handle_struct *handle, const char 
*path);
-       NTSTATUS (*notify_watch_fn)(struct vfs_handle_struct *handle,
-                                   struct sys_notify_context *ctx,
-                                   const char *path,
-                                   uint32_t *filter,
-                                   uint32_t *subdir_filter,
-                                   void (*callback)(struct sys_notify_context 
*ctx,
-                                                    void *private_data,
-                                                    struct notify_event *ev),
-                                   void *private_data, 
-                                   void *handle_p);
        int (*chflags_fn)(struct vfs_handle_struct *handle, const char *path, 
unsigned int flags);
        struct file_id (*file_id_create_fn)(struct vfs_handle_struct *handle,
                                            const SMB_STRUCT_STAT *sbuf);
@@ -1093,15 +1084,6 @@ int smb_vfs_call_link(struct vfs_handle_struct *handle, 
const char *oldpath,
 int smb_vfs_call_mknod(struct vfs_handle_struct *handle, const char *path,
                       mode_t mode, SMB_DEV_T dev);
 char *smb_vfs_call_realpath(struct vfs_handle_struct *handle, const char 
*path);
-NTSTATUS smb_vfs_call_notify_watch(struct vfs_handle_struct *handle,
-                                  struct sys_notify_context *ctx,
-                                  const char *name,
-                                  uint32_t *filter,
-                                  uint32_t *subdir_filter,
-                                  void (*callback)(struct sys_notify_context 
*ctx,
-                                                   void *private_data,
-                                                   struct notify_event *ev),
-                                  void *private_data, void *handle_p);
 int smb_vfs_call_chflags(struct vfs_handle_struct *handle, const char *path,
                         unsigned int flags);
 struct file_id smb_vfs_call_file_id_create(struct vfs_handle_struct *handle,
diff --git a/source3/include/vfs_macros.h b/source3/include/vfs_macros.h
index 9a686c9..eaf0c19 100644
--- a/source3/include/vfs_macros.h
+++ b/source3/include/vfs_macros.h
@@ -336,11 +336,6 @@
 #define SMB_VFS_NEXT_REALPATH(handle, path) \
        smb_vfs_call_realpath((handle)->next, (path))
 
-#define SMB_VFS_NOTIFY_WATCH(conn, ctx, path, filter, subdir_filter, callback, 
private_data, handle_p) \
-       smb_vfs_call_notify_watch((conn)->vfs_handles, (ctx), (path), (filter), 
(subdir_filter), (callback), (private_data), (handle_p))
-#define SMB_VFS_NEXT_NOTIFY_WATCH(conn, ctx, path, filter, subdir_filter, 
callback, private_data, handle_p) \
-       smb_vfs_call_notify_watch((conn)->next, (ctx), (path), (filter), 
(subdir_filter), (callback), (private_data), (handle_p))
-
 #define SMB_VFS_CHFLAGS(conn, path, flags) \
        smb_vfs_call_chflags((conn)->vfs_handles, (path), (flags))
 #define SMB_VFS_NEXT_CHFLAGS(handle, path, flags) \
diff --git a/source3/lib/ctdb_conn.c b/source3/lib/ctdb_conn.c
deleted file mode 100644
index 4e1b3e5..0000000
--- a/source3/lib/ctdb_conn.c
+++ /dev/null
@@ -1,547 +0,0 @@
-/*
-   Unix SMB/CIFS implementation.
-   Samba3 ctdb connection handling
-   Copyright (C) Volker Lendecke 2012
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "includes.h"
-#include "lib/util/tevent_unix.h"
-#include "ctdb_conn.h"
-
-#include <tdb.h>
-
-#include <ctdb_protocol.h>
-
-#include "lib/async_req/async_sock.h"
-
-struct ctdb_conn {
-       int fd;
-       struct tevent_queue *outqueue;
-};
-
-struct ctdb_conn_init_state {
-       struct sockaddr_un addr;
-       struct ctdb_conn *conn;
-};
-
-/*
- * use the callbacks of async_connect_send to make sure
- * we are connecting to CTDB as root
- */
-static void before_connect_cb(void *private_data) {
-       become_root();
-}
-
-static void after_connect_cb(void *private_data) {
-       unbecome_root();
-}
-
-static void ctdb_conn_init_done(struct tevent_req *subreq);
-static int ctdb_conn_destructor(struct ctdb_conn *conn);
-
-struct tevent_req *ctdb_conn_init_send(TALLOC_CTX *mem_ctx,
-                                      struct tevent_context *ev,
-                                      const char *sock)
-{
-       struct tevent_req *req, *subreq;
-       struct ctdb_conn_init_state *state;
-       size_t len;
-
-       req = tevent_req_create(mem_ctx, &state, struct ctdb_conn_init_state);
-       if (req == NULL) {
-               return NULL;
-       }
-
-       if (!lp_clustering()) {
-               tevent_req_error(req, ENOSYS);
-               return tevent_req_post(req, ev);
-       }


-- 
Samba Shared Repository

Reply via email to