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