[PATCH} Implement SMB3/SMB3 in smbclient and smbcacls (and generic client library).
Stefan (metze) Metzmacher
metze at samba.org
Tue Aug 13 12:19:25 MDT 2013
Am 13.08.2013 19:27, schrieb Stefan (metze) Metzmacher:
> Am 13.08.2013 18:55, schrieb Stefan (metze) Metzmacher:
>> Hi Jeremy,
>>
>>>> here're some updates to your patches.
>>>>
>>>> - I replaced interpret_protocol() by
>>>> lp_set_cmdline("client max protocol", poptGetOptArg(pc));
>>>> and lp_cli_max_protocol()
>>>>
>>>> - I renamed the new function to cli_smb2_ as prefix
>>>> instead of smb2cli_ (this should be used only by the generic toplevel
>>>> functions).
>>>>
>>>> - I used DEFAULT_SMB2_MAX_CREDITS instead of lp_smb2_max_credits() which
>>>> is for the server.
>>>>
>>>> Then I added some TODOs into commit messages.
>>>>
>>>> - TODO: Fix smb2cli_req_create() to set the credit charge correctly on
>>>> large-MTU read requests.
>>>>
>>>> If we don't do this right, W2K12 returns INVALID_PARAMETER on SMB2_READ.
>>>>
>>>> Signed-off-by: Jeremy Allison <jra at samba.org>
>>>>
>>>> TODO: let the callers use smb2cli_req_set_credit_charge()
>>>> needed for read, query_info, query_directory, ioctl and maybe create
>>>>
>>>> e.g. smb2cli_read_send() should use smb2cli_req_create() followed
>>>> by smb2cli_req_set_credit_charge() and smb2cli_req_set_credit_charge()
>>>> instead of smb2cli_req_send().
>>>>
>>>> (We can also fix this cleanly later...)
>>>>
>>>> - TODO: Fix cli_read_max_bufsize() to cope with available credits in the
>>>> large MTU case.
>>>>
>>>> Signed-off-by: Jeremy Allison <jra at samba.org>
>>>>
>>>> TODO: this is needed for also for write
>>>> and maybe for others too, query_directory, query_info
>>>>
>>>> TODO: this needs to be dynamic as cli_pull() can't use fixed
>>>> numbers of outstanging requests nor fixed chunk sizes.
>>>>
>>>> Servers can try to slow down a client and then we would get errors...
>>>
>>> Ok, I'm happy with these changes. I fixed up the patch
>>> for the minor compile issues and have sent it back for
>>> your review.
>>>
>>> Let me know when you're happy and feel free to push,
>>> or I'll push.
>>
>> Here's my current patchset (from my master3-jra branch)
>>
>> I've rewritten cli_pull/push to dynamically use up to 256 requests.
>> The complete set compiles for me, but I haven't done any testing yet.
>> (I'm compile each commit later...)
>>
>> I've marked the commits I've done completely new as "TODO testing ..."
>> and some should be reviewed again by you and one maybe squashed after
>> your review.
>
> I've tested put and get with a 35M file
>
> There was a next = chunk; instead of next = chunk->next; ...
Ok, using -m SMB3 --send-buffer=0 lets smbclient use all possible credits.
With the default send-buffer size of 524288 it just do sequential requests.
metze
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 261 bytes
Desc: OpenPGP digital signature
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20130813/805ebd0f/attachment.pgp>
More information about the samba-technical
mailing list