[PATCH] s4:librpc/ndr: add new LIBNDR_FLAG_STR_RAW8 for ndr_pull_string

Andrew Bartlett abartlet at samba.org
Mon May 23 15:03:30 MDT 2011

On Mon, 2011-05-23 at 14:05 +0200, Sean Finney wrote:
> Introduce a new flag, LIBNDR_FLAG_STR_RAW8, which when combined with
> LIBNDR_FLAG_STR_NULLTERM will indicate that libndr should not attempt
> to convert the corresponding string, and place the responsibility on
> the caller to do so later.
> This is needed in cases where the string is known to be 8-bit and NULL
> terminated, but in an unspecified character set.  For example, when
> pulling PT_STRING8 properties from an exchange server via libmapi +
> libndr, the codepage is neither known nor in the control of the caller,
> and is determined by subsequent properties requested from the server.
> Therefore the client would like to fetch all properties in one large
> batch, and convert the resulting strings locally.
> Signed-off-by: Sean Finney <seanius at seanius.net>
> ---
>  librpc/idl/idl_types.h  |    6 ++++++
>  librpc/ndr/libndr.h     |    1 +
>  librpc/ndr/ndr_string.c |   27 +++++++++++++++++++++++----
>  3 files changed, 30 insertions(+), 4 deletions(-)

This would seem to be exactly what we need.  

However, as you have changed the potential size that ndr_string objects
can be, you also need to update ndr_size_string_array().
(ndr_size_string() appears incorrect, unused, and can be removed rather
than fixed).

Andrew Bartltet

Andrew Bartlett                                http://samba.org/~abartlet/
Authentication Developer, Samba Team           http://samba.org

More information about the samba-technical mailing list