1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-26 10:04:02 +03:00

r5800: fix recursiv printing in ndr_print_DsGetNCChangesInfo1()

metze
(This used to be commit 1084ad4bfce6bc20537f5bfccb5a25b60f503b32)
This commit is contained in:
Stefan Metzmacher 2005-03-15 16:05:43 +00:00 committed by Gerald (Jerry) Carter
parent cead12981f
commit 55546176c6
4 changed files with 61 additions and 6 deletions

View File

@ -29,6 +29,8 @@ struct spoolss_EnumJobs;
struct spoolss_EnumPrinterDrivers;
struct spoolss_EnumPorts;
struct drsuapi_DsGetNCChangesInfo1;
struct MULTI_QI;
struct COSERVERINFO;

View File

@ -93,7 +93,10 @@ REQUIRED_SUBSYSTEMS = LIBNDR
INIT_FUNCTION = dcerpc_drsuapi_init
INIT_OBJ_FILES = librpc/gen_ndr/ndr_drsuapi.o
NOPROTO = YES
REQUIRED_SUBSYSTEMS = LIBNDR
REQUIRED_SUBSYSTEMS = LIBNDR NDR_DRSUAPI_PRINT
[SUBSYSTEM::NDR_DRSUAPI_PRINT]
INIT_OBJ_FILES = librpc/ndr/ndr_drsuapi.o
[SUBSYSTEM::NDR_DRSBLOBS]
INIT_FUNCTION = dcerpc_drsblobs_init

View File

@ -256,7 +256,7 @@ interface drsuapi
hyper usn;
} drsuapi_DsReplicaMetaData;
typedef struct {
typedef [public] struct {
[range(0,1048576)] uint32 count;
[size_is(count)] drsuapi_DsReplicaMetaData meta_data[];
} drsuapi_DsReplicaMetaDataCtr;
@ -288,15 +288,14 @@ interface drsuapi
[size_is(num_attributes)] drsuapi_DsReplicaAttribute *attributes[];
} drsuapi_DsReplicaAttributeCtr;
typedef struct {
typedef [public] struct {
drsuapi_DsReplicaObjectIdentifier *identifier;
uint32 unknown1;
drsuapi_DsReplicaAttributeCtr attribute_ctr;
} drsuapi_DsReplicaObject;
typedef struct {
/* TODO: fix ndr_print for next_info! */
[print_option(linked_list_next)] drsuapi_DsGetNCChangesInfo1 *next;
typedef [noprint] struct {
drsuapi_DsGetNCChangesInfo1 *next;
drsuapi_DsReplicaObject object;
uint32 unknown1;
GUID *guid;

View File

@ -0,0 +1,51 @@
/*
Unix SMB/CIFS implementation.
routines for printing some linked list structs in DRSUAPI
Copyright (C) Stefan (metze) Metzmacher 2005
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 2 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, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "includes.h"
#include "librpc/gen_ndr/ndr_drsuapi.h"
void ndr_print_drsuapi_DsGetNCChangesInfo1(struct ndr_print *ndr, const char *name, struct drsuapi_DsGetNCChangesInfo1 *r)
{
ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesInfo1");
ndr->depth++;
ndr_print_ptr(ndr, "next", r->next);
ndr_print_drsuapi_DsReplicaObject(ndr, "object", &r->object);
ndr_print_uint32(ndr, "unknown1", r->unknown1);
ndr_print_ptr(ndr, "guid", r->guid);
ndr->depth++;
if (r->guid) {
ndr_print_GUID(ndr, "guid", r->guid);
}
ndr->depth--;
ndr_print_ptr(ndr, "meta_data_ctr", r->meta_data_ctr);
ndr->depth++;
if (r->meta_data_ctr) {
ndr_print_drsuapi_DsReplicaMetaDataCtr(ndr, "meta_data_ctr", r->meta_data_ctr);
}
ndr->depth--;
ndr->depth--;
if (r->next) {
ndr_print_drsuapi_DsGetNCChangesInfo1(ndr, "next", r->next);
}
}