librpc/rpc: add dcerpc_binding_handle_raw_call_in_*
authorStefan Metzmacher <metze@samba.org>
Fri, 30 Aug 2013 09:56:18 +0000 (11:56 +0200)
committerStefan Metzmacher <metze@samba.org>
Tue, 4 Jun 2019 11:14:55 +0000 (13:14 +0200)
commit60492e5bc0fbb55908b18502756de769911d12d3
treefc01be1ccf01b26c52ae070bf7b8e6377fa4b05f
parent5bf386ad98350aae18eff7d016aa96f3ec44ae7e
librpc/rpc: add dcerpc_binding_handle_raw_call_in_*

The binding handle backend can support LIBNDR_FLAG_INCOMPLETE_BUFFER
with this change and implement the raw_call_in_send/recv functions
to get more data from the caller. The final chunk clears the
LIBNDR_FLAG_INCOMPLETE_BUFFER flag in the in_flags of raw_call_in_send().

If LIBNDR_FLAG_INCOMPLETE_BUFFER was indicated in the in_flags of raw_call_send()
the backend can deliver partial results to the caller,
in raw_call_recv() by specifying LIBNDR_FLAG_INCOMPLETE_BUFFER in the out_flags.
In that case the caller should not call TALLOC_FREE(subreq)
as there's more to come. The backend continues to delivers results by
raw_call_recv() and clears LIBNDR_FLAG_INCOMPLETE_BUFFER on the last chunk.

This will be used to implement support for DCERPC pipes.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
librpc/rpc/binding_handle.c
librpc/rpc/rpc_common.h