svn commit: samba r6400 - in trunk/source: include rpc_client rpc_parse rpc_server utils

jerry at samba.org jerry at samba.org
Wed Apr 20 04:25:37 GMT 2005


Author: jerry
Date: 2005-04-20 04:25:37 +0000 (Wed, 20 Apr 2005)
New Revision: 6400

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

Log:
more RegEnumKey() cleanup
Modified:
   trunk/source/include/rpc_misc.h
   trunk/source/include/rpc_reg.h
   trunk/source/rpc_client/cli_reg.c
   trunk/source/rpc_parse/parse_misc.c
   trunk/source/rpc_parse/parse_reg.c
   trunk/source/rpc_server/srv_reg_nt.c
   trunk/source/utils/net_rpc_registry.c


Changeset:
Modified: trunk/source/include/rpc_misc.h
===================================================================
--- trunk/source/include/rpc_misc.h	2005-04-20 03:43:48 UTC (rev 6399)
+++ trunk/source/include/rpc_misc.h	2005-04-20 04:25:37 UTC (rev 6400)
@@ -221,7 +221,6 @@
 typedef struct {		/* UNISTR3 - XXXX not sure about this structure */
 	uint32 uni_str_len;
 	UNISTR str;
-
 } UNISTR3;
 
 typedef struct {		/* Buffer wrapped around a UNISTR2 */

Modified: trunk/source/include/rpc_reg.h
===================================================================
--- trunk/source/include/rpc_reg.h	2005-04-20 03:43:48 UTC (rev 6399)
+++ trunk/source/include/rpc_reg.h	2005-04-20 04:25:37 UTC (rev 6400)
@@ -389,15 +389,8 @@
 } REG_Q_ENUM_KEY;
 
 typedef struct { 
-	uint16 key_name_len;    /* number of bytes in key name */
-	uint16 unknown_1;       /* 0x0414 - matches with query unknown_1 */
-
-	uint32 ptr1;            /* pointer */
-	uint32 unknown_2;       /* 0x0000 020A */
-	uint32 unknown_3;       /* 0x0000 0000 */
-	UNISTR3 key_name;
-
-	UNISTR4 *class_name;
+	UNISTR4 keyname;
+	UNISTR4 *classname;
 	NTTIME *time;            
 	WERROR status;         /* return status */
 } REG_R_ENUM_KEY;

Modified: trunk/source/rpc_client/cli_reg.c
===================================================================
--- trunk/source/rpc_client/cli_reg.c	2005-04-20 03:43:48 UTC (rev 6399)
+++ trunk/source/rpc_client/cli_reg.c	2005-04-20 04:25:37 UTC (rev 6400)
@@ -484,7 +484,7 @@
 ****************************************************************************/
 WERROR cli_reg_enum_key(struct cli_state *cli, TALLOC_CTX *mem_ctx,
                           POLICY_HND *hnd, int key_index, fstring key_name,
-                          uint32 *unk_1, uint32 *unk_2, time_t *mod_time)
+                          fstring class_name, time_t *mod_time)
 {
 	REG_Q_ENUM_KEY in;
 	REG_R_ENUM_KEY out;
@@ -505,9 +505,16 @@
 	if ( !W_ERROR_IS_OK(out.status) )
 		return out.status;
 
-	unistr3_to_ascii( key_name, &out.key_name, sizeof(fstring)-1 );
-	*unk_1      = out.unknown_1;
-	*unk_2      = out.unknown_2;
+	if ( out.keyname.string )
+		rpcstr_pull( key_name, out.keyname.string->buffer, sizeof(fstring), -1, STR_TERMINATE );
+	else
+		fstrcpy( key_name, "(Default)" );
+
+	if ( out.classname && out.classname->string )
+		rpcstr_pull( class_name, out.classname->string->buffer, sizeof(fstring), -1, STR_TERMINATE );
+	else
+		fstrcpy( class_name, "" );
+
 	*mod_time   = nt_time_to_unix(out.time);
 
 	return out.status;

Modified: trunk/source/rpc_parse/parse_misc.c
===================================================================
--- trunk/source/rpc_parse/parse_misc.c	2005-04-20 03:43:48 UTC (rev 6399)
+++ trunk/source/rpc_parse/parse_misc.c	2005-04-20 04:25:37 UTC (rev 6400)
@@ -1756,16 +1756,6 @@
 }
 
 /*******************************************************************
- Reads or writes a UNISTR3 structure.
-********************************************************************/
-
-BOOL prs_io_unistr3(const char *desc, prs_struct *ps, int depth, UNISTR3 *name)
-{
-	return smb_io_unistr3( desc, name, ps, depth );
-}
-
-
-/*******************************************************************
  Stream a uint64_struct
  ********************************************************************/
 BOOL prs_uint64(const char *name, prs_struct *ps, int depth, UINT64_S *data64)

Modified: trunk/source/rpc_parse/parse_reg.c
===================================================================
--- trunk/source/rpc_parse/parse_reg.c	2005-04-20 03:43:48 UTC (rev 6399)
+++ trunk/source/rpc_parse/parse_reg.c	2005-04-20 04:25:37 UTC (rev 6400)
@@ -1303,22 +1303,13 @@
 makes a reply structure.
 ********************************************************************/
 
-void init_reg_r_enum_key(REG_R_ENUM_KEY *r_u, char *subkey, uint32 unknown_1,
-			uint32 unknown_2)
+void init_reg_r_enum_key(REG_R_ENUM_KEY *r_u, char *subkey )
 {
 	if ( !r_u )
 		return;
 		
-	r_u->unknown_1 = unknown_1;
-	r_u->unknown_2 = unknown_2;
-	r_u->unknown_3 = 0x0;
-	
-	r_u->key_name_len = (strlen(subkey)+1) * 2;
-	if (r_u->key_name_len)
-		r_u->ptr1 = 0x1;
-	init_unistr3( &r_u->key_name, subkey );
-	
-	r_u->class_name = TALLOC_ZERO_P( get_talloc_ctx(), UNISTR4 );
+	init_unistr4( &r_u->keyname, subkey, STR_TERMINATE );
+	r_u->classname = TALLOC_ZERO_P( get_talloc_ctx(), UNISTR4 );
 	r_u->time       = TALLOC_ZERO_P( get_talloc_ctx(), NTTIME );
 }
 
@@ -1390,27 +1381,12 @@
 
 	if(!prs_align(ps))
 		return False;
-	
-	if(!prs_uint16("key_name_len", ps, depth, &q_u->key_name_len))
+	if ( !prs_unistr4( "keyname", ps, depth, &q_u->keyname ) )
 		return False;
-	if(!prs_uint16("unknown_1", ps, depth, &q_u->unknown_1))
-		return False;
-
-	if(!prs_uint32("ptr1", ps, depth, &q_u->ptr1))
-		return False;
-
-	if (q_u->ptr1 != 0) {
-		if(!prs_uint32("unknown_2", ps, depth, &q_u->unknown_2))
-			return False;
-		if(!prs_uint32("unknown_3", ps, depth, &q_u->unknown_3))
-			return False;
-		if(!smb_io_unistr3("key_name", &q_u->key_name, ps, depth))
-			return False;
-	}
-
+	
 	if(!prs_align(ps))
 		return False;
-	if (!prs_pointer("class", ps, depth, (void**)&q_u->class_name, sizeof(UNISTR4), (PRS_POINTER_CAST)prs_unistr4))
+	if (!prs_pointer("class", ps, depth, (void**)&q_u->classname, sizeof(UNISTR4), (PRS_POINTER_CAST)prs_unistr4))
 		return False;
 
 	if(!prs_align(ps))

Modified: trunk/source/rpc_server/srv_reg_nt.c
===================================================================
--- trunk/source/rpc_server/srv_reg_nt.c	2005-04-20 03:43:48 UTC (rev 6399)
+++ trunk/source/rpc_server/srv_reg_nt.c	2005-04-20 04:25:37 UTC (rev 6400)
@@ -534,7 +534,7 @@
 	
 	/* subkey has the string name now */
 	
-	init_reg_r_enum_key( r_u, subkey, q_u->unknown_1, q_u->unknown_2 );
+	init_reg_r_enum_key( r_u, subkey );
 	
 	DEBUG(5,("_reg_enum_key: Exit\n"));
 	

Modified: trunk/source/utils/net_rpc_registry.c
===================================================================
--- trunk/source/utils/net_rpc_registry.c	2005-04-20 03:43:48 UTC (rev 6399)
+++ trunk/source/utils/net_rpc_registry.c	2005-04-20 04:25:37 UTC (rev 6400)
@@ -85,23 +85,22 @@
 	result = WERR_OK;
 	idx = 0;
 	while ( W_ERROR_IS_OK(result) ) {
-		uint32 unknown1, unknown2;
 		time_t modtime;
-		fstring keyname;
+		fstring keyname, classname;
 		
 		result = cli_reg_enum_key( cli, mem_ctx, &pol_key, idx, 
-			keyname, &unknown1, &unknown2, &modtime );
+			keyname, classname, &modtime );
 			
 		if ( W_ERROR_EQUAL(result, WERR_NO_MORE_ITEMS) ) {
 			result = WERR_OK;
 			break;
 		}
 			
-		d_printf("Keyname  = %s\n", keyname );
-		d_printf("Unknown1 = 0x%x\n", unknown1 );
-		d_printf("Unknown2 = 0x%x\n", unknown2 );
-		d_printf("Modtime  = %s\n", http_timestring(modtime) );
+		d_printf("Keyname   = %s\n", keyname );
+		d_printf("Classname = %s\n", classname );
+		d_printf("Modtime   = %s\n", http_timestring(modtime) );
 		d_printf("\n" );
+
 		idx++;
 	}
 
@@ -133,6 +132,7 @@
 		d_printf("Data       =\n" );
 		dump_regval_buffer( type, &value );
 		d_printf("\n" );
+
 		idx++;
 	}
 	



More information about the samba-cvs mailing list