$self->pidl("{");
$self->indent;
+ $self->pidl("uint64_t _flags_save = $ndr->flags;");
+ $self->pidl("ndr_set_flags(&$ndr->flags, LIBNDR_FLAG_WITHIN_PIPE);");
$self->ParseStructPush($struct, $ndr, $varname);
$self->pidl("");
$self->pidl("NDR_CHECK(ndr_push_pipe_chunk_trailer(ndr, ndr_flags, $varname->count));");
$self->pidl("");
+ $self->pidl("$ndr->flags = _flags_save;");
$self->pidl("return NDR_ERR_SUCCESS;");
$self->deindent;
$self->pidl("}");
$self->pidl("{");
$self->indent;
+ $self->pidl("uint64_t _flags_save = $ndr->flags;");
+ $self->pidl("ndr_set_flags(&$ndr->flags, LIBNDR_FLAG_WITHIN_PIPE);");
$self->ParseStructPull($struct, $ndr, $varname);
$self->pidl("");
$self->pidl("NDR_CHECK(ndr_check_pipe_chunk_trailer($ndr, ndr_flags, $varname->count));");
$self->pidl("");
+ $self->pidl("$ndr->flags = _flags_save;");
$self->pidl("return NDR_ERR_SUCCESS;");
$self->deindent;
$self->pidl("}");
$self->pidl("_PUBLIC_ void ndr_print_$name(struct ndr_print *$ndr, const char *name, $args)");
$self->pidl("{");
$self->indent;
+ $self->pidl("uint64_t _flags_save = $ndr->flags;");
+ $self->pidl("ndr_set_flags(&$ndr->flags, LIBNDR_FLAG_WITHIN_PIPE);");
$self->ParseTypePrint($struct, $ndr, $varname);
+ $self->pidl("$ndr->flags = _flags_save;");
$self->deindent;
$self->pidl("}");
$self->pidl("");