diff options
author | Jean-François Micouleau <jfm@samba.org> | 2000-02-07 16:25:15 +0000 |
---|---|---|
committer | Jean-François Micouleau <jfm@samba.org> | 2000-02-07 16:25:15 +0000 |
commit | 195e3d44daccc3b6457486018ba0322ac9d44566 (patch) | |
tree | aa6de6d3e640dc029b41deabc1a87e02a0ffebff /source3/rpc_parse/parse_prs.c | |
parent | 59ac32c2556e970ea1fe171e7b76cfee2142fbf0 (diff) | |
download | samba-195e3d44daccc3b6457486018ba0322ac9d44566.tar.gz samba-195e3d44daccc3b6457486018ba0322ac9d44566.tar.bz2 samba-195e3d44daccc3b6457486018ba0322ac9d44566.zip |
spoolss definitions.
also added some prs_struct functions, 'cause I'm handling buffers as
prs_struct.
J.F.
(This used to be commit 81e375bbbe0fb022a44a2aaaa3729a9518b7a854)
Diffstat (limited to 'source3/rpc_parse/parse_prs.c')
-rw-r--r-- | source3/rpc_parse/parse_prs.c | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/source3/rpc_parse/parse_prs.c b/source3/rpc_parse/parse_prs.c index 6bb07c5f64..24eff1b779 100644 --- a/source3/rpc_parse/parse_prs.c +++ b/source3/rpc_parse/parse_prs.c @@ -283,6 +283,21 @@ BOOL prs_append_prs_data(prs_struct *dst, prs_struct *src) } /******************************************************************* + Append some data from one parse_struct into another. + ********************************************************************/ + +BOOL prs_append_some_prs_data(prs_struct *dst, prs_struct *src, uint32 len) +{ + if(!prs_grow(dst, len)) + return False; + + memcpy(&dst->data_p[dst->data_offset], prs_data_p(src), (size_t)len); + dst->data_offset += len; + + return True; +} + +/******************************************************************* Append the data from a buffer into a parse_struct. ********************************************************************/ @@ -352,6 +367,25 @@ char *prs_mem_get(prs_struct *ps, uint32 extra_size) } /******************************************************************* + Change the struct type. + ********************************************************************/ + +BOOL prs_switch_type(prs_struct *ps, BOOL io) +{ + if ((ps->io ^ io) == True) + ps->io=io; +} + +/******************************************************************* + Force a prs_struct to be dynamic even when it's size is 0. + ********************************************************************/ + +void prs_force_dynamic(prs_struct *ps) +{ + ps->is_dynamic=True; +} + +/******************************************************************* Stream a uint8. ********************************************************************/ @@ -417,6 +451,22 @@ BOOL prs_uint8s(BOOL charmode, char *name, prs_struct *ps, int depth, uint8 *dat } /****************************************************************** + Stream an array of uint16s. Length is number of uint16s. + ********************************************************************/ + +BOOL prs_uint16s(BOOL charmode, char *name, prs_struct *ps, int depth, uint16 *data16s, int len) +{ + char *q = prs_mem_get(ps, len * sizeof(uint16)); + if (q == NULL) + return False; + + DBG_RW_PSVAL(charmode, name, depth, ps->data_offset, ps->io, ps->bigendian_data, q, data16s, len) + ps->data_offset += (len * sizeof(uint16)); + + return True; +} + +/****************************************************************** Stream an array of uint32s. Length is number of uint32s. ********************************************************************/ |