s3: add server_id.idl and use only autogenerated code.
authorGünther Deschner <gd@samba.org>
Tue, 15 Feb 2011 23:39:55 +0000 (00:39 +0100)
committerGünther Deschner <gd@samba.org>
Thu, 17 Feb 2011 15:02:19 +0000 (16:02 +0100)
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

source3/Makefile.in
source3/include/messages.h
source3/librpc/idl/messaging.idl
source3/librpc/idl/notify.idl
source3/librpc/idl/server_id.idl [new file with mode: 0644]
source3/librpc/idl/wscript_build
source3/librpc/ndr/ndr_server_id.c [deleted file]
source3/librpc/ndr/ndr_server_id.h [deleted file]
source3/librpc/wscript_build

index 8140f0aa218293e0c3d2a05f98400240a1895138..8e338fd82f2fd521110c35f229f9641dc81178f2 100644 (file)
@@ -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" \
index d4f7d2081b888a4d68b1b0c641b840f86d8a5b68..226c7c61b13598ac1177de9b86d3677718c3b1e0 100644 (file)
 
 #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"
index 0ac7220995b5304410c8e4baaab37633fe65fff4..36f064f23de4eda6d46135168c53534d4a50f19e 100644 (file)
@@ -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
index d65e8c5f86cd909fb8893372d8a28ea2754c0b90..0776ed107ccbe0012ef8448517598c3a577ebacd 100644 (file)
@@ -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 (file)
index 0000000..ed72788
--- /dev/null
@@ -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;
+}
index a337f4f39ad8c473d5ae0fc1b633dc9f388b8bdd..e24475b5431a4878333afa44ecaeab5f0150f7b0 100644 (file)
@@ -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 (file)
index a6152d7..0000000
+++ /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 (file)
index 5975abc..0000000
+++ /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);
index a07d4bcee88829a7ea789fead37ce817ba5edf07..4cd98a74b9df7c8a80893691ab1bb452063960ed 100644 (file)
@@ -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'
        )