diff options
author | Martin Pool <mbp@samba.org> | 2002-01-02 07:48:07 +0000 |
---|---|---|
committer | Martin Pool <mbp@samba.org> | 2002-01-02 07:48:07 +0000 |
commit | 4f3a2be2b9b566a33c5205142666e7e697d8f93f (patch) | |
tree | 96ec4817c055f8ecffa04bc456d6285422b54d94 /source3/rpc_parse | |
parent | a3f891dbd2e9ee1681e3c8295cd62a877c727d4f (diff) | |
download | samba-4f3a2be2b9b566a33c5205142666e7e697d8f93f.tar.gz samba-4f3a2be2b9b566a33c5205142666e7e697d8f93f.tar.bz2 samba-4f3a2be2b9b566a33c5205142666e7e697d8f93f.zip |
Add prs_dump_before to dump everything from the start of the prs
buffer up to the current position, and use this to dump pipe buffers
just before parsing.
(This used to be commit 92a3ab274e6cf09a8ba39b91f8bbacba6de40b37)
Diffstat (limited to 'source3/rpc_parse')
-rw-r--r-- | source3/rpc_parse/parse_prs.c | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/source3/rpc_parse/parse_prs.c b/source3/rpc_parse/parse_prs.c index f902210b7b..8bb9f1c70a 100644 --- a/source3/rpc_parse/parse_prs.c +++ b/source3/rpc_parse/parse_prs.c @@ -23,11 +23,30 @@ #include "includes.h" -/******************************************************************* -dump a prs to a file - ********************************************************************/ +/** + * Dump a prs to a file: from the current location through to the end. + **/ void prs_dump(char *name, int v, prs_struct *ps) { + prs_dump_region(name, v, ps, ps->data_offset, ps->buffer_size); +} + + +/** + * Dump from the start of the prs to the current location. + **/ +void prs_dump_before(char *name, int v, prs_struct *ps) +{ + prs_dump_region(name, v, ps, 0, ps->data_offset); +} + + +/** + * Dump everything from the start of the prs up to the current location. + **/ +void prs_dump_region(char *name, int v, prs_struct *ps, + int from_off, int to_off) +{ int fd, i; pstring fname; if (DEBUGLEVEL < 50) return; @@ -41,7 +60,7 @@ void prs_dump(char *name, int v, prs_struct *ps) if (fd != -1 || errno != EEXIST) break; } if (fd != -1) { - write(fd, ps->data_p + ps->data_offset, ps->buffer_size - ps->data_offset); + write(fd, ps->data_p + from_off, to_off - from_off); close(fd); DEBUG(0,("created %s\n", fname)); } |