summaryrefslogtreecommitdiff
path: root/source3/smbd/smb2_server.c
AgeCommit message (Collapse)AuthorFilesLines
2010-06-14SMB2 correctness fix. As we've already returned the credits in an interimJeremy Allison1-0/+2
response, don't add more in the final return. Jeremy.
2010-06-10Ensure we correctly setup req->subreq before testing for async. Stops ↵Jeremy Allison1-4/+4
crashes when XX_send functions set async to stop interim replies being sent. Jeremy.
2010-06-08Second part of fix for 7501 - SMB2: CREATE request replies getting mangled.Jeremy Allison1-67/+67
Based on code from Ira Cooper <samba@ira.wakeful.net>, and also advice on refactoring the patch into a function call. outbuf vectors can be reallocated by smb2 processing code, so when returning interim responses we must not make assumptions about vector size. Jeremy
2010-06-08Fix for bug 7501 - SMB2: CREATE request replies getting mangled.Ira Cooper1-3/+1
Code for dup_smb2_req() was duplicating the wrong vector (i, instead of i+2) when returning a non-minimal SMB2 response.
2010-06-02Ensure we remove SMB2 cancel requests from the active queueJeremy Allison1-0/+1
now we don't remove them in the talloc destructor. Jeremy.
2010-06-02Fix a crash bug found by Ira Cooper <samba@ira.wakeful.net>.Jeremy Allison1-4/+5
A create call comes in, goes async (on the oplock request). At a later time (just before a cancel request is received) it completes, and goes through smbd_smb2_request_reply() to send the reply to the create call. However, the output socket queue is full, so when tstream_writev_queue_send() is called from smbd_smb2_request_reply(), the smb2req stays on the "being processed" queue on sconn->smb2.requests, as only when tstream_writev_queue_send() completes is smbd_smb2_request_writev_done() get called, which will TALLOC_FREE the smb2req (and thus take if off the queue). The cancel comes in, gets processed and looks through the requests on the queue, and BANG - hits the smb2req that has already been processed and is outgoing.... Remove the request from the queue once tstream_writev_queue_send() is called and not in the talloc destructor function. Jeremy.
2010-05-19(Finally) fix bug #7158 - SMB2 connection resets during IOZone tests from ↵Jeremy Allison1-1/+2
64-bit Vista client It turns out that the persistent handles are used by the Microsoft redirector to index files on oplock break requests. So even if we don't do durable handles (yet) we must set the persistent handle on create. For now just use the same handle value as we use for volatile. Jeremy.
2010-05-18Keep track of credits we're giving out. Set initial credits to 1 (MS-SMB2 ↵Jeremy Allison1-1/+8
spec required). Jeremy.
2010-05-07Make us pass all SMB2 lock tests except MULTIPLE-UNLOCK and CONTEXT. Them ↵Jeremy Allison1-0/+8
next :-). Jeremy.
2010-04-28Update (C) for 2010.Jeremy Allison1-0/+1
Jeremy.
2010-04-27Don't return an intermediate reply on async on a pipe call (Windows doesn't).Jeremy Allison1-0/+5
Jeremy.
2010-04-24Implement oplocks within SMB2. Plumb into the existing SMB1 oplock system.Jeremy Allison1-3/+2
Seems to work but needs more tests (to be added). Jeremy.
2010-04-23When sending the initial async response, this is never part of a chain.Jeremy Allison1-1/+1
Get the reply flags correct. Jeremy.
2010-04-22Make deferred opens (NT_STATUS_SHARING_VIOLATION) work over SMB2.Jeremy Allison1-8/+9
Makes SMB2Create call re-entrant internally. Now this infrastructure is in place, oplocks will follow shortly. Tested with Win7 client and with W2K8R2. Jeremy.
2010-04-19Now SMB2 error messages are correctly being returned with the 1 byte data ↵Jeremy Allison1-51/+49
area, smbd_smb2_request_error_ex() must call smbd_smb2_request_done_ex() in order to do the padding correctly on compound replies. Jeremy.
2010-04-19Ensure vectors are always allocated with consistent size. Removes one byte ↵Jeremy Allison1-20/+60
alloc on SMB2 error packet. Always use talloc_zero_array on out vectors - fixes valgrind errors in tevent writes. Jeremy.
2010-04-19Remove an unused auto variable.Jeremy Allison1-3/+0
Jeremy.
2010-04-19s3-smb2: fix some c++ warnings.Günther Deschner1-3/+3
Guenther
2010-04-18Final fix for #7331 - Compound async SMB 2 requests don't work right.Jeremy Allison1-4/+13
Don't free the cancelled SMB2 req early, let the cancelation function take care of it. Return a NT_STATUS_CANCELLED when we find and cancel a request. Fix our SMB2 error returns to correctly set the structuresize to 9, and add the expected zero byte (see section 2.2.2 in the SMB2 spec.). This causes Samba to pass the test program in this bug report that W2K8R2 fails (heh heh :-). This is because we always cause compound requests to get to a cancelation point before dealing with a cancel request. Jeremy.
2010-04-17Second part of fix for bug #7331 - Compound async SMB 2 requests don't work ↵Jeremy Allison1-58/+158
right. Cause us to match W2K8R2 by sending an interim compound reply followed by a async reply. Jeremy.
2010-04-17First part of fix for bug #7331 - Compound async SMB 2 requests don't work ↵Jeremy Allison1-86/+320
right. Gets us handling SMB2 compound async requests similar to W2K8R2 (and triggers the same client bug in the Win7 redirector). Great thanks to Ira Cooper <samba@ira.wakeful.net> for helping with this and to Metze for the wonderful async framework. The one thing I need to fix to make us identical to W2K8R2 is that when a compound request goes async at the end W2K8R2 splits the replies up into a compound non-async reply followed by a separate async reply. Currently we're doing the whole thing in a compound reply. Jeremy.
2010-04-07Don't forget to initialize *p_creds_requested.Jeremy Allison1-0/+1
Jeremy.
2010-04-06Ensure we total up the correct number of creds requested in a compound request.Jeremy Allison1-1/+7
2010-03-31Make smbd_lock_socket/smbd_unlock_socket recursive with a ref_count.Jeremy Allison1-1/+1
As these always call exit_server, make that part of the function. Use _internal functions for the echo client. Metze please check ! Jeremy.
2010-02-24Change the credential handling so that we start with maxmux creds,Jeremy Allison1-7/+10
and then return to the client the number of credits per operation that they asked for. This is a more sensible algorithm than just blindly returning "20" on every reply, although we will probably still need more changes to this going forward. Jeremy.
2009-08-17s3:smbd: implement SMB2 Cancel correctly.Stefan Metzmacher1-4/+13
metze
2009-08-14s3:smbd: allow SMB2 Cancel to have the async flag setStefan Metzmacher1-6/+8
metze
2009-08-14s3:smbd: fix parsing of the SMB2 bodyStefan Metzmacher1-5/+7
Maybe there's no dynamic part on the wire. metze
2009-08-12libcli: move some common SMB and SMB2 stuff into libcli/smb/Stefan Metzmacher1-1/+1
This will hold code that's shared between source3 and source4. metze
2009-08-08s3:smbd: rename conn => sconn for smbd_server_connection structsStefan Metzmacher1-56/+56
This should avoid confusion between smbd_server_connection and connection_struct variables. metze
2009-07-24Fix a few uninitialized variable warningsVolker Lendecke1-1/+1
I know those warnings are bogus, but both Coverity and gcc don't get it.
2009-07-10s3:smbd: fix parsing of invalid SMB2 requests.Stefan Metzmacher1-2/+2
Because of 0 - 2 => 0xFFFFFFFE, we got EMSGSIZE from the tstream layer. And terminate the transport connection. Instead we should let the caller deal with the invalid parameter, when checking the body size. So the caller always gets at least a 2 byte body. metze
2009-07-02s3:smbd: add marshalling layer for SMB2 Lock supportStefan Metzmacher1-1/+1
metze
2009-07-02s3:smbd: add marshalling layer for SMB2 Find (QueryDirectory) supportStefan Metzmacher1-1/+1
metze
2009-07-02s3:smbd: add marshalling layer for SMB2 Break support (SMB 2.002 only)Stefan Metzmacher1-1/+1
metze
2009-07-02s3:smbd: add marshalling layer for SMB2 SetInfo supportStefan Metzmacher1-1/+1
metze
2009-07-02s3:smbd: add marshalling layer for SMB2 GetInfo supportStefan Metzmacher1-1/+1
metze
2009-07-02s3:smbd: add support for SMB2 NotifyStefan Metzmacher1-1/+1
metze
2009-06-24s3:smbd: add support for async interim SMB2 responses and prepare SMB2 cancelStefan Metzmacher1-1/+155
metze
2009-06-24s3:smbd: keep a list of outstanding SMB2 requestsStefan Metzmacher1-28/+65
metze
2009-06-24s3:smbd: add smbd_smb2_send_oplock_break()Stefan Metzmacher1-0/+88
metze
2009-06-24s3:smbd: the SMB2-COMPOUND test shows that the related vs. unrelated flags ↵Stefan Metzmacher1-0/+7
isn't checked first metze
2009-06-09s3:smbd: only check the next_status for related requestsStefan Metzmacher1-11/+12
metze
2009-06-09s3:smbd: response with the same SMB2 flags as given by the clientStefan Metzmacher1-1/+4
...but also add the response flag. metze
2009-06-09s3:smbd: only pass the chained file handle for related compounded SMB2 requestsStefan Metzmacher1-0/+4
metze
2009-06-09s3:smbd: make sure we pad compounded SMB2 responses to 8 bytesStefan Metzmacher1-2/+47
metze
2009-06-09s3:smbd: more validation of the incoming SMB2 requestsStefan Metzmacher1-4/+94
metze
2009-06-09s3:smbd: for now ignore all non NBT Session Message requests for SMB2Stefan Metzmacher1-0/+9
metze
2009-06-09s3:smbd: don't include 1 byte padding for the dynamic buffer of SMB2 responsesStefan Metzmacher1-21/+9
It seems that Windows 2008 and Windows 7 doesn't do this anymore. metze
2009-06-05s3:smbd: fix the logic for compounded requestsStefan Metzmacher1-1/+1
metze