summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2011-02-16 00:39:55 +0100
committerGünther Deschner <gd@samba.org>2011-02-17 16:02:19 +0100
commit6840549123c9152a9fbe614a2f9d0de758318660 (patch)
treea51f4ec0e5a6ca826ab3295846759aa64cca6f24
parentaa3f749575ac551b1b0886838ef023aab14d123f (diff)
downloadsamba-6840549123c9152a9fbe614a2f9d0de758318660.tar.gz
samba-6840549123c9152a9fbe614a2f9d0de758318660.tar.bz2
samba-6840549123c9152a9fbe614a2f9d0de758318660.zip
s3: add server_id.idl and use only autogenerated code.
Volker, Tridge and other clustering gurus, please check. It is ok to get rid of ifdef CLUSTER_SUPPORT here, right ? Why was unique_id not marshalled at all ? Guenther
-rw-r--r--source3/Makefile.in5
-rw-r--r--source3/include/messages.h9
-rw-r--r--source3/librpc/idl/messaging.idl3
-rw-r--r--source3/librpc/idl/notify.idl3
-rw-r--r--source3/librpc/idl/server_id.idl25
-rw-r--r--source3/librpc/idl/wscript_build2
-rw-r--r--source3/librpc/ndr/ndr_server_id.c66
-rw-r--r--source3/librpc/ndr/ndr_server_id.h6
-rw-r--r--source3/librpc/wscript_build2
9 files changed, 34 insertions, 87 deletions
diff --git a/source3/Makefile.in b/source3/Makefile.in
index 8140f0aa21..8e338fd82f 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -318,7 +318,7 @@ LIBNDR_OBJ = ../librpc/ndr/ndr_basic.o \
../librpc/ndr/ndr_string.o \
../librpc/ndr/uuid.o \
librpc/ndr/util.o \
- librpc/ndr/ndr_server_id.o \
+ librpc/gen_ndr/ndr_server_id.o \
librpc/gen_ndr/ndr_dcerpc.o
LIBNDR_GEN_OBJ0 = librpc/gen_ndr/ndr_samr.o \
@@ -1578,7 +1578,8 @@ IDL_FILES = librpc/idl/messaging.idl \
librpc/idl/wbint.idl \
librpc/idl/perfcount.idl \
librpc/idl/secrets.idl \
- librpc/idl/libnet_join.idl
+ librpc/idl/libnet_join.idl \
+ librpc/idl/server_id.idl
samba3-idl::
@PIDL_OUTPUTDIR="librpc/gen_ndr" PIDL_ARGS="$(PIDL_ARGS)" CPP="$(CPP)" PIDL="../pidl/pidl" \
diff --git a/source3/include/messages.h b/source3/include/messages.h
index d4f7d2081b..226c7c61b1 100644
--- a/source3/include/messages.h
+++ b/source3/include/messages.h
@@ -66,14 +66,7 @@
#define MSG_SRVID_SAMBA 0x0000000100000000LL
-
-struct server_id {
- pid_t pid;
-#ifdef CLUSTER_SUPPORT
- uint32 vnn;
-#endif
- uint64_t unique_id;
-};
+#include "librpc/gen_ndr/server_id.h"
#ifdef CLUSTER_SUPPORT
#define MSG_BROADCAST_PID_STR "0:0"
diff --git a/source3/librpc/idl/messaging.idl b/source3/librpc/idl/messaging.idl
index 0ac7220995..36f064f23d 100644
--- a/source3/librpc/idl/messaging.idl
+++ b/source3/librpc/idl/messaging.idl
@@ -1,11 +1,12 @@
#include "idl_types.h"
+import "server_id.idl";
+
/*
IDL structures for messaging code
*/
[
- helper("../librpc/ndr/ndr_server_id.h"),
pointer_default(unique)
]
interface messaging
diff --git a/source3/librpc/idl/notify.idl b/source3/librpc/idl/notify.idl
index d65e8c5f86..0776ed107c 100644
--- a/source3/librpc/idl/notify.idl
+++ b/source3/librpc/idl/notify.idl
@@ -1,6 +1,6 @@
#include "idl_types.h"
-import "file_id.idl";
+import "file_id.idl", "server_id.idl";
/*
IDL structures for notify change code
@@ -10,7 +10,6 @@ import "file_id.idl";
*/
[
- helper("../librpc/ndr/ndr_server_id.h"),
pointer_default(unique)
]
interface notify
diff --git a/source3/librpc/idl/server_id.idl b/source3/librpc/idl/server_id.idl
new file mode 100644
index 0000000000..ed727881c7
--- /dev/null
+++ b/source3/librpc/idl/server_id.idl
@@ -0,0 +1,25 @@
+[
+ pointer_default(unique)
+]
+interface server_id
+{
+
+ /* used to look like the following, note that unique_id was not
+ * marshalled at all...
+
+ struct server_id {
+ pid_t pid;
+ #ifdef CLUSTER_SUPPORT
+ uint32 vnn;
+ #endif
+ uint64_t unique_id;
+ };
+
+ */
+
+ typedef [public] struct {
+ uint32 pid;
+ uint32 vnn;
+ udlong unique_id;
+ } server_id;
+}
diff --git a/source3/librpc/idl/wscript_build b/source3/librpc/idl/wscript_build
index a337f4f39a..e24475b543 100644
--- a/source3/librpc/idl/wscript_build
+++ b/source3/librpc/idl/wscript_build
@@ -2,7 +2,7 @@
bld.SAMBA_PIDL_LIST('PIDL',
'''messaging.idl libnetapi.idl notify.idl
- perfcount.idl secrets.idl libnet_join.idl''',
+ perfcount.idl secrets.idl libnet_join.idl server_id.idl''',
options='--includedir=../librpc/idl --header --ndr-parser',
output_dir='../gen_ndr')
diff --git a/source3/librpc/ndr/ndr_server_id.c b/source3/librpc/ndr/ndr_server_id.c
deleted file mode 100644
index a6152d755e..0000000000
--- a/source3/librpc/ndr/ndr_server_id.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- Unix SMB/CIFS implementation.
-
- libndr interface
-
- Copyright (C) Andrew Tridgell 2003
-
- 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 "librpc/ndr/ndr_server_id.h"
-
-enum ndr_err_code ndr_push_server_id(struct ndr_push *ndr, int ndr_flags, const struct server_id *r)
-{
- if (ndr_flags & NDR_SCALARS) {
- NDR_CHECK(ndr_push_align(ndr, 4));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS,
- (uint32_t)r->pid));
-#ifdef CLUSTER_SUPPORT
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS,
- (uint32_t)r->vnn));
-#endif
- }
- if (ndr_flags & NDR_BUFFERS) {
- }
- return NDR_ERR_SUCCESS;
-}
-
-enum ndr_err_code ndr_pull_server_id(struct ndr_pull *ndr, int ndr_flags, struct server_id *r)
-{
- if (ndr_flags & NDR_SCALARS) {
- uint32_t pid;
- NDR_CHECK(ndr_pull_align(ndr, 4));
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &pid));
-#ifdef CLUSTER_SUPPORT
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->vnn));
-#endif
- r->pid = (pid_t)pid;
- }
- if (ndr_flags & NDR_BUFFERS) {
- }
- return NDR_ERR_SUCCESS;
-}
-
-void ndr_print_server_id(struct ndr_print *ndr, const char *name, const struct server_id *r)
-{
- ndr_print_struct(ndr, name, "server_id");
- ndr->depth++;
- ndr_print_uint32(ndr, "id", (uint32_t)r->pid);
-#ifdef CLUSTER_SUPPORT
- ndr_print_uint32(ndr, "vnn", (uint32_t)r->vnn);
-#endif
- ndr->depth--;
-}
diff --git a/source3/librpc/ndr/ndr_server_id.h b/source3/librpc/ndr/ndr_server_id.h
deleted file mode 100644
index 5975abc1f5..0000000000
--- a/source3/librpc/ndr/ndr_server_id.h
+++ /dev/null
@@ -1,6 +0,0 @@
-
-/* The following definitions come from librpc/ndr/ndr_server_id.c */
-
-enum ndr_err_code ndr_push_server_id(struct ndr_push *ndr, int ndr_flags, const struct server_id *r);
-enum ndr_err_code ndr_pull_server_id(struct ndr_pull *ndr, int ndr_flags, struct server_id *r);
-void ndr_print_server_id(struct ndr_print *ndr, const char *name, const struct server_id *r);
diff --git a/source3/librpc/wscript_build b/source3/librpc/wscript_build
index a07d4bcee8..4cd98a74b9 100644
--- a/source3/librpc/wscript_build
+++ b/source3/librpc/wscript_build
@@ -11,7 +11,7 @@ bld.SAMBA_SUBSYSTEM('NDR_LIBNET_JOIN',
)
bld.SAMBA_SUBSYSTEM('NDR_SERVER_ID',
- source='ndr/ndr_server_id.c',
+ source='gen_ndr/ndr_server_id.c',
public_deps='ndr'
)