[GLUE] Rsync SAMBA_3_2_0 SVN r25598 in order to create the v3-2-test branch.
[jerry/samba.git] / source / rpc_parse / parse_misc.c
index 54d8ae4785310a7d629c48a3c93a1b89a68edf8b..7321e362b89f30642cec648c46c75ec77bee8ee7 100644 (file)
@@ -61,7 +61,7 @@ BOOL smb_io_time(const char *desc, NTTIME *nttime, prs_struct *ps, int depth)
 
        if(!prs_align(ps))
                return False;
-
+       
        if (MARSHALLING(ps)) {
                low = *nttime & 0xFFFFFFFF;
                high = *nttime >> 32;
@@ -88,6 +88,53 @@ 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.
+********************************************************************/
+
+uint32 get_enum_hnd(ENUM_HND *enh)
+{
+       return (enh && enh->ptr_hnd != 0) ? enh->handle : 0;
+}
+
+/*******************************************************************
+ Inits an ENUM_HND structure.
+********************************************************************/
+
+void init_enum_hnd(ENUM_HND *enh, uint32 hnd)
+{
+       DEBUG(5,("smb_io_enum_hnd\n"));
+
+       enh->ptr_hnd = (hnd != 0) ? 1 : 0;
+       enh->handle = hnd;
+}
+
+/*******************************************************************
+ Reads or writes an ENUM_HND structure.
+********************************************************************/
+
+BOOL smb_io_enum_hnd(const char *desc, ENUM_HND *hnd, prs_struct *ps, int depth)
+{
+       if (hnd == NULL)
+               return False;
+
+       prs_debug(ps, depth, desc, "smb_io_enum_hnd");
+       depth++;
+
+       if(!prs_align(ps))
+               return False;
+       
+       if(!prs_uint32("ptr_hnd", ps, depth, &hnd->ptr_hnd)) /* pointer */
+               return False;
+
+       if (hnd->ptr_hnd != 0) {
+               if(!prs_uint32("handle ", ps, depth, &hnd->handle )) /* enum handle */
+                       return False;
+       }
+
+       return True;
+}
+
 /*******************************************************************
  Reads or writes a DOM_SID structure.
 ********************************************************************/