mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
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
This commit is contained in:
parent
aa3f749575
commit
6840549123
@ -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" \
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
25
source3/librpc/idl/server_id.idl
Normal file
25
source3/librpc/idl/server_id.idl
Normal file
@ -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;
|
||||
}
|
@ -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')
|
||||
|
||||
|
@ -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--;
|
||||
}
|
@ -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);
|
@ -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'
|
||||
)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user