[SCM] Samba Shared Repository - branch master updated
Stefan Metzmacher
metze at samba.org
Thu Nov 24 12:37:04 MST 2011
The branch, master has been updated
via bfbfcd1 s3:torture: test smb2cli_logoff and smb2cli_tdis
via b01d80a s3:smb2cli: zero tid in smb2cli_tdis*
via cc67f7e s3:smb2cli: free session in smb2cli_logoff*
via d287fe5 s3:libsmb: Fix a typo
via a532236 s3:torture: add SMB2-SESSION-REAUTH
via 2a04959 s3:torture: add SMB2-MULTI-CHANNEL test
via 4c29389 s3:torture: add a new test SMB2-TCON-DEPENDENCE
via 1fef161 s3:torture:smb2: add SMB2-SESSION-RECONNECT test
via 4958d7c s4:libcli/smb2: use talloc_zero() in smb2_request_init()
via f132ad3 s4:libcli/smb2: fix compiler warning in smb2_push_o16s16_string()
via 300343d s4:libcli/smb2: implement on top of smbXcli_conn/req
via a210d9f s3:smbXcli: keep two fd per connection in order to work with the epoll tevent backend
via 378c21a s4:torture/smb2: use tctx->ev as event context for polling
via a312a8c s3:torture: use cli_tree_connect() instead of smb2cli_tcon()
via 694b7d6 s3:client: make use of cli_tree_connect()
via ee36217 s3:libsmb: make use of cli_tree_connect()
via b378abe s3:nmbd: make use of cli_tree_connect()
via 2d9a889 s3:torture: make use of cli_tree_connect()
via c6ed8e3 s3:utils: make use of cli_tree_connect()
via c53a52a s3:winbindd_cm: make use of cli_tree_connect()
via 665593d s3:libsmb: add cli_tree_connect() for a generic tree connect
via 8428db0 s3:smb2cli: remove unused smb2cli_sesssetup_ntlmssp*
via 5c97bbf s3:torture: replace smb2cli_sesssetup_ntlmssp() with the more generic cli_session_setup()
via 8a9bfd6 s3:libsmb: add SMB2 support to cli_session_setup()
via dd28b28 s3:libsmb: implement cli_trans* on top of smb1cli_trans*
via da2027f smbXcli: rework smb1cli_trans.c to use smbXcli_conn/smbXcli_req
via c1db4a0 smbXcli: cp source3/libsmb/clitrans.c libcli/smb/smb1cli_trans.c
via 9f5a7f5 s3:selftest: run SMB2-NEGPROT
via 773d0a6 s3:torture: add SMB2-NEGPROT test
via f60b768 s3:smb2cli: remove unused smb2cli_negprot()
via 628dd72 s3:SMB2-BASIC: use smbXcli_negprot() directly
via 6ab3f8c s3:smb2cli: pass struct smbXcli_conn directly to smb2cli_req_create/_send()
via 9ebdee2 s3:libsmb: implement cli_state based functions on top of smbXcli_conn/smbXcli_req
via bda3d49 smbXcli: add smb2cli_req_set_notify_async()
via 0995d68 smbXcli: add support for tevent_req_cancel() on smbXcli_req
via 91ffe69 smbXcli: fix smb signing for SMBntcancel
via c2a39f4 smbXcli: add smb2cli_session_create_channel()
via bf1ff05 s3:smb2cli: add forward declaration for struct cli_state
via 3327c1e s3:smb2cli: make smb2cli_session_setup_send/recv non-static
via 99b3d57 s3:smb2cli: make use of smbXcli_session and setup the session key for SMB2 signing
via 396d7a7 smbXcli: add support for smb2 signing
via 3fd54b5 smbXcli: add smbXcli_session infrastructure
via 7e7bca4 s3:smb2cli: implement smb2cli_negprot() on top of smbXcli_negprot()
via 4435dad smbXcli: add support for PROTOCOL_SMB2_22 in smbXcli_negprot()
via 9d06e0f smbXcli: add support for SMB2 multi-credit requests
via d533543 smbXcli: add support for 2.??? negprot and PROTOCOL_SMB2_10
via 1cfeb3f smbXcli: pass client_guid to smbXcli_conn_create()
via ceb063c smbXcli: add smbXcli_negprot_*
via b958498 smbXcli: add helper functions to access the negotiated features
via 1a0ce02 smbXcli: also notify chained requests about broken connections
via 4d8e151 smbXcli: simplify smb1cli_req_chain_submit()
via e2912fa smbXcli: remove unused smb1cli_have_andx_command()
via fee3a0a smbXcli: reorder smb1cli_conn_dispatch_incoming() to avoid too much nesting
via 0f194e3 smbXcli: rework smb1cli_req_recv() to expose an iov with 3 elements
via ce224f4 smbXcli: use smb1cli_inbuf_parse_chain() and remember more details per chain response
via 7c5651c smbXcli: add smb1cli_inbuf_parse_chain()
via 94cb738 smbXcli: pass hdr to smb1cli_pull_raw_error()
via 4529395 smbXcli: add state->smb1.recv_{cmd,status,iov}
via 5e7cf19 smbXcli: split out a smb1cli_req_flags() function
via 2a570e6 smbXcli: set message id to UINT64_MAX for BREAK in smb2cli_req_create()
via 349977e s3:smb2cli: replace smb2cli_base.c code with the more generic smbXcli_base.c code
via 84806ec smbXcli: rework smb2cli_req to smbXcli_conn/smbXcli_req
via 21b5f1c libcli/smb: copy smb2cli_req_* code to smbXcli_base.c
via 26892a9 smbXcli: rework smbXcli_base.c to use smbXcli_conn/smbXcli_req
via 012dee3 smbXcli: cp source3/libsmb/async_smb.c libcli/smb/smbXcli_base.c
from 53ad886 security: add local authority well-known SIDs
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit bfbfcd1a51a4bb8ed28e96f517eea77bbf1f3068
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Nov 24 12:33:19 2011 +0100
s3:torture: test smb2cli_logoff and smb2cli_tdis
metze
Autobuild-User: Stefan Metzmacher <metze at samba.org>
Autobuild-Date: Thu Nov 24 20:36:31 CET 2011 on sn-devel-104
commit b01d80a25eec366fc8f28d2f845a8378efc0c653
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Nov 21 16:30:09 2011 +0100
s3:smb2cli: zero tid in smb2cli_tdis*
metze
commit cc67f7e5489cdafbb5b365416a533f79c63e9060
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Nov 21 16:30:09 2011 +0100
s3:smb2cli: free session in smb2cli_logoff*
metze
commit d287fe5399db463c0d10ad764d56926619e95ada
Author: Volker Lendecke <vl at samba.org>
Date: Mon Nov 21 12:12:53 2011 +0100
s3:libsmb: Fix a typo
commit a5322366d8bad0c4ff9f9f206b307a7ff632a711
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat Oct 22 10:37:34 2011 +0200
s3:torture: add SMB2-SESSION-REAUTH
metze
commit 2a04959ba11e34e0ca45ba21a5d5b521d5662f32
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat Oct 22 10:34:31 2011 +0200
s3:torture: add SMB2-MULTI-CHANNEL test
metze
commit 4c29389c045ec6489b10cb64aab394d21fe884ed
Author: Michael Adam <obnox at samba.org>
Date: Mon Sep 19 10:09:34 2011 +0200
s3:torture: add a new test SMB2-TCON-DEPENDENCE
Signed-off-by: Stefan Metzmacher <metze at samba.org>
commit 1fef161d2a0b73519cba23739e326ba0b2e11c2a
Author: Michael Adam <obnox at samba.org>
Date: Mon Sep 19 10:08:48 2011 +0200
s3:torture:smb2: add SMB2-SESSION-RECONNECT test
Signed-off-by: Stefan Metzmacher <metze at samba.org>
commit 4958d7cb44bb7851e62926f195bd76ff9736f62f
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat Sep 24 09:36:58 2011 +0200
s4:libcli/smb2: use talloc_zero() in smb2_request_init()
metze
commit f132ad32cc3cf81f0f6ea7d3a586b5ecec77edc8
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Nov 21 17:43:11 2011 +0100
s4:libcli/smb2: fix compiler warning in smb2_push_o16s16_string()
metze
commit 300343d16c2d7f1f10bbd3c5e484131bf8fa5dfc
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Sep 20 20:59:45 2011 +0200
s4:libcli/smb2: implement on top of smbXcli_conn/req
metze
commit a210d9fa05d46ef2ec0dcdbf13e1fd83c93b6219
Author: Stefan Metzmacher <metze at samba.org>
Date: Sun Sep 25 03:15:54 2011 +0200
s3:smbXcli: keep two fd per connection in order to work with the epoll tevent backend
metze
commit 378c21a72a2d4727b10fd871c43d61792ada0625
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Sep 22 21:30:13 2011 +0200
s4:torture/smb2: use tctx->ev as event context for polling
metze
commit a312a8c788385faf0d179a36ce226503a612943e
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Nov 24 13:03:11 2011 +0100
s3:torture: use cli_tree_connect() instead of smb2cli_tcon()
metze
commit 694b7d6f772a87df5adad12493f332fffc7fecee
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Oct 31 17:51:47 2011 +0100
s3:client: make use of cli_tree_connect()
metze
commit ee36217c408c5306f9fca12d64c0d5fbd3b2b31e
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Oct 31 17:51:11 2011 +0100
s3:libsmb: make use of cli_tree_connect()
metze
commit b378abe4555a342b0db7f12ca142591dfcb6ad3b
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Oct 31 17:50:32 2011 +0100
s3:nmbd: make use of cli_tree_connect()
metze
commit 2d9a8898f27b3d80851c7bd99b525118abeb92bc
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Oct 31 17:49:29 2011 +0100
s3:torture: make use of cli_tree_connect()
metze
commit c6ed8e3211aa22e4a2a88ddb6a98c79e6c11dee7
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Oct 31 17:48:57 2011 +0100
s3:utils: make use of cli_tree_connect()
metze
commit c53a52a264c51d87190623ac2c9595e05c8e8695
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Oct 31 17:48:20 2011 +0100
s3:winbindd_cm: make use of cli_tree_connect()
metze
commit 665593d6acd8bc9b0c78515050cb7dd107c3867d
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Sep 20 06:57:37 2011 +0200
s3:libsmb: add cli_tree_connect() for a generic tree connect
metze
commit 8428db0a17c2a70eab52a73a6c883cf1d708b564
Author: Stefan Metzmacher <metze at samba.org>
Date: Fri Oct 21 10:08:39 2011 +0200
s3:smb2cli: remove unused smb2cli_sesssetup_ntlmssp*
metze
commit 5c97bbf3ef69e45f3ec7958792868e1e8e605d38
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Sep 28 00:58:28 2011 +0200
s3:torture: replace smb2cli_sesssetup_ntlmssp() with the more generic cli_session_setup()
metze
commit 8a9bfd61b7679a4844a6a7b1af2c19ec6cf244b0
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Sep 20 05:07:27 2011 +0200
s3:libsmb: add SMB2 support to cli_session_setup()
metze
commit dd28b28edef1cfab354f03775646cbb0cd9efb31
Author: Stefan Metzmacher <metze at samba.org>
Date: Sun Aug 28 18:05:04 2011 +0200
s3:libsmb: implement cli_trans* on top of smb1cli_trans*
metze
commit da2027faf7529eacd715b52c4ecfe7c65e934d82
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat Sep 17 23:38:09 2011 +0200
smbXcli: rework smb1cli_trans.c to use smbXcli_conn/smbXcli_req
metze
commit c1db4a0d9f6072a0149e634deb7d958d0b6741b2
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat Sep 17 23:34:12 2011 +0200
smbXcli: cp source3/libsmb/clitrans.c libcli/smb/smb1cli_trans.c
metze
commit 9f5a7f5063de6056d7d2bdf88a98e03e7510867f
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Aug 30 18:50:55 2011 +0200
s3:selftest: run SMB2-NEGPROT
metze
commit 773d0a6addbf015cf698bdd1eac7e1dc66617d21
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Aug 30 18:50:35 2011 +0200
s3:torture: add SMB2-NEGPROT test
metze
commit f60b768df404ec314602be5b5f2a0ba2c5052788
Author: Stefan Metzmacher <metze at samba.org>
Date: Sun Sep 18 00:11:54 2011 +0200
s3:smb2cli: remove unused smb2cli_negprot()
metze
commit 628dd727cf889c0ca04a5b52f22dc39687ad9d53
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Aug 30 11:38:26 2011 +0200
s3:SMB2-BASIC: use smbXcli_negprot() directly
metze
commit 6ab3f8cedbd79776169b1f84d8775b9887d9c82d
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Sep 7 18:44:21 2011 +0200
s3:smb2cli: pass struct smbXcli_conn directly to smb2cli_req_create/_send()
metze
commit 9ebdee281712dd6c89e406aa0e374e12c4dd8eb4
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Sep 22 21:09:00 2011 +0200
s3:libsmb: implement cli_state based functions on top of smbXcli_conn/smbXcli_req
metze
commit bda3d491b416f780f63841e9f3a92b9a94c2aadc
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Oct 27 17:20:27 2011 +0200
smbXcli: add smb2cli_req_set_notify_async()
That can be used if the caller wants to be notified if
the async interim response arrives.
metze
commit 0995d68d59d5d2eeb5533b005b4651f416e64548
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat Sep 24 06:06:46 2011 +0200
smbXcli: add support for tevent_req_cancel() on smbXcli_req
metze
commit 91ffe696aa546fcd9079b3e85ccc29dea94661a9
Author: Stefan Metzmacher <metze at samba.org>
Date: Fri Nov 18 09:24:11 2011 +0100
smbXcli: fix smb signing for SMBntcancel
metze
commit c2a39f4ecd74ae874c80e9d2e2f83eaaa52d79d5
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Sep 19 19:05:20 2011 +0200
smbXcli: add smb2cli_session_create_channel()
This makes it possible to implement SMB 2.22 Multi-Channel
for testing.
metze
commit bf1ff0572dd9a8b75f7d10c8d5910ae70016fe11
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Sep 22 22:16:51 2011 +0200
s3:smb2cli: add forward declaration for struct cli_state
metze
commit 3327c1e86e2172f8fea2ba35af3b1357378e5a49
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Sep 19 05:37:34 2011 +0200
s3:smb2cli: make smb2cli_session_setup_send/recv non-static
metze
commit 99b3d57fc36ca7e0f493b79886027930278b812a
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat Sep 3 10:18:17 2011 +0200
s3:smb2cli: make use of smbXcli_session and setup the session key for SMB2 signing
metze
commit 396d7a7dd3d1583109b477ea5b223670903cde0d
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat Sep 3 10:18:32 2011 +0200
smbXcli: add support for smb2 signing
metze
commit 3fd54b57c1103bad38b4c864000e39adf6cab552
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat Sep 3 10:18:17 2011 +0200
smbXcli: add smbXcli_session infrastructure
metze
commit 7e7bca41885ca876a0074d7d026eb99b0fc5e8db
Author: Stefan Metzmacher <metze at samba.org>
Date: Fri Sep 16 17:26:22 2011 +0200
s3:smb2cli: implement smb2cli_negprot() on top of smbXcli_negprot()
metze
commit 4435dad827db89356ecb6f1096a2b781f29970e5
Author: Stefan Metzmacher <metze at samba.org>
Date: Fri Sep 16 16:12:50 2011 +0200
smbXcli: add support for PROTOCOL_SMB2_22 in smbXcli_negprot()
metze
commit 9d06e0fcc73d60cb03a256847413dac7e8673e20
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Sep 6 17:52:02 2011 +0200
smbXcli: add support for SMB2 multi-credit requests
metze
commit d5335431660825245fae39584dbf4233bed2c8e1
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Aug 30 11:04:46 2011 +0200
smbXcli: add support for 2.??? negprot and PROTOCOL_SMB2_10
metze
commit 1cfeb3f8a0ffe3109c0e1d0bfabe6912a10f4129
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Sep 15 13:21:42 2011 +0200
smbXcli: pass client_guid to smbXcli_conn_create()
metze
commit ceb063ca7daf192b9b87224a063f50abd75c0c88
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Sep 15 13:12:43 2011 +0200
smbXcli: add smbXcli_negprot_*
This supports negotiation of any SMB1 or SMB2 dialect.
metze
commit b958498c2add7623e4914c4a04def6e41f5285cc
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Sep 15 14:02:49 2011 +0200
smbXcli: add helper functions to access the negotiated features
metze
commit 1a0ce02a238fb0384b0a05783a0e277613dd0cb0
Author: Stefan Metzmacher <metze at samba.org>
Date: Fri Nov 18 10:30:33 2011 +0100
smbXcli: also notify chained requests about broken connections
metze
commit 4d8e1517798577d55479629d01826583a02aa43a
Author: Stefan Metzmacher <metze at samba.org>
Date: Fri Nov 18 10:28:40 2011 +0100
smbXcli: simplify smb1cli_req_chain_submit()
We should hang everything on the first request in the chain,
as that's the one that gets added to the pending array.
metze
commit e2912fa853321461d9b0a24e5015e82e3f5a7c18
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Nov 16 11:38:24 2011 +0100
smbXcli: remove unused smb1cli_have_andx_command()
metze
commit fee3a0a657119bd17a86934c4a74bece25cf59b8
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Nov 21 13:08:58 2011 +0100
smbXcli: reorder smb1cli_conn_dispatch_incoming() to avoid too much nesting
metze
commit 0f194e35a65cb8a2ae8e2d0d39bc49462a6c8f93
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Nov 16 11:37:05 2011 +0100
smbXcli: rework smb1cli_req_recv() to expose an iov with 3 elements
Each smb1cli_req has 3 iov elements
[SMB HDR, SMB Parameter Block, SMB Data Block].
The 'inbuf' is still exposed if the caller requires it
(until we fix all legacy callers).
The can now pass an array of expected [status,wct] combinations,
instead of just one expected min_wct.
metze
commit ce224f4d25c70190ad127b8fdf01ebb0d6070b6c
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Nov 16 11:35:50 2011 +0100
smbXcli: use smb1cli_inbuf_parse_chain() and remember more details per chain response
metze
commit 7c5651c3f63b29e689c9e07a33bec751a5e49ac7
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Nov 16 11:20:15 2011 +0100
smbXcli: add smb1cli_inbuf_parse_chain()
metze
commit 94cb738dd4deab7dc97e0da77a406264297713b9
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Nov 16 11:14:16 2011 +0100
smbXcli: pass hdr to smb1cli_pull_raw_error()
metze
commit 4529395d3c955475de50a79eea767716eba57be7
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Nov 16 11:11:18 2011 +0100
smbXcli: add state->smb1.recv_{cmd,status,iov}
In the following commits we will need to remember a few more things.
metze
commit 5e7cf194d2d25787e3af807a3a37f570ce5298dc
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Sep 7 19:07:51 2011 +0200
smbXcli: split out a smb1cli_req_flags() function
metze
commit 2a570e6305715dd4d64947ce5d702e227916f33b
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Sep 22 21:24:42 2011 +0200
smbXcli: set message id to UINT64_MAX for BREAK in smb2cli_req_create()
This way the caller can register an oplock handler.
Note that smb2cli_req_compound_submit() will overwrite this
if a request is send over the wire.
metze
commit 349977e1a071137ca33b831660e8c65c2e580b5f
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Sep 15 12:46:59 2011 +0200
s3:smb2cli: replace smb2cli_base.c code with the more generic smbXcli_base.c code
metze
commit 84806eceb2d39e2c66d22fd608d47adb51a9c8fb
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Sep 15 12:23:05 2011 +0200
smbXcli: rework smb2cli_req to smbXcli_conn/smbXcli_req
metze
commit 21b5f1c18573d8447d6e3fbda3018b72f65a4494
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Sep 15 11:47:11 2011 +0200
libcli/smb: copy smb2cli_req_* code to smbXcli_base.c
metze
commit 26892a9783756a13c2d86b642bb83768dbcca926
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Aug 11 13:29:59 2011 +0200
smbXcli: rework smbXcli_base.c to use smbXcli_conn/smbXcli_req
This splits the low level smb code from 'struct cli_state'
and makes it much more generic and useful for testing.
metze
commit 012dee3803bd22721f7b821c5cca5db9e15d8ed9
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Jul 18 14:35:03 2011 +0200
smbXcli: cp source3/libsmb/async_smb.c libcli/smb/smbXcli_base.c
metze
-----------------------------------------------------------------------
Summary of changes:
.../clitrans.c => libcli/smb/smb1cli_trans.c | 362 ++-
libcli/smb/smbXcli_base.c | 3959 ++++++++++++++++++++
libcli/smb/smbXcli_base.h | 248 ++
libcli/smb/wscript_build | 2 +
source3/Makefile.in | 4 +-
source3/client/client.c | 2 +-
source3/client/smbspool.c | 4 +-
source3/include/client.h | 78 +-
source3/libsmb/async_smb.c | 1117 +-----
source3/libsmb/cliconnect.c | 607 +---
source3/libsmb/clidfs.c | 6 +-
source3/libsmb/clientgen.c | 183 +-
source3/libsmb/clierror.c | 16 +-
source3/libsmb/clifsinfo.c | 15 +-
source3/libsmb/clisigning.c | 54 +-
source3/libsmb/clitrans.c | 807 +----
source3/libsmb/libsmb_server.c | 12 +-
source3/libsmb/passchange.c | 2 +-
source3/libsmb/proto.h | 7 +-
source3/libsmb/smb2cli.h | 33 +-
source3/libsmb/smb2cli_base.c | 752 ----
source3/libsmb/smb2cli_base.h | 64 -
source3/libsmb/smb2cli_close.c | 6 +-
source3/libsmb/smb2cli_create.c | 6 +-
source3/libsmb/smb2cli_flush.c | 6 +-
source3/libsmb/smb2cli_negprot.c | 174 -
source3/libsmb/smb2cli_query_directory.c | 6 +-
source3/libsmb/smb2cli_read.c | 6 +-
source3/libsmb/smb2cli_session.c | 348 +--
source3/libsmb/smb2cli_tcon.c | 16 +-
source3/libsmb/smb2cli_write.c | 6 +-
source3/nmbd/nmbd_synclists.c | 2 +-
source3/selftest/tests.py | 2 +-
source3/torture/locktest.c | 4 +-
source3/torture/masktest.c | 4 +-
source3/torture/proto.h | 5 +
source3/torture/test_smb2.c | 1080 ++++++-
source3/torture/torture.c | 15 +-
source3/utils/net_rpc.c | 4 +-
source3/utils/smbcacls.c | 4 +-
source3/winbindd/winbindd_cm.c | 2 +-
source3/wscript_build | 2 -
source4/libcli/smb2/cancel.c | 47 +-
source4/libcli/smb2/connect.c | 90 +-
source4/libcli/smb2/logoff.c | 2 -
source4/libcli/smb2/negprot.c | 112 -
source4/libcli/smb2/read.c | 2 +
source4/libcli/smb2/request.c | 67 +-
source4/libcli/smb2/session.c | 209 +-
source4/libcli/smb2/smb2.h | 53 +-
source4/libcli/smb2/tcon.c | 1 -
source4/libcli/smb2/transport.c | 715 ++---
source4/libcli/smb2/wscript_build | 4 +-
source4/libcli/smb_composite/smb2.c | 8 +-
source4/librpc/rpc/dcerpc_smb2.c | 5 +-
source4/torture/gentest.c | 17 +-
source4/torture/smb2/compound.c | 19 +-
source4/torture/smb2/lock.c | 2 +-
source4/torture/smb2/notify.c | 10 +-
source4/torture/smb2/oplock.c | 3 +-
60 files changed, 6693 insertions(+), 4705 deletions(-)
copy source3/libsmb/clitrans.c => libcli/smb/smb1cli_trans.c (64%)
create mode 100644 libcli/smb/smbXcli_base.c
create mode 100644 libcli/smb/smbXcli_base.h
delete mode 100644 source3/libsmb/smb2cli_base.c
delete mode 100644 source3/libsmb/smb2cli_base.h
delete mode 100644 source3/libsmb/smb2cli_negprot.c
delete mode 100644 source4/libcli/smb2/negprot.c
Changeset truncated at 500 lines:
diff --git a/source3/libsmb/clitrans.c b/libcli/smb/smb1cli_trans.c
similarity index 64%
copy from source3/libsmb/clitrans.c
copy to libcli/smb/smb1cli_trans.c
index 5c73e2d..791c440 100644
--- a/source3/libsmb/clitrans.c
+++ b/libcli/smb/smb1cli_trans.c
@@ -18,20 +18,29 @@
*/
#include "includes.h"
-#include "libsmb/libsmb.h"
+#include "system/network.h"
#include "../lib/util/tevent_ntstatus.h"
-#include "async_smb.h"
+#include "../libcli/smb/smb_common.h"
+#include "../libcli/smb/smbXcli_base.h"
struct trans_recvblob {
uint8_t *data;
uint32_t max, total, received;
};
-struct cli_trans_state {
- struct cli_state *cli;
+struct smb1cli_trans_state {
+ struct smbXcli_conn *conn;
struct tevent_context *ev;
uint8_t cmd;
+ uint8_t additional_flags;
+ uint8_t clear_flags;
+ uint16_t additional_flags2;
+ uint16_t clear_flags2;
+ uint32_t timeout_msec;
uint16_t mid;
+ uint32_t pid;
+ uint16_t tid;
+ uint16_t uid;
const char *pipe_name;
uint8_t *pipe_name_conv;
size_t pipe_name_conv_len;
@@ -59,33 +68,45 @@ struct cli_trans_state {
struct tevent_req *primary_subreq;
};
-static void cli_trans_cleanup_primary(struct cli_trans_state *state)
+static void smb1cli_trans_cleanup_primary(struct smb1cli_trans_state *state)
{
if (state->primary_subreq) {
- cli_smb_req_set_mid(state->primary_subreq, 0);
- cli_smb_req_unset_pending(state->primary_subreq);
+ smb1cli_req_set_mid(state->primary_subreq, 0);
+ smbXcli_req_unset_pending(state->primary_subreq);
TALLOC_FREE(state->primary_subreq);
}
}
-static int cli_trans_state_destructor(struct cli_trans_state *state)
+static int smb1cli_trans_state_destructor(struct smb1cli_trans_state *state)
{
- cli_trans_cleanup_primary(state);
+ smb1cli_trans_cleanup_primary(state);
return 0;
}
-static NTSTATUS cli_pull_trans(uint8_t *inbuf,
- uint8_t wct, uint16_t *vwv,
- uint16_t num_bytes, uint8_t *bytes,
- uint8_t smb_cmd, bool expect_first_reply,
- uint8_t *pnum_setup, uint16_t **psetup,
- uint32_t *ptotal_param, uint32_t *pnum_param,
- uint32_t *pparam_disp, uint8_t **pparam,
- uint32_t *ptotal_data, uint32_t *pnum_data,
- uint32_t *pdata_disp, uint8_t **pdata)
+static NTSTATUS smb1cli_pull_trans(uint8_t *inhdr,
+ uint8_t wct,
+ uint16_t *vwv,
+ uint32_t vwv_ofs,
+ uint32_t num_bytes,
+ uint8_t *bytes,
+ uint32_t bytes_ofs,
+ uint8_t smb_cmd, bool expect_first_reply,
+ uint8_t *pnum_setup, uint16_t **psetup,
+ uint32_t *ptotal_param, uint32_t *pnum_param,
+ uint32_t *pparam_disp, uint8_t **pparam,
+ uint32_t *ptotal_data, uint32_t *pnum_data,
+ uint32_t *pdata_disp, uint8_t **pdata)
{
uint32_t param_ofs, data_ofs;
uint8_t expected_num_setup;
+ uint32_t max_bytes = UINT32_MAX - bytes_ofs;
+ uint32_t bytes_end;
+
+ if (num_bytes > max_bytes) {
+ return NT_STATUS_INVALID_NETWORK_RESPONSE;
+ }
+
+ bytes_end = bytes_ofs + num_bytes;
if (expect_first_reply) {
if ((wct != 0) || (num_bytes != 0)) {
@@ -146,23 +167,23 @@ static NTSTATUS cli_pull_trans(uint8_t *inbuf,
* length. Likewise for param_ofs/param_disp.
*/
- if (smb_buffer_oob(smb_len_nbt(inbuf), param_ofs, *pnum_param)
+ if (smb_buffer_oob(bytes_end, param_ofs, *pnum_param)
|| smb_buffer_oob(*ptotal_param, *pparam_disp, *pnum_param)
- || smb_buffer_oob(smb_len_nbt(inbuf), data_ofs, *pnum_data)
+ || smb_buffer_oob(bytes_end, data_ofs, *pnum_data)
|| smb_buffer_oob(*ptotal_data, *pdata_disp, *pnum_data)) {
return NT_STATUS_INVALID_NETWORK_RESPONSE;
}
- *pparam = (uint8_t *)inbuf + 4 + param_ofs;
- *pdata = (uint8_t *)inbuf + 4 + data_ofs;
+ *pparam = (uint8_t *)inhdr + param_ofs;
+ *pdata = (uint8_t *)inhdr + data_ofs;
return NT_STATUS_OK;
}
-static NTSTATUS cli_trans_pull_blob(TALLOC_CTX *mem_ctx,
- struct trans_recvblob *blob,
- uint32_t total, uint32_t thistime,
- uint8_t *buf, uint32_t displacement)
+static NTSTATUS smb1cli_trans_pull_blob(TALLOC_CTX *mem_ctx,
+ struct trans_recvblob *blob,
+ uint32_t total, uint32_t thistime,
+ uint8_t *buf, uint32_t displacement)
{
if (blob->data == NULL) {
if (total > blob->max) {
@@ -187,10 +208,10 @@ static NTSTATUS cli_trans_pull_blob(TALLOC_CTX *mem_ctx,
return NT_STATUS_OK;
}
-static void cli_trans_format(struct cli_trans_state *state, uint8_t *pwct,
- int *piov_count)
+static void smb1cli_trans_format(struct smb1cli_trans_state *state,
+ uint8_t *pwct,
+ int *piov_count)
{
- struct cli_state *cli = state->cli;
uint8_t wct = 0;
struct iovec *iov = state->iov;
uint8_t *pad = state->pad;
@@ -203,6 +224,7 @@ static void cli_trans_format(struct cli_trans_state *state, uint8_t *pwct,
uint32_t data_pad;
uint32_t useable_space;
uint8_t cmd;
+ uint32_t max_trans = smb1cli_conn_max_xmit(state->conn);
cmd = state->cmd;
@@ -215,7 +237,7 @@ static void cli_trans_format(struct cli_trans_state *state, uint8_t *pwct,
switch (cmd) {
case SMBtrans:
- if (cli_ucs2(state->cli)) {
+ if (smbXcli_conn_use_unicode(state->conn)) {
pad[0] = 0;
iov[0].iov_base = (void *)pad;
iov[0].iov_len = 1;
@@ -253,7 +275,7 @@ static void cli_trans_format(struct cli_trans_state *state, uint8_t *pwct,
}
param_offset += wct * sizeof(uint16_t);
- useable_space = cli_state_available_size(cli, param_offset);
+ useable_space = max_trans - param_offset;
param_pad = param_offset % 4;
if (param_pad > 0) {
@@ -263,7 +285,7 @@ static void cli_trans_format(struct cli_trans_state *state, uint8_t *pwct,
iov += 1;
param_offset += param_pad;
}
- useable_space = cli_state_available_size(cli, param_offset);
+ useable_space = max_trans - param_offset;
if (state->param_sent < state->num_param) {
this_param = MIN(state->num_param - state->param_sent,
@@ -274,7 +296,7 @@ static void cli_trans_format(struct cli_trans_state *state, uint8_t *pwct,
}
data_offset = param_offset + this_param;
- useable_space = cli_state_available_size(cli, data_offset);
+ useable_space = max_trans - data_offset;
data_pad = data_offset % 4;
if (data_pad > 0) {
@@ -284,7 +306,7 @@ static void cli_trans_format(struct cli_trans_state *state, uint8_t *pwct,
iov += 1;
data_offset += data_pad;
}
- useable_space = cli_state_available_size(cli, data_offset);
+ useable_space = max_trans - data_offset;
if (state->data_sent < state->num_data) {
this_data = MIN(state->num_data - state->data_sent,
@@ -382,23 +404,29 @@ static void cli_trans_format(struct cli_trans_state *state, uint8_t *pwct,
*piov_count = iov - state->iov;
}
-static void cli_trans_done(struct tevent_req *subreq);
+static void smb1cli_trans_done(struct tevent_req *subreq);
-struct tevent_req *cli_trans_send(
+struct tevent_req *smb1cli_trans_send(
TALLOC_CTX *mem_ctx, struct tevent_context *ev,
- struct cli_state *cli, uint8_t cmd,
+ struct smbXcli_conn *conn, uint8_t cmd,
+ uint8_t additional_flags, uint8_t clear_flags,
+ uint16_t additional_flags2, uint16_t clear_flags2,
+ uint32_t timeout_msec,
+ uint32_t pid, uint16_t tid, uint16_t uid,
const char *pipe_name, uint16_t fid, uint16_t function, int flags,
uint16_t *setup, uint8_t num_setup, uint8_t max_setup,
uint8_t *param, uint32_t num_param, uint32_t max_param,
uint8_t *data, uint32_t num_data, uint32_t max_data)
{
struct tevent_req *req, *subreq;
- struct cli_trans_state *state;
+ struct smb1cli_trans_state *state;
int iov_count;
uint8_t wct;
NTSTATUS status;
+ charset_t charset;
- req = tevent_req_create(mem_ctx, &state, struct cli_trans_state);
+ req = tevent_req_create(mem_ctx, &state,
+ struct smb1cli_trans_state);
if (req == NULL) {
return NULL;
}
@@ -411,33 +439,46 @@ struct tevent_req *cli_trans_send(
(unsigned)num_setup,
(unsigned)num_param, (unsigned)max_param,
(unsigned)num_data, (unsigned)max_data));
- tevent_req_nterror(req, NT_STATUS_INVALID_PARAMETER);
+ tevent_req_nterror(req, NT_STATUS_INVALID_PARAMETER_MIX);
return tevent_req_post(req, ev);
}
}
/*
* The largest wct will be for nttrans (19+num_setup). Make sure we
- * don't overflow state->vwv in cli_trans_format.
+ * don't overflow state->vwv in smb1cli_trans_format.
*/
if ((num_setup + 19) > ARRAY_SIZE(state->vwv)) {
- tevent_req_nterror(req, NT_STATUS_INVALID_PARAMETER);
+ tevent_req_nterror(req, NT_STATUS_INVALID_PARAMETER_MIX);
return tevent_req_post(req, ev);
}
- state->cli = cli;
+ state->conn = conn;
state->ev = ev;
state->cmd = cmd;
+ state->additional_flags = additional_flags;
+ state->clear_flags = clear_flags;
+ state->additional_flags2 = additional_flags2;
+ state->clear_flags2 = clear_flags2;
+ state->timeout_msec = timeout_msec;
state->flags = flags;
state->num_rsetup = 0;
state->rsetup = NULL;
+ state->pid = pid;
+ state->tid = tid;
+ state->uid = uid;
ZERO_STRUCT(state->rparam);
ZERO_STRUCT(state->rdata);
+ if (smbXcli_conn_use_unicode(conn)) {
+ charset = CH_UTF16LE;
+ } else {
+ charset = CH_DOS;
+ }
+
if ((pipe_name != NULL)
- && (!convert_string_talloc(state, CH_UNIX,
- cli_ucs2(cli) ? CH_UTF16LE : CH_DOS,
+ && (!convert_string_talloc(state, CH_UNIX, charset,
pipe_name, strlen(pipe_name) + 1,
&state->pipe_name_conv,
&state->pipe_name_conv_len))) {
@@ -461,19 +502,25 @@ struct tevent_req *cli_trans_send(
state->data_sent = 0;
state->rdata.max = max_data;
- cli_trans_format(state, &wct, &iov_count);
+ smb1cli_trans_format(state, &wct, &iov_count);
- subreq = cli_smb_req_create(state, ev, cli, cmd, 0, wct, state->vwv,
+ subreq = smb1cli_req_create(state, ev, conn, cmd,
+ state->additional_flags,
+ state->clear_flags,
+ state->additional_flags2,
+ state->clear_flags2,
+ state->timeout_msec,
+ state->pid, state->tid, state->uid,
+ wct, state->vwv,
iov_count, state->iov);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
- status = cli_smb_req_send(subreq);
- if (!NT_STATUS_IS_OK(status)) {
- tevent_req_nterror(req, status);
+ status = smb1cli_req_chain_submit(&subreq, 1);
+ if (tevent_req_nterror(req, status)) {
return tevent_req_post(req, state->ev);
}
- tevent_req_set_callback(subreq, cli_trans_done, req);
+ tevent_req_set_callback(subreq, smb1cli_trans_done, req);
/*
* Now get the MID of the primary request
@@ -482,30 +529,34 @@ struct tevent_req *cli_trans_send(
* SMB pdus using this MID in both directions
* (including correct SMB signing).
*/
- state->mid = cli_smb_req_mid(subreq);
- cli_smb_req_set_mid(subreq, state->mid);
+ state->mid = smb1cli_req_mid(subreq);
+ smb1cli_req_set_mid(subreq, state->mid);
state->primary_subreq = subreq;
- talloc_set_destructor(state, cli_trans_state_destructor);
+ talloc_set_destructor(state, smb1cli_trans_state_destructor);
return req;
}
-static void cli_trans_done2(struct tevent_req *subreq);
+static void smb1cli_trans_done2(struct tevent_req *subreq);
-static void cli_trans_done(struct tevent_req *subreq)
+static void smb1cli_trans_done(struct tevent_req *subreq)
{
- struct tevent_req *req = tevent_req_callback_data(
- subreq, struct tevent_req);
- struct cli_trans_state *state = tevent_req_data(
- req, struct cli_trans_state);
+ struct tevent_req *req =
+ tevent_req_callback_data(subreq,
+ struct tevent_req);
+ struct smb1cli_trans_state *state =
+ tevent_req_data(req,
+ struct smb1cli_trans_state);
NTSTATUS status;
bool sent_all;
- const uint8_t *inhdr;
+ struct iovec *recv_iov = NULL;
+ uint8_t *inhdr;
uint8_t wct;
uint16_t *vwv;
+ uint32_t vwv_ofs;
uint32_t num_bytes;
uint8_t *bytes;
- uint8_t *inbuf;
+ uint32_t bytes_ofs;
uint8_t num_setup = 0;
uint16_t *setup = NULL;
uint32_t total_param = 0;
@@ -517,8 +568,17 @@ static void cli_trans_done(struct tevent_req *subreq)
uint8_t *param = NULL;
uint8_t *data = NULL;
- status = cli_smb_recv(subreq, state, &inbuf, 0, &wct, &vwv,
- &num_bytes, &bytes);
+ status = smb1cli_req_recv(subreq, state,
+ &recv_iov,
+ &inhdr,
+ &wct,
+ &vwv,
+ &vwv_ofs,
+ &num_bytes,
+ &bytes,
+ &bytes_ofs,
+ NULL, /* pinbuf */
+ NULL, 0); /* expected */
/*
* Do not TALLOC_FREE(subreq) here, we might receive more than
* one response for the same mid.
@@ -532,13 +592,13 @@ static void cli_trans_done(struct tevent_req *subreq)
if (NT_STATUS_IS_ERR(status)) {
goto fail;
}
- inhdr = inbuf + NBT_HDR_SIZE;
sent_all = ((state->param_sent == state->num_param)
&& (state->data_sent == state->num_data));
- status = cli_pull_trans(
- inbuf, wct, vwv, num_bytes, bytes,
+ status = smb1cli_pull_trans(
+ inhdr, wct, vwv, vwv_ofs,
+ num_bytes, bytes, bytes_ofs,
state->cmd, !sent_all, &num_setup, &setup,
&total_param, &num_param, ¶m_disp, ¶m,
&total_data, &num_data, &data_disp, &data);
@@ -551,27 +611,34 @@ static void cli_trans_done(struct tevent_req *subreq)
int iov_count;
struct tevent_req *subreq2;
- cli_trans_format(state, &wct, &iov_count);
-
- subreq2 = cli_smb_req_create(state, state->ev, state->cli,
- state->cmd + 1, 0, wct, state->vwv,
+ smb1cli_trans_format(state, &wct, &iov_count);
+
+ subreq2 = smb1cli_req_create(state, state->ev, state->conn,
+ state->cmd + 1,
+ state->additional_flags,
+ state->clear_flags,
+ state->additional_flags2,
+ state->clear_flags2,
+ state->timeout_msec,
+ state->pid, state->tid, state->uid,
+ wct, state->vwv,
iov_count, state->iov);
if (tevent_req_nomem(subreq2, req)) {
return;
}
- cli_smb_req_set_mid(subreq2, state->mid);
+ smb1cli_req_set_mid(subreq2, state->mid);
- status = cli_smb_req_send(subreq2);
+ status = smb1cli_req_chain_submit(&subreq2, 1);
if (!NT_STATUS_IS_OK(status)) {
goto fail;
}
- tevent_req_set_callback(subreq2, cli_trans_done2, req);
+ tevent_req_set_callback(subreq2, smb1cli_trans_done2, req);
return;
}
- status = cli_trans_pull_blob(
+ status = smb1cli_trans_pull_blob(
state, &state->rparam, total_param, num_param, param,
param_disp);
@@ -580,7 +647,7 @@ static void cli_trans_done(struct tevent_req *subreq)
goto fail;
}
- status = cli_trans_pull_blob(
+ status = smb1cli_trans_pull_blob(
state, &state->rdata, total_data, num_data, data,
data_disp);
@@ -592,97 +659,112 @@ static void cli_trans_done(struct tevent_req *subreq)
if ((state->rparam.total == state->rparam.received)
&& (state->rdata.total == state->rdata.received)) {
state->recv_flags2 = SVAL(inhdr, HDR_FLG2);
- cli_trans_cleanup_primary(state);
+ smb1cli_trans_cleanup_primary(state);
tevent_req_done(req);
return;
}
- TALLOC_FREE(inbuf);
+ TALLOC_FREE(recv_iov);
return;
fail:
- cli_trans_cleanup_primary(state);
+ smb1cli_trans_cleanup_primary(state);
tevent_req_nterror(req, status);
}
-static void cli_trans_done2(struct tevent_req *subreq2)
+static void smb1cli_trans_done2(struct tevent_req *subreq2)
{
- struct tevent_req *req = tevent_req_callback_data(
- subreq2, struct tevent_req);
- struct cli_trans_state *state = tevent_req_data(
- req, struct cli_trans_state);
+ struct tevent_req *req =
+ tevent_req_callback_data(subreq2,
+ struct tevent_req);
+ struct smb1cli_trans_state *state =
+ tevent_req_data(req,
+ struct smb1cli_trans_state);
NTSTATUS status;
bool sent_all;
- uint8_t wct;
uint32_t seqnum;
/*
* First backup the seqnum of the secondary request
* and attach it to the primary request.
*/
- seqnum = cli_smb_req_seqnum(subreq2);
- cli_smb_req_set_seqnum(state->primary_subreq, seqnum);
--
Samba Shared Repository
More information about the samba-cvs
mailing list