svn commit: samba r6399 - in trunk/source: include rpc_client
rpc_parse
jerry at samba.org
jerry at samba.org
Wed Apr 20 03:43:48 GMT 2005
Author: jerry
Date: 2005-04-20 03:43:48 +0000 (Wed, 20 Apr 2005)
New Revision: 6399
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=6399
Log:
more registry rpc cleanups for RegEnumVal()
Modified:
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
Changeset:
Modified: trunk/source/include/rpc_reg.h
===================================================================
--- trunk/source/include/rpc_reg.h 2005-04-20 02:59:37 UTC (rev 6398)
+++ trunk/source/include/rpc_reg.h 2005-04-20 03:43:48 UTC (rev 6399)
@@ -377,15 +377,15 @@
typedef struct {
POLICY_HND pol;
uint32 key_index;
- uint16 key_name_len; /* 0x0000 */
+ uint16 key_name_len;
uint16 unknown_1; /* 0x0414 */
- uint32 ptr1; /* pointer */
+ uint32 ptr1;
uint32 unknown_2; /* 0x0000 020A */
- uint8 pad1[8]; /* padding - zeros */
- uint32 ptr2; /* pointer */
- uint8 pad2[8]; /* padding - zeros */
- uint32 ptr3; /* pointer */
- NTTIME time; /* current time? */
+ uint8 pad1[8];
+ uint32 ptr2;
+ uint8 pad2[8];
+ uint32 ptr3;
+ NTTIME time;
} REG_Q_ENUM_KEY;
typedef struct {
@@ -395,15 +395,10 @@
uint32 ptr1; /* pointer */
uint32 unknown_2; /* 0x0000 020A */
uint32 unknown_3; /* 0x0000 0000 */
-
UNISTR3 key_name;
- uint32 ptr2; /* pointer */
- uint8 pad2[8]; /* padding - zeros */
-
- uint32 ptr3; /* pointer */
- NTTIME time; /* current time? */
-
+ UNISTR4 *class_name;
+ 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 02:59:37 UTC (rev 6398)
+++ trunk/source/rpc_client/cli_reg.c 2005-04-20 03:43:48 UTC (rev 6399)
@@ -508,7 +508,7 @@
unistr3_to_ascii( key_name, &out.key_name, sizeof(fstring)-1 );
*unk_1 = out.unknown_1;
*unk_2 = out.unknown_2;
- *mod_time = nt_time_to_unix(&out.time);
+ *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 02:59:37 UTC (rev 6398)
+++ trunk/source/rpc_parse/parse_misc.c 2005-04-20 03:43:48 UTC (rev 6399)
@@ -133,6 +133,15 @@
}
/*******************************************************************
+ Reads or writes an NTTIME structure.
+********************************************************************/
+
+BOOL smb_io_nttime(const char *desc, prs_struct *ps, int depth, NTTIME *nttime)
+{
+ return smb_io_time( desc, nttime, ps, depth );
+}
+
+/*******************************************************************
Gets an enumeration handle from an ENUM_HND structure.
********************************************************************/
@@ -1731,6 +1740,11 @@
if(!prs_uint32("uni_str_len", ps, depth, &name->uni_str_len))
return False;
+
+ /* we're done if there is no string */
+
+ if ( name->uni_str_len == 0 )
+ return True;
/* don't know if len is specified by uni_str_len member... */
/* assume unicode string is unicode-null-terminated, instead */
@@ -1741,7 +1755,16 @@
return True;
}
+/*******************************************************************
+ 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
********************************************************************/
Modified: trunk/source/rpc_parse/parse_reg.c
===================================================================
--- trunk/source/rpc_parse/parse_reg.c 2005-04-20 02:59:37 UTC (rev 6398)
+++ trunk/source/rpc_parse/parse_reg.c 2005-04-20 03:43:48 UTC (rev 6399)
@@ -1318,8 +1318,8 @@
r_u->ptr1 = 0x1;
init_unistr3( &r_u->key_name, subkey );
- r_u->ptr2 = 0x1;
- r_u->ptr3 = 0x1;
+ r_u->class_name = TALLOC_ZERO_P( get_talloc_ctx(), UNISTR4 );
+ r_u->time = TALLOC_ZERO_P( get_talloc_ctx(), NTTIME );
}
/*******************************************************************
@@ -1406,26 +1406,20 @@
return False;
if(!smb_io_unistr3("key_name", &q_u->key_name, ps, depth))
return False;
- if(!prs_align(ps))
- return False;
}
- if(!prs_uint32("ptr2", ps, depth, &q_u->ptr2))
+ if(!prs_align(ps))
return False;
+ if (!prs_pointer("class", ps, depth, (void**)&q_u->class_name, sizeof(UNISTR4), (PRS_POINTER_CAST)prs_unistr4))
+ return False;
- if (q_u->ptr2 != 0) {
- if(!prs_uint8s(False, "pad2", ps, depth, q_u->pad2, sizeof(q_u->pad2)))
- return False;
- }
-
- if(!prs_uint32("ptr3", ps, depth, &q_u->ptr3))
+ if(!prs_align(ps))
return False;
+ if (!prs_pointer("time", ps, depth, (void**)&q_u->time, sizeof(NTTIME), (PRS_POINTER_CAST)smb_io_nttime))
+ return False;
- if (q_u->ptr3 != 0) {
- if(!smb_io_time("", &q_u->time, ps, depth))
- return False;
- }
-
+ if(!prs_align(ps))
+ return False;
if(!prs_werror("status", ps, depth, &q_u->status))
return False;
More information about the samba-cvs
mailing list