waider at waider.ie
Tue Apr 15 17:37:54 GMT 2003
I finally got a successful run with a large RPC buffer, but before I
offer any patches I have a question about some of the stuff I'm
modifying. In cli_pipe.c, function rpc_api_pipe_req(), there is this:
* calc how much actual data we can send in a PDU fragment
max_data = cli->max_xmit_frag - RPC_HEADER_LEN - RPC_HDR_REQ_LEN -
(auth_verify ? RPC_HDR_AUTH_LEN : 0) - auth_len - 8;
This results ultimately in PDUs that are 8 bytes shorter than the
max_xmit_frag, which apparently breaks something (having tweaked just
about every other field going through, I'm pretty sure about this!) on
the Windows end of things. So, em, what's the -8 for?
Secondly, it appears that large RPC stuff with NT4 requires
PIPE_RAW_MODE to be implemented. I've done this, but I'm not sure how
it affects the signing/sealing hoo-hah. I'm also aware that this may
be a moot point since perhaps Samba is more focussed on Win2K than
NT4, and Win2K certainly seems happy enough without the raw mode
stuff. A possible solution is to only switch on the raw mode code if
we're dealing with a WinNT box (or anything else that proves to need
it), but I don't know how to do that.
If anyone can shed a little light on either of these, I'd appreciate
it. I will be testing the code against a Win2K box to see if it
behaves sanely, plus there are still a few glitches to hammer out, but
hopefully I should have a patch to offer before the end of the week.
waider at waider.ie / Yes, it /is/ very personal of me.
"Each and every single person at [company] is a hydrocephalic ewok
who couldn't slice his way out of a paper bag with a machete." - Jon Orwant
More information about the samba-technical