1
0
mirror of https://github.com/samba-team/samba.git synced 2025-06-22 07:17:05 +03:00

282 Commits

Author SHA1 Message Date
Stefan Metzmacher
b764145ac8 s3:smbd: keep local and remote tsocket_address per connection
metze
2010-04-27 17:22:31 +02:00
Jeremy Allison
a796542a93 Implement oplocks within SMB2. Plumb into the existing SMB1 oplock system.
Seems to work but needs more tests (to be added).

Jeremy.
2010-04-24 00:29:41 -07:00
Jeremy Allison
2bbb8c917e Allow smb2 create requests to be cancelled.
Jeremy.
2010-04-23 13:10:15 -07:00
Jeremy Allison
8f67f873ac Make deferred opens (NT_STATUS_SHARING_VIOLATION) work over SMB2.
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-22 23:52:19 -07:00
Jeremy Allison
bf45b4f4fd First part of fix for bug #7331 - Compound async SMB 2 requests don't work 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-17 21:20:17 -07:00
Jeremy Allison
7984243768 Move to using 64-bit mid values in our internal open file database.
This will allow us to share logic much easier between SMB1 and SMB2
servers.

Jeremy
2010-04-12 21:40:28 -07:00
Jeremy Allison
e15939b456 Plumb SMB2 stubs into all the places we defer SMB1 operations.
Rename functions to be internally consistent. Next step is
to cope queueing single (non-compounded) SMB2 requests to
put some code inside the stubs.

Jeremy.
2010-04-09 19:26:34 -07:00
Jeremy Allison
08b24e923d Stop smb2 from calling into smb1 blocking lock request code.
Allocate a uint16_t internal SMB1 mid for an SMB2 request.
Add a back pointer from the faked up smb_request struct
to the smb2 request.

Getting ready to add restart code for blocking locks,
share mode violations and oplocks in SMB2.

Jeremy.
2010-04-08 22:15:55 -07:00
Jeremy Allison
3491f6d119 Simplify call_trans2qfilepathinfo() and smbd_do_qfilepathinfo()
Remove the bool ms_dfs_link parameter from smbd_do_qfilepathinfo.
It is not possible for this to be a DFS link. Remove the check_msdfs_link()
call from call_trans2qfilepathinfo() - the call to filename_convert()
above with a ucf_flags of zero *MUST* catch a DFS link and return
NT_STATUS_PATH_NOT_COVERED in this case, so the code below checking
for msdfs links is redundent. Don't add this to 3.5.x, as it's an
optimization but not needed to fix bug #7339 - MSDFS is non-functional in 3.5.x.

Jeremy.
2010-04-08 21:24:23 -07:00
Jeremy Allison
3413cf7a6b Start to plumb smb2 into the oplock system. Calls dummy functions for now.
Jeremy.
2010-04-07 19:00:44 -07:00
Jeremy Allison
6800fdbb81 Make smbd_lock_socket/smbd_unlock_socket recursive with a ref_count.
As these always call exit_server, make that part of the function.
Use _internal functions for the echo client.

Metze please check !

Jeremy.
2010-03-31 17:40:30 -07:00
Stefan Metzmacher
44d655b33f s3:smbd: add echo handler information to struct smbd_server_connection
metze
2010-03-22 17:15:12 +01:00
Stefan Metzmacher
8de8554628 s3:smbd: add smbd_[un]lock_socket() dummies
metze
2010-03-22 17:15:11 +01:00
Volker Lendecke
d6a6872506 s3: Abstract access to sessionid.tdb, similar to conn_tdb.c 2010-03-01 17:53:22 +01:00
Jeremy Allison
2f30aea332 Remove the global char *LastDir.
This is no longer used for anything.
2010-01-12 14:48:23 -08:00
Volker Lendecke
0f8e2a6ebb Revert "s3: Move the global variable Protocol to struct smbd_server_connection"
This reverts commit c85a4c9ba4a7de65a7850f6f9708df66bd24deea.
2009-11-23 16:34:59 +01:00
Volker Lendecke
c85a4c9ba4 s3: Move the global variable Protocol to struct smbd_server_connection 2009-11-21 20:49:17 +01:00
Stefan Metzmacher
e621b7a52e s3:smbd: add a generic smbd_dirptr_lanman2_entry() function
This can we used by SMB2, the key difference between
SMB1 and SMB2 is that with SMB2 entries are aligned
to 8 bytes and there's no padding at the end of the last entry.

metze
2009-08-19 22:12:42 +02:00
Stefan Metzmacher
b70ae644ed s3:smbd: make smbd_check_open_rights() function non-static for use in SMB2
metze
2009-08-19 19:28:24 +02:00
Stefan Metzmacher
47452b8cec s3:smbd: add smbd_notify_cancel_by_smbreq()
This function will be used by the SMB2 notify code.

metze
2009-08-17 09:25:45 +02:00
Stefan Metzmacher
d60f049eaf s3:smbd: implement SMB2 Cancel correctly.
metze
2009-08-17 09:25:45 +02:00
Jeremy Allison
6a0c2946be Fix BASE-DELAYWRITE test by removing const from struct smb_filename
in smbd_do_qfilepathinfo(). update_stat_ex_mtime() modifies the
stat struct inside the smb_fname so don't make a copy of that
stat struct, use it directly - it's meant to be updated and
represent the state of the file we're returning.
Jeremy.
2009-08-12 15:08:23 -07:00
Stefan Metzmacher
9aa1d25907 s3:smbd: rename conn => sconn for smbd_server_connection structs
This should avoid confusion between smbd_server_connection
and connection_struct variables.

metze
2009-08-08 10:48:39 +02:00
Stefan Metzmacher
59c3f5e3ca s3:smbd: move dptr globals into struct smbd_server_connection
metze
2009-08-07 14:18:17 +02:00
Stefan Metzmacher
daa71c4236 s3:smbd: add generic smbd_dirptr_get_entry()
metze
2009-08-07 14:18:15 +02:00
Tim Prouty
4b42927ec3 s3: Convert some callers of vfs_stat_smb_fname to SMB_VFS_STAT() 2009-07-22 09:51:17 -07:00
Stefan Metzmacher
ed99bf7317 s3:smbd: make smbd_do_qfsinfo() non static for use in SMB2 GetInfo
metze
2009-07-13 14:13:06 +02:00
Stefan Metzmacher
7d735519d7 s3:smbd: make smbd_do_setfilepathinfo() non static for use in SMB2 SetInfo
metze
2009-07-13 11:18:59 +02:00
Stefan Metzmacher
0ba532e1b2 s3:smbd: make smbd_do_qfilepathinfo() non static for use in SMB2
metze
2009-07-12 16:55:22 +02:00
Stefan Metzmacher
8d534d45a5 s3:smbd: make smbd_do_locking() non static
metze
2009-07-10 12:24:24 +02:00
Stefan Metzmacher
909d42278a s3:smbd: add marshalling layer for SMB2 Lock support
metze
2009-07-02 22:25:49 +02:00
Stefan Metzmacher
bc957dc4eb s3:smbd: add marshalling layer for SMB2 Find (QueryDirectory) support
metze
2009-07-02 22:25:49 +02:00
Stefan Metzmacher
74860465ac s3:smbd: add marshalling layer for SMB2 Break support (SMB 2.002 only)
metze
2009-07-02 22:25:49 +02:00
Stefan Metzmacher
d37709d38b s3:smbd: add marshalling layer for SMB2 SetInfo support
metze
2009-07-02 22:25:49 +02:00
Stefan Metzmacher
1df9cb6bc9 s3:smbd: add marshalling layer for SMB2 GetInfo support
metze
2009-07-02 22:25:48 +02:00
Stefan Metzmacher
d49a0e5f7d s3:smbd: add support for SMB2 Notify
metze
2009-07-02 09:13:56 +02:00
Stefan Metzmacher
f62a331045 s3:smbd: move global notify_changes_by_mid to smbd_server_connection
metze
2009-07-02 09:10:58 +02:00
Stefan Metzmacher
3b25d868ee s3:smbd: add support for async interim SMB2 responses and prepare SMB2 cancel
metze
2009-06-24 21:04:57 +02:00
Stefan Metzmacher
754db207f6 s3:smbd: keep a list of outstanding SMB2 requests
metze
2009-06-24 21:04:57 +02:00
Stefan Metzmacher
bea384b277 s3:smbd: add smbd_smb2_send_oplock_break()
metze
2009-06-24 21:04:56 +02:00
Stefan Metzmacher
c0b64051d3 s3:smbd: more validation of the incoming SMB2 requests
metze
2009-06-09 19:51:02 +02:00
Stefan Metzmacher
76acd7bfad s3:smbd: keep the chain_fsp for SMB2 requests
metze
2009-06-05 20:17:43 +02:00
Stefan Metzmacher
fabdebdcf4 s3:smbd: add support for SMB2 Ioctl
We don't implement any level yet.

metze
2009-06-05 17:50:48 +02:00
Stefan Metzmacher
1b806d83b7 s3:smbd: make smbd_server_connection_terminate() a macro
metze
2009-06-05 11:31:15 +02:00
Stefan Metzmacher
160ead46dc s3:smbd: implement smbd_smb2_request_error/done() as macros on top of the _ex() function
metze
2009-06-05 11:31:03 +02:00
Jeremy Allison
73e3c85aba Change smbd_smb2_request_error() to add a __location__.
This allows quick identification of smb2 parsing errors.
Jeremy.
2009-06-04 12:47:17 -07:00
Stefan Metzmacher
bfd1f5ddc6 s3:smbd: implement SMB2 Write
This only works on file shares.

metze
2009-06-03 17:54:40 +02:00
Stefan Metzmacher
4101f539bf s3:smbd: implement SMB2 Read
This only works works on file shares.

metze
2009-06-03 17:54:40 +02:00
Stefan Metzmacher
0ccef51cbe s3:smbd: implement SMB2 Flush
This works only on file shares yet.

metze
2009-06-03 17:54:40 +02:00
Stefan Metzmacher
ec0553bb6e s3:smbd: implement SMB2 Close
metze
2009-06-03 17:54:40 +02:00