diff options
author | Günther Deschner <gd@samba.org> | 2011-02-16 00:39:55 +0100 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2011-02-17 16:02:19 +0100 |
commit | 6840549123c9152a9fbe614a2f9d0de758318660 (patch) | |
tree | a51f4ec0e5a6ca826ab3295846759aa64cca6f24 | |
parent | aa3f749575ac551b1b0886838ef023aab14d123f (diff) | |
download | samba-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.in | 5 | ||||
-rw-r--r-- | source3/include/messages.h | 9 | ||||
-rw-r--r-- | source3/librpc/idl/messaging.idl | 3 | ||||
-rw-r--r-- | source3/librpc/idl/notify.idl | 3 | ||||
-rw-r--r-- | source3/librpc/idl/server_id.idl | 25 | ||||
-rw-r--r-- | source3/librpc/idl/wscript_build | 2 | ||||
-rw-r--r-- | source3/librpc/ndr/ndr_server_id.c | 66 | ||||
-rw-r--r-- | source3/librpc/ndr/ndr_server_id.h | 6 | ||||
-rw-r--r-- | source3/librpc/wscript_build | 2 |
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' ) |