From aa33aa6e64b3306ffb777ed690a60c5576e8514b Mon Sep 17 00:00:00 2001 From: Aurelien Aptel Date: Tue, 23 May 2017 11:59:59 +0200 Subject: librpc/ndr: add new ndr_compression_state Signed-off-by: Aurelien Aptel Reviewed-by: Guenther Deschner Reviewed-by: Jeremy Allison --- librpc/ndr/libndr.h | 6 ++++++ librpc/ndr/ndr_compression.c | 11 +++++++++++ 2 files changed, 17 insertions(+) (limited to 'librpc') diff --git a/librpc/ndr/libndr.h b/librpc/ndr/libndr.h index 072fd662e64..41e68ee7b98 100644 --- a/librpc/ndr/libndr.h +++ b/librpc/ndr/libndr.h @@ -47,6 +47,8 @@ struct ndr_token_list { uint32_t count; }; +struct ndr_compression_state; + /* this is the base structure passed to routines that parse MSRPC formatted data @@ -71,6 +73,8 @@ struct ndr_pull { struct ndr_token_list array_length_list; struct ndr_token_list switch_list; + struct ndr_compression_state *cstate; + TALLOC_CTX *current_mem_ctx; /* this is used to ensure we generate unique reference IDs @@ -97,6 +101,8 @@ struct ndr_push { struct ndr_token_list dns_string_list; struct ndr_token_list full_ptr_list; + struct ndr_compression_state *cstate; + /* this is used to ensure we generate unique reference IDs */ uint32_t ptr_count; }; diff --git a/librpc/ndr/ndr_compression.c b/librpc/ndr/ndr_compression.c index fd915ccaaa6..b2cb4341058 100644 --- a/librpc/ndr/ndr_compression.c +++ b/librpc/ndr/ndr_compression.c @@ -26,6 +26,17 @@ #include "../librpc/ndr/ndr_compression.h" #include +struct ndr_compression_state { + enum ndr_compression_alg type; + union { + struct { + struct z_stream_s *z; + uint8_t *dict; + size_t dict_size; + } mszip; + }; +}; + static voidpf ndr_zlib_alloc(voidpf opaque, uInt items, uInt size) { return talloc_zero_size(opaque, items * size); -- cgit v1.2.1