[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, &param_disp, &param,
 		&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