dce/rpc "client" api
Luke Kenneth Casson Leighton
lkcl at samba.org
Sat Aug 19 10:58:57 GMT 2000
> > then, the callers of cli_connect.c do not need to
> > _worry_ about PDU reassembly. otherwise, you end up
> > in a right mess.
> Please explain. You're already having to assemble the
> PDU to pass to the cli_connect routines.
there are potentially two levels of PDU assembly.
take the DCE/RPC function-arguments, marshall them into a contiguous data
stream which may be larger than 0x1630-0x10 bytes, and split them down
into 0x1630-0x10 byte segments, add a 0x10 byte header at the front and
call each one a PDU (protocol data unit).
send them. receive them.
strip out the headers. concatenate the data. you have the
modified-DCE/RPC function arguments. unmarshall them.
take each PDU (of which there may be several). take any transport, and
use it to send each [independent PDU]. the transport *MAY*, at its own
discretion, fragment the PDU. the transport *MUST* reassemble any
arbitrary fragments back into a contiguous stream.
different reassembly rules, which i split with cli_connect.c.
cli_connect.c handles individual PDUs.
More information about the samba-technical