summaryrefslogtreecommitdiff
path: root/source3/smbd/reply.c
AgeCommit message (Collapse)AuthorFilesLines
2010-03-10Fix bug #7234 - Symlink delete fails but incorrectly reports success to client.Jeremy Allison1-1/+1
Typo called LSTAT instead of STAT in the unlink by pathname path. Jeremy.
2010-03-05Fix for bug #7189 - Open txt files with notepad on samba shares creates problem.Jeremy Allison1-2/+16
Ensure we don't use any of the create_options for Samba private use. Add a new parameter to the VFS_CREATE call (private_flags) which is only used internally. Renumber NTCREATEX_OPTIONS_PRIVATE_DENY_DOS and NTCREATEX_OPTIONS_PRIVATE_DENY_FCB to match the S4 code). Rev. the VFS interface to version 28. Jeremy.
2010-02-12s3/smbd: change locking behavior when "lock spin time = 0".Steven Danneman1-6/+15
The "lock spin time" parameter mimics the following Windows setting which by default is 250ms in Windows and 200ms in Samba. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\LockViolationDelay When a client sends repeated, non-blocking, contending BRL requests to a Windows server, after the first Windows starts treating these requests as timed blocking locks with the above timeout. As an efficiency, I've changed the behavior when this setting is 0, to skip this logic and treat all requests as non-blocking locks. This gives the smbd server behavior similar to the 3.0 release with the do_spin_lock() implementation. I've also changed the blocking lock parameter in the call from push_blocking_lock_request() to true as all requests made in this path are blocking by definition.
2010-01-12Fix bug #7033 - SMBrmdir call always returns true, even on failure to delete ↵Jeremy Allison1-2/+6
a directory. There is a codepath missing to propagate back error returns from the rmdir POSIX call inside close_directory when delete on close is set. This means doing an rmdir on a Windows command line will always report success, even when the directory was not deleted. This fix adds that codepath back into Samba. Jeremy.
2009-12-21Rename reply_doserror() -> reply_force_doserror().Jeremy Allison1-12/+12
Rewrite all calls to reply_nterror(NT_STATUS_DOS()) to reply_force_doserror() and update the comment in smbd/error.c Jeremy.
2009-12-21Remove all calls to reply_doserror - turn them intoJeremy Allison1-46/+47
correct reply_nterror calls. Next rename reply_doserror -> reply_force_doserror and plumb in when NT_STATUS_DOS is used. Jeremy.
2009-12-18reply_doserror() doesn't force DOS errors on the wire.Jeremy Allison1-10/+10
Start migrating uses of reply_doserror() to reply_nterror() with the correct mapping. Eventually we'll get to the point where we can change reply_doserror() to force a DOS error code on the wire, and can change calls to reply_nterror(req, NT_STATUS_DOS()) - which *does* force DOS errors on the wire - to reply_doserror(). Which might actually make the server code look like it's making sense. Jeremy.
2009-12-04Make Samba3 pass the RAW-LOCK test as Windows.Jeremy Allison1-0/+24
Implement the win7 NT_STATUS_INVALID_LOCK_RANGE. Make smbd behave as Windows does in canceling locks. Jeremy.
2009-12-03Refactor reply_rmdir to use handle based code. AllJeremy Allison1-260/+40
calls are now handle based. Put rmdir into close.c and make it private. Jeremy.
2009-12-02Remove unneeded argument from can_set_delete_on_close(). EnsureJeremy Allison1-19/+11
can_set_delete_on_close() is correctly called before any setting of the disposition bit (clean up the do_unlink() call). Jeremy.
2009-11-23Revert "s3: Make the implicit reference to Protocol in mask_match() explicit"Volker Lendecke1-4/+3
This reverts commit e23d8a3d1f558a7e98ef2afd71e1d15c5b3a71bc.
2009-11-23Revert "s3: Make the implicit reference to Protocol in is_in_path() explicit"Volker Lendecke1-2/+1
This reverts commit f7b4151a64d8c6851e62255a7139fd00a5fc63a3.
2009-11-23Revert "s3: Make the implicit reference to get_Protocol in lp_use_sendfile() ↵Volker Lendecke1-4/+2
explicit" This reverts commit 6a149022976fe6a5579ec9afc7a4d2dcb44dc8af.
2009-11-23Revert "s3: Move the global variable Protocol to struct smbd_server_connection"Volker Lendecke1-17/+11
This reverts commit c85a4c9ba4a7de65a7850f6f9708df66bd24deea.
2009-11-21s3: Move the global variable Protocol to struct smbd_server_connectionVolker Lendecke1-11/+17
2009-11-21s3: Make the implicit reference to get_Protocol in lp_use_sendfile() explicitVolker Lendecke1-2/+4
2009-11-21s3: Make the implicit reference to Protocol in is_in_path() explicitVolker Lendecke1-1/+2
2009-11-21s3: Make the implicit reference to Protocol in mask_match() explicitVolker Lendecke1-3/+4
2009-11-21s3: Tune if-conditions in a very hot codepathVolker Lendecke1-1/+1
This looks innocent, but it is visible in a netbench run. Due to boolean short-circuiting we don't have to execute the conditions on the right-hand side of the &&. So putting the less likely condition left gains a bit.
2009-11-18s3: Do not talloc in readdirVolker Lendecke1-43/+51
This is a hot codepath (called from the stat cache)
2009-11-17Start removing SMB_STRUCT_STAT variables except forJeremy Allison1-15/+13
the directory enumeration code (which needs it). Jeremy.
2009-11-17Remove "store create time" code, cause create time to be storedJeremy Allison1-2/+1
in the "user.DOSATTRIB" EA. From the docs: In Samba 3.5.0 and above the "user.DOSATTRIB" extended attribute has been extended to store the create time for a file as well as the DOS attributes. This is done in a backwards compatible way so files created by Samba 3.5.0 and above can still have the DOS attribute read from this extended attribute by earlier versions of Samba, but they will not be able to read the create time stored there. Storing the create time separately from the normal filesystem meta-data allows Samba to faithfully reproduce NTFS semantics on top of a POSIX filesystem. Passes make test but will need more testing. Jeremy.
2009-11-16Don't overwrite a dynamic pointer with the address of a stackJeremy Allison1-8/+5
variable. Jeremy.
2009-11-05Got the logic simplification worked out so we still passJeremy Allison1-3/+3
BASE-DELAYWRITE and also RAW-CLOSE. Jeremy.
2009-11-05Revert commit "0551284dc08eb93ef7b2b2227a45e5ec21d482fb" - simplifyJeremy Allison1-3/+3
the logic. This was incorrect (I'll revisit this tomorrow). Jeremy.
2009-11-05Simplify the logic - remove extraneous argument and calls to ↵Jeremy Allison1-3/+3
set_close_write_time(). We were treating a file time set on close as a sticky write time set, and I don't think it is. I will add a torture test later to RAW-CLOSE to confirm this. Jeremy.
2009-11-05Get closer to an accurate model of Windows timestamp changes.Jeremy Allison1-3/+3
"Normal" non truncate writes always cause the timestamp to be set on close. Once a close is done on a handle this can reset the sticky write time to current time also. Updated smbtorture4 confirms this. Jeremy.
2009-11-04Remove "Protocol" as an extern, and add accessor functions.Jeremy Allison1-7/+5
Jeremy.
2009-10-08Cope with old CIFSFS clients that use SMBunlink to removeJeremy Allison1-2/+11
symlinks instead of trans2:posix_unlink. Jeremy.
2009-10-02Remove lots of duplicate code and move it into oneJeremy Allison1-60/+21
function vfs_stat_fsp(). Stops code looking at fsp->posix_open except for exceptional circumstances. Jeremy.
2009-08-28s3: Add a new VFS op called SMB_VFS_TRANSLATE_NAMEAravind Srinivasan1-8/+42
This vop is designed to work in tandem with SMB_VFS_READDIR to allow vfs modules to make modifications to arbitrary filenames before they're consumed by callers. Subsequently the core directory enumeration code in smbd is now changed to free the memory that may be allocated in a module. This vop enables the new version of catia in the following patch. Signed-off-by: Tim Prouty <tprouty@samba.org>
2009-08-27s3:streams: check for :$DATA only in the backend (fix bug #6642)Stefan Metzmacher1-3/+0
We need to allow "\\$Extend\\$Quota:$Q:$INDEX_ALLOCATION" to pass check_path(), so that the Quota Dialog works. metze
2009-08-12Add "store create time" parameter (docs to follow)Jeremy Allison1-1/+1
that stores the create time in the user.DosTimestamps EA. Jeremy.
2009-08-10Refactor the use of create_time and change time to goJeremy Allison1-1/+1
through functions. Will aid in making us pass RAW-SETFILEINFO. Jeremy.
2009-08-07s3:smbd: move dptr globals into struct smbd_server_connectionStefan Metzmacher1-12/+15
metze
2009-08-07s3:smbd: remove dirptr and dirpath from connection_structStefan Metzmacher1-14/+19
They're both only used in the context of a function, so we can make them stack variables. metze
2009-08-07s3:smbd: add a smbd_server_connection pointer to connection_structStefan Metzmacher1-3/+2
This can be NULL for faked connection structs used in the rpc server or printing code. metze
2009-07-28Added prefer_ipv4 bool parameter to resolve_name().Jeremy Allison1-1/+1
W2K3 DC's can have IPv6 addresses but won't serve krb5/ldap or cldap on those addresses. Make sure when we're asking for DC's we prefer IPv4. If you have an IPv6-only network this prioritizing code will be a no-op. And if you have a mixed network then you need to prioritize IPv4 due to W2K3 DC's. Jeremy.
2009-07-24s3: Convert a few callers of unix_convert() over to filename_convert()Tim Prouty1-73/+39
This patch also changes the unix convert flags to make sure the correct semantics are preservered for allowing/disallowing wildcards in the last component of the path.
2009-07-24s3: Simplify rename_internals() by passing in smb_filename structsTim Prouty1-51/+37
2009-07-24s3: Allow filename_convert() to pass through unix_convert_flags and let the ↵Tim Prouty1-0/+18
caller know if the path has a wildcard This also eliminates the need for resolve_dfspath().
2009-07-21s3: Remove unnecessary callers of get_full_smb_filenameTim Prouty1-59/+27
This often times means explicitly denying certain operations on a stream as they are not supported or don't make sense at a particular level. At some point in the future these can be enabled, but for now it's better to remove ambiguity
2009-07-21s3: Remove the now unused fname parameter from filename_convert()Tim Prouty1-18/+9
2009-07-21s3: Plumb smb_filename through map_open_params_to_ntcreateTim Prouty1-9/+10
2009-07-20s3: Change fsp->fsp_name to be an smb_filename struct!Tim Prouty1-82/+57
2009-07-15Fix bug #6551 - win98 clients cannot connect after server upgrade to ↵Jeremy Allison1-0/+2
samba-3.4.0. The values of vuid and tid were not being correctly updated in the struct smb_request when passed to chain_reply inside sessionsetupX and tconX. Jeremy.
2009-07-14Create a talloc_stackframe for each file in wildcard unlinkVolker Lendecke1-0/+10
There might be *many* files to delete
2009-07-10Remove reply_unixerror() - no longer needed. Should make Metze's refactoring ↵Jeremy Allison1-30/+42
a lot easier. Jeremy.
2009-07-10s3:smbd: make smbd_do_locking() non staticStefan Metzmacher1-16/+9
metze
2009-07-10s3:smbd: abstract the main locking logic from the LockingAndX parsingStefan Metzmacher1-178/+254
This prepares SMB2 Lock support. metze