Merge branch 'master' of ssh://git.samba.org/data/git/samba
authorJelmer Vernooij <jelmer@samba.org>
Tue, 16 Dec 2008 14:36:53 +0000 (15:36 +0100)
committerJelmer Vernooij <jelmer@samba.org>
Tue, 16 Dec 2008 14:36:53 +0000 (15:36 +0100)
22 files changed:
.gitignore
librpc/idl/security.idl
source3/Makefile.in
source3/librpc/gen_ndr/dom_sid.h [deleted file]
source3/librpc/gen_ndr/ndr_dom_sid.h [deleted file]
source3/librpc/gen_ndr/ndr_security.c
source3/librpc/gen_ndr/ndr_security.h
source3/librpc/gen_ndr/security.h
source3/librpc/idl/dom_sid.idl [deleted file]
source3/librpc/idl/notify.idl [new file with mode: 0644]
source4/cluster/cluster.c
source4/cluster/ctdb/ctdb_cluster.c
source4/cluster/local.c
source4/lib/messaging/irpc.h
source4/librpc/config.mk
source4/librpc/idl/notify.idl [moved from librpc/idl/notify.idl with 98% similarity]
source4/librpc/idl/opendb.idl
source4/librpc/idl/server_id.idl [moved from source4/librpc/idl/dom_sid.idl with 89% similarity]
source4/ntvfs/ntvfs.h
source4/rpc_server/dcerpc_server.h
source4/smbd/service_stream.h
source4/smbd/service_task.h

index 07058be52bf834f88be82db59a9745721f12e74f..4985738891f6d6ba9989239a5234f720dc0f8728 100644 (file)
@@ -313,3 +313,4 @@ source3/librpc/gen_ndr/cli_drsblobs.c
 source3/librpc/gen_ndr/cli_drsblobs.h
 source3/librpc/gen_ndr/srv_drsblobs.c
 source3/librpc/gen_ndr/srv_drsblobs.h
+source3/setup
index 4c6aa235d76b3f6e9467e4fb827f5d97ec453f18..223a92faad82c56c09d33f98b7e096f2d2921344 100644 (file)
@@ -5,7 +5,6 @@
 */
 
 import "misc.idl";
-import "dom_sid.idl";
 
 /*
    use the same structure for dom_sid2 as dom_sid. A dom_sid2 is really
@@ -27,7 +26,6 @@ cpp_quote("#define dom_sid28 dom_sid")
 cpp_quote("#define dom_sid0 dom_sid")
 
 [
-       helper("librpc/gen_ndr/ndr_dom_sid.h"),
        pyhelper("librpc/ndr/py_security.c"),
        pointer_default(unique)
 ]
index e30da1b7a042b19835abf2b6b159d903c4a9bca9..4b5c99e3b1f86fd82ee99326c10b403702d712f6 100644 (file)
@@ -1237,7 +1237,7 @@ samba3-idl::
                ../librpc/idl/security.idl ../librpc/idl/dssetup.idl ../librpc/idl/krb5pac.idl \
                ../librpc/idl/ntsvcs.idl librpc/idl/libnetapi.idl ../librpc/idl/drsuapi.idl \
                ../librpc/idl/drsblobs.idl ../librpc/idl/nbt.idl \
-               ../librpc/idl/named_pipe_auth.idl librpc/idl/dom_sid.idl
+               ../librpc/idl/named_pipe_auth.idl 
        @$(MAKE) ndr-tables
 
 NDR_TABLES = librpc/gen_ndr/tables.c
diff --git a/source3/librpc/gen_ndr/dom_sid.h b/source3/librpc/gen_ndr/dom_sid.h
deleted file mode 100644 (file)
index 57dd168..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-/* header auto-generated by pidl */
-
-#include <stdint.h>
-
-#define dom_sid2 dom_sid
-#define dom_sid28 dom_sid
-#define dom_sid0 dom_sid
-#ifndef _HEADER_dom_sid
-#define _HEADER_dom_sid
-
-struct _dummy_domsid {
-       uint8_t dummy;
-};
-
-#endif /* _HEADER_dom_sid */
diff --git a/source3/librpc/gen_ndr/ndr_dom_sid.h b/source3/librpc/gen_ndr/ndr_dom_sid.h
deleted file mode 100644 (file)
index 145ec1d..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/* header auto-generated by pidl */
-
-#include "librpc/ndr/libndr.h"
-#include "librpc/gen_ndr/dom_sid.h"
-
-#ifndef _HEADER_NDR_dom_sid
-#define _HEADER_NDR_dom_sid
-
-#define NDR_DOM_SID_CALL_COUNT (0)
-#endif /* _HEADER_NDR_dom_sid */
index 8339a40d40f031d87cd9318f500a41286a2f3500..b4d221ac90ff0c871dd2b7e22580bfe46174de1a 100644 (file)
@@ -4,7 +4,6 @@
 #include "librpc/gen_ndr/ndr_security.h"
 
 #include "librpc/gen_ndr/ndr_misc.h"
-#include "librpc/gen_ndr/ndr_dom_sid.h"
 _PUBLIC_ enum ndr_err_code ndr_push_security_ace_flags(struct ndr_push *ndr, int ndr_flags, uint8_t r)
 {
        NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r));
index f8cbf4afa81c4384956e2d4a6ae23cbf4e8c488f..41c66aa65bfb1a754925295839db7172ef7ab81a 100644 (file)
@@ -6,7 +6,6 @@
 #ifndef _HEADER_NDR_security
 #define _HEADER_NDR_security
 
-#include "librpc/gen_ndr/ndr_dom_sid.h"
 #define NDR_SECURITY_CALL_COUNT (0)
 enum ndr_err_code ndr_push_dom_sid(struct ndr_push *ndr, int ndr_flags, const struct dom_sid *r);
 enum ndr_err_code ndr_pull_dom_sid(struct ndr_pull *ndr, int ndr_flags, struct dom_sid *r);
index 99e1f4b1c90cd5de70c275076581489fc6fcb8c3..2b422608eafc958e9973ac048a0896deca9029ef 100644 (file)
@@ -3,7 +3,6 @@
 #include <stdint.h>
 
 #include "librpc/gen_ndr/misc.h"
-#include "librpc/gen_ndr/dom_sid.h"
 #define dom_sid2 dom_sid
 #define dom_sid28 dom_sid
 #define dom_sid0 dom_sid
diff --git a/source3/librpc/idl/dom_sid.idl b/source3/librpc/idl/dom_sid.idl
deleted file mode 100644 (file)
index c405c18..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
-   use the same structure for dom_sid2 as dom_sid. A dom_sid2 is really
-   just a dom sid, but with the sub_auths represented as a conformant
-   array. As with all in-structure conformant arrays, the array length
-   is placed before the start of the structure. That's what gives rise
-   to the extra num_auths elemenent. We don't want the Samba code to
-   have to bother with such esoteric NDR details, so its easier to just
-   define it as a dom_sid and use pidl magic to make it all work. It
-   just means you need to mark a sid as a "dom_sid2" in the IDL when you
-   know it is of the conformant array variety
-*/
-cpp_quote("#define dom_sid2 dom_sid")
-
-/* same struct as dom_sid but inside a 28 bytes fixed buffer in NDR */
-cpp_quote("#define dom_sid28 dom_sid")
-
-/* same struct as dom_sid but in a variable byte buffer, which is maybe empty in NDR */
-cpp_quote("#define dom_sid0 dom_sid")
-
-[
-       pointer_default(unique)
-]
-interface dom_sid
-{
-       struct _dummy_domsid {
-               uint8 dummy;
-       };
-}
-
diff --git a/source3/librpc/idl/notify.idl b/source3/librpc/idl/notify.idl
new file mode 100644 (file)
index 0000000..c4e633c
--- /dev/null
@@ -0,0 +1,56 @@
+#include "idl_types.h"
+
+/*
+   IDL structures for notify change code
+
+   this defines the structures used in the notify database code, and
+   the change notify buffers
+*/
+
+[
+  pointer_default(unique)
+]
+interface notify
+{
+
+       /* structure used in the notify database */
+       typedef [public] struct {
+               server_id server;
+               uint32 filter; /* filter to apply in this directory */
+               uint32 subdir_filter; /* filter to apply in child directories */
+               utf8string path;
+               uint32 path_len; /* saves some computation on search */
+               pointer private_data;
+       } notify_entry;
+
+       /*
+         to allow for efficient search for matching entries, we
+         divide them by the directory depth, with a separate array
+         per depth. The entries within each depth are sorted by path,
+         allowing for a bisection search.
+
+         The max_mask and max_mask_subdir at each depth is the
+         bitwise or of the filters and subdir filters for all entries
+         at that depth. This allows a depth to be quickly skipped if
+         no entries will match the target filter         
+       */
+       typedef struct {
+               uint32 max_mask;
+               uint32 max_mask_subdir;
+               uint32 num_entries;
+               notify_entry entries[num_entries];
+       } notify_depth;
+
+       typedef [public] struct {
+               uint32 num_depths;
+               notify_depth depth[num_depths];
+       } notify_array;
+
+       /* structure sent between servers in notify messages */
+       typedef [public] struct {
+               uint32 action;
+               utf8string path;
+               pointer private_data;
+       } notify_event;
+
+}
index c09d10900b99f532e30a9b5cf6610c375a818fdd..b3fc9c2caf19f3cb3ea1c24c5d3e4d952c157db5 100644 (file)
@@ -23,7 +23,7 @@
 #include "cluster/cluster.h"
 #include "cluster/cluster_private.h"
 #include "librpc/gen_ndr/misc.h"
-#include "librpc/gen_ndr/security.h"
+#include "librpc/gen_ndr/server_id.h"
 
 static struct cluster_ops *ops;
 
index d0ceef4ad1bc8a3f8ed33f0f8ad8e89dc46933bb..1c9631998698d3c54c4c2fcdc366d0cd2b97d127 100644 (file)
@@ -29,7 +29,7 @@
 #include "tdb_wrap.h"
 #include "../lib/util/dlinklist.h"
 #include "param/param.h"
-#include "librpc/gen_ndr/security.h"
+#include "librpc/gen_ndr/server_id.h"
 #include "cluster/ctdb/ctdb_cluster.h"
 
 /* a linked list of messaging handlers, allowing incoming messages
index 5b872a3e2ec47bb0f415fb8927062f4a0ddfd409..f36a06c9b679de2f1c7f49a51173dcc11d96d49d 100644 (file)
@@ -26,7 +26,7 @@
 #include "tdb_wrap.h"
 #include "system/filesys.h"
 #include "param/param.h"
-#include "librpc/gen_ndr/security.h"
+#include "librpc/gen_ndr/server_id.h"
 
 /*
   server a server_id for the local node
index 65e98dce2c29d8fb396e00589fa00b1eaf745f36..3527f10648796a6c5dff2fbe0f1f89464f212bf4 100644 (file)
@@ -23,6 +23,7 @@
 #define IRPC_H
 
 #include "librpc/gen_ndr/irpc.h"
+#include "librpc/gen_ndr/server_id.h"
 
 /*
   an incoming irpc message
index 65c473779fb1d4ff23cd7df0fa2df222bc5a9e66..902312542a34c68968e9ee4aea6019db93fceed4 100644 (file)
@@ -54,7 +54,7 @@ PUBLIC_DEPENDENCIES = LIBNDR LIBSECURITY
 
 NDR_SECURITY_OBJ_FILES = $(gen_ndrsrcdir)/ndr_security.o \
                         ../librpc/ndr/ndr_sec_helper.o \
-                        $(gen_ndrsrcdir)/ndr_dom_sid.o
+                        $(gen_ndrsrcdir)/ndr_server_id.o
 
 PUBLIC_HEADERS += $(addprefix $(gen_ndrsrcdir)/, security.h)
 
similarity index 98%
rename from librpc/idl/notify.idl
rename to source4/librpc/idl/notify.idl
index 3ce2f40ed87a9dd5000d23ed8969b474943650f7..a19f7376785e6d7d7f39d6429dab31f4a2363675 100644 (file)
@@ -7,7 +7,7 @@
    the change notify buffers
 */
 
-import "security.idl";
+import "server_id.idl";
 
 [
   pointer_default(unique)
index 265cfaf7ad16548c3b19d06af8500803cc2a396e..b76992960afd13a47e6a80c48016d35dea698031 100644 (file)
@@ -7,7 +7,7 @@
    ntvfs/common/opendb.c
 */
 
-import "security.idl";
+import "server_id.idl";
 
 [
   pointer_default(unique)
similarity index 89%
rename from source4/librpc/idl/dom_sid.idl
rename to source4/librpc/idl/server_id.idl
index 172dda4faedfe4509f89a56a8a91389fcac56962..486143546b66e70544aa2459831043b81e8ae840 100644 (file)
@@ -1,7 +1,7 @@
 [
        pointer_default(unique)
 ]
-interface dom_sid
+interface server_id
 {
        /* id used to identify a endpoint, possibly in a cluster */
        typedef [public] struct {
index fc04d976f428ab62072a00e49450590add3bbc61..8433a431b0ea3046ef678fec1223ec848474a775 100644 (file)
@@ -24,6 +24,7 @@
 #include "libcli/raw/interfaces.h"
 #include "param/share.h"
 #include "librpc/gen_ndr/security.h"
+#include "librpc/gen_ndr/server_id.h"
 
 /* modules can use the following to determine if the interface has changed */
 /* version 1 -> 0 - make module stacking easier -- metze */
index bcd3d61f134c7d1a1fb09af7f45a13f8700ef1ac..28f4308433efded2108210bd4522d199433c9f6b 100644 (file)
@@ -23,7 +23,7 @@
 #ifndef SAMBA_DCERPC_SERVER_H
 #define SAMBA_DCERPC_SERVER_H
 
-#include "librpc/gen_ndr/security.h"
+#include "librpc/gen_ndr/server_id.h"
 #include "librpc/rpc/dcerpc.h"
 #include "librpc/ndr/libndr.h"
 
index 7ec2a0538b9c6852929fc4036c8df75efddcc5e1..805c140a8375455e482b1d331c1c2cf786e973db 100644 (file)
@@ -23,7 +23,7 @@
 #ifndef __SERVICE_STREAM_H__
 #define __SERVICE_STREAM_H__
 
-#include "librpc/gen_ndr/security.h"
+#include "librpc/gen_ndr/server_id.h"
 
 /* modules can use the following to determine if the interface has changed
  * please increment the version number after each interface change
index ddd56bc9c96ff6a4a332d1a47caa2c45af4c51d9..c49962f05f8bfa20288fe76d55b664385d17ddbe 100644 (file)
@@ -22,7 +22,7 @@
 #ifndef __SERVICE_TASK_H__
 #define __SERVICE_TASK_H__ 
 
-#include "librpc/gen_ndr/security.h"
+#include "librpc/gen_ndr/server_id.h"
 
 struct task_server {
        struct event_context *event_ctx;