pidl:Samba4/NDR/Parser: set LIBNDR_FLAG_WITHIN_PIPE
authorStefan Metzmacher <metze@samba.org>
Tue, 8 Mar 2011 15:29:44 +0000 (16:29 +0100)
committerStefan Metzmacher <metze@samba.org>
Tue, 4 Jun 2019 11:15:20 +0000 (13:15 +0200)
metze

pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm

index 432e52f89c4562f7ff32f8dd4fb8a2f12a910469..1788c4ea1b4116a09aaccbaef81d0e96785d39db 100644 (file)
@@ -2279,6 +2279,8 @@ sub ParsePipePushChunk($$)
 
        $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("");
@@ -2286,6 +2288,7 @@ sub ParsePipePushChunk($$)
        $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("}");
@@ -2312,6 +2315,8 @@ sub ParsePipePullChunk($$)
 
        $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("");
@@ -2319,6 +2324,7 @@ sub ParsePipePullChunk($$)
        $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("}");
@@ -2346,7 +2352,10 @@ sub ParsePipePrintChunk($$)
        $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("");