svn commit: samba r5800 - in branches/SAMBA_4_0/source: include librpc librpc/idl librpc/ndr

metze at samba.org metze at samba.org
Tue Mar 15 16:05:44 GMT 2005


Author: metze
Date: 2005-03-15 16:05:43 +0000 (Tue, 15 Mar 2005)
New Revision: 5800

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=5800

Log:
fix recursiv printing in ndr_print_DsGetNCChangesInfo1()

metze

Added:
   branches/SAMBA_4_0/source/librpc/ndr/ndr_drsuapi.c
Modified:
   branches/SAMBA_4_0/source/include/structs.h
   branches/SAMBA_4_0/source/librpc/config.mk
   branches/SAMBA_4_0/source/librpc/idl/drsuapi.idl


Changeset:
Modified: branches/SAMBA_4_0/source/include/structs.h
===================================================================
--- branches/SAMBA_4_0/source/include/structs.h	2005-03-15 14:42:09 UTC (rev 5799)
+++ branches/SAMBA_4_0/source/include/structs.h	2005-03-15 16:05:43 UTC (rev 5800)
@@ -29,6 +29,8 @@
 struct spoolss_EnumPrinterDrivers;
 struct spoolss_EnumPorts;
 
+struct drsuapi_DsGetNCChangesInfo1;
+
 struct MULTI_QI;
 struct COSERVERINFO;
 

Modified: branches/SAMBA_4_0/source/librpc/config.mk
===================================================================
--- branches/SAMBA_4_0/source/librpc/config.mk	2005-03-15 14:42:09 UTC (rev 5799)
+++ branches/SAMBA_4_0/source/librpc/config.mk	2005-03-15 16:05:43 UTC (rev 5800)
@@ -93,8 +93,11 @@
 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
 INIT_OBJ_FILES = librpc/gen_ndr/ndr_drsblobs.o

Modified: branches/SAMBA_4_0/source/librpc/idl/drsuapi.idl
===================================================================
--- branches/SAMBA_4_0/source/librpc/idl/drsuapi.idl	2005-03-15 14:42:09 UTC (rev 5799)
+++ branches/SAMBA_4_0/source/librpc/idl/drsuapi.idl	2005-03-15 16:05:43 UTC (rev 5800)
@@ -256,7 +256,7 @@
 		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 @@
 		[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;

Added: branches/SAMBA_4_0/source/librpc/ndr/ndr_drsuapi.c
===================================================================
--- branches/SAMBA_4_0/source/librpc/ndr/ndr_drsuapi.c	2005-03-15 14:42:09 UTC (rev 5799)
+++ branches/SAMBA_4_0/source/librpc/ndr/ndr_drsuapi.c	2005-03-15 16:05:43 UTC (rev 5800)
@@ -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);
+	}
+}



More information about the samba-cvs mailing list