summaryrefslogtreecommitdiff
path: root/source3/smbd/reply.c
AgeCommit message (Collapse)AuthorFilesLines
2009-02-21s3: If sendfile returns 0 bytes read, fall back to the normal read pathTim Prouty1-0/+24
This allows sendfile implementations that are atomic to avoid having to send zeros or kill the client connection on a short read (usually the file was truncated).
2009-02-19S3: Make changes to perfcount API set for when a single request leads to ↵todd stecher1-2/+15
multiple replies (e.g. reply_echo). Change test and onefs modules to match new api set (thanks Volker!).
2009-02-13s3: Fix uninitialized variable warning (and bug).Zack Kirsch1-1/+1
2009-02-13Add VFS ops for Windows BRL: Lock, Unlock and Cancel:Zack Kirsch1-4/+14
This patch adds 3 new VFS OPs for Windows byte range locking: BRL_LOCK_WINDOWS, BRL_UNLOCK_WINDOWS and BRL_CANCEL_WINDOWS. Specifically: * I renamed brl_lock_windows, brl_unlock_windows and brl_lock_cancel to *_default as the default implementations of the VFS ops. * The blocking_lock_record (BLR) is now passed into the brl_lock_windows and brl_cancel_windows paths. The Onefs implementation uses it - future implementations may find it useful too. * Created brl_lock_cancel to do what brl_lock/brl_unlock do: set up a lock_struct and call either the Posix or Windows lock function. These happen to be the same for the default implementation. * Added helper functions: increment_current_lock_count() and decrement_current_lock_count(). * Minor spelling correction in brl_timeout_fn: brl -> blr. * Changed blocking_lock_cancel() to return the BLR that it has cancelled. This allows us to assert its the lock that we wanted to cancel. If this assert ever fires, this path will need to take in the BLR to cancel, rather than choosing on its own. * Adds a small helper function: find_blocking_lock_record_by_id(). Used by the OneFS implementation, but could be useful for others.
2009-02-09s3: Added SMB_VFS_INIT_SEARCH_OP to initialize data at the beginning of SMB ↵Steven Danneman1-0/+3
search requests. By default this VFS call is a NOOP, but the onefs vfs module takes advantage of it to initialize direntry search caches at the beginning of each TRANS2_FIND_FIRST, TRANS2_FIND_NEXT, SMBffirst, SMBsearch, and SMBunique
2009-02-09Pass stat buffer down through all levels of VFS_READDIR wrappersSteven Danneman1-10/+11
* VFS_OP_READDIR can now provide stat information, take advantage of it if it's available * is_visible_file(): optimistically expect the provided stat buffer is already valid * dptr_ReadDirName(): refactor code for easier readability, functionality is the same
2009-02-09s3 oplocks: Make the level2 oplock contention API more granularTim Prouty1-11/+0
This replaces release_level2_oplocks_on_change with contend_level2_oplock_begin/end in order to contend level2 oplocks throughout an operation rather than just at the begining. This is necessary for some kernel oplock implementations, and also lays the groundwork for better correctness in Samba's standard level2 oplock handling. The next step for non-kernel oplocks is to add additional state to the share mode lock struct that prevents any new opens from granting oplocks while a contending operation is in progress. All operations that contend level 2 oplocks are now correctly spanned except for aio and synchronous writes. The two write paths both have non-trivial error paths that need extra care to get right. RAW-OPLOCK and the rest of 'make test' are still passing with this change.
2009-02-09S3: New module interface for SMB message statistics gatheringtodd stecher1-3/+7
This changelist allows for the addition of custom performance monitoring modules through smb.conf. Entrypoints in the main message processing code have been added to capture the command, subop, ioctl, identity and message size statistics.
2009-02-04Fix bug #Bug 6090 renaming or deleting a "not matching/resolving" symlink is ↵Jeremy Allison1-6/+28
failing. Reported by Kukks. Make sure we correctly use LSTAT in all cases where POSIX pathnames are being used. This matters when dealing with symlinks pointing to invalid paths being renamed or deleted not all deletes and renames are done via an nt_create open. Jeremy.
2009-01-31make send_file_readbraw staticVolker Lendecke1-6/+6
2009-01-31Remove the global variable "chain_size"Volker Lendecke1-3/+4
2009-01-29s3: Add a new SMB_VFS_GET_ALLOC_SIZE vfs operationTim Prouty1-2/+2
This allows module implementors to customize what allocation size is returned to the client.
2009-01-23Extend NTIMES to allow setting create_timetodd stecher1-20/+26
1) Add in smb_file_time struct to clarify code and make room for createtime. 2) Get and set create time from SMB messages. 3) Fixup existing VFS modules + examples Some OS'es allow for the setting of the birthtime through kernel interfaces. This value is generically used for Windows createtime, but is not settable in the code today.
2009-01-16Correctly calculate the offset for read&xVolker Lendecke1-6/+11
2009-01-13Only call sendfile_short_read() if we need it.Jeremy Allison1-2/+6
Jeremy.
2009-01-13Fix bug noticed by Volker - if sendfile returns zero thenJeremy Allison1-2/+66
we might have to handle a short send by filling with zeros. Jeremy.
2009-01-13Fix bug #6019 File corruption in Clustered SMB/NFS environment managed via CTDBJeremy Allison1-2/+2
Jeremy.
2009-01-08s3:smbd: move all globals and static variables in globals.[ch]Stefan Metzmacher1-7/+1
The goal is to move all this variables into a big context structure. metze
2009-01-04s3: Allow renames of streams via NTRENAME and fix stream error codes on renameTim Prouty1-10/+15
The test_streams_rename2 test in RAW-STREAMS verifies these changes
2008-12-31Rename parent_dirname_talloc() to parent_dirname()Volker Lendecke1-2/+2
2008-12-31recvfile can't be used for printing so farVolker Lendecke1-0/+4
2008-12-31Fix an ancient uninitialized variable readVolker Lendecke1-1/+2
The callers of open_file_ntcreate expect *psbuf to be filled correctly
2008-12-19Fix bug #5986 - Editing a stream is broken (rename problems).Jeremy Allison1-1/+3
Jeremy.
2008-12-09s3: [3/3]: Fix a delete on close divergence from windows and the associated ↵Tim Prouty1-2/+0
torture test This third patch cleans up by removing all of the code that is made obsolete by the first patch. It should cause no functional changes.
2008-12-03s3: Change SMB_VFS_CREATE_FILE to take a create_file_flags argumentTim Prouty1-9/+9
This replaces the is_dos_path bool with a more future-proof argument. The next step is to plumb INTERNAL_OPEN_ONLY through this flag instead of overridding the oplock_request.
2008-12-03s3: Modify direct callers of open_file_ntcreate and open_directory to call ↵Tim Prouty1-47/+104
SMB_VFS_CREATE_FILE
2008-12-03s3: Modify direct callers of create_file_unix_path to call SMB_VFS_CREATE_FILETim Prouty1-2/+4
2008-12-03s3: Add new "is_dos_path" argument to SMB_VFS_CREATE_FILETim Prouty1-0/+3
Now unix paths can be differentiated from windows paths so the underlying create_file implementations can convert paths correctly.
2008-12-03s3: Add SMB_VFS_CREATE_FILE to the vfs layerTim Prouty1-48/+51
Modify all callers of create_file to go through SMB_VFS_CREATE_FILE
2008-12-01s3:smbd: give the correct error when trying to replace a streamStefan Metzmacher1-0/+6
metze
2008-12-01s3:smbd: correctly verify stream names to pass RAW-STREAMSStefan Metzmacher1-1/+35
metze
2008-12-01s3:smbd: '|' isn't allowed in windows filenamesStefan Metzmacher1-1/+1
metze
2008-11-21First part of fix for bug #5903 - vfs_streams_xattr breaks contents of the file.Jeremy Allison1-1/+8
Restructures parts of open code so that fsp must be allocated before calling open_file_ntcreate(_internal). Also fix up file ref-counting inside files.c. Jeremy.
2008-11-11Fix bug 5889. "delete veto files = no" seems to break.Jeremy Allison1-4/+11
Jeremy.
2008-11-08change CHECK_READ to use smb_request instead of inbufVolker Lendecke1-3/+3
2008-11-04Add construct_reply_common_req wrapperVolker Lendecke1-2/+2
The goal is to remove the remaining direct calls to construct_reply_common.
2008-11-02Remove some inbuf references by adding "cmd" to smb_requestVolker Lendecke1-8/+6
2008-11-02Remove the inbuf reference from map_checkpath_error()Volker Lendecke1-4/+4
2008-11-02Remove a bunch of direct inbuf references by adding "vwv" to smb_requestVolker Lendecke1-109/+106
2008-11-02Rename "inbuf" to "base_ptr" in srvstr_get_path_*Volker Lendecke1-5/+5
2008-11-02Remove some direct inbuf references by adding smbreq_bufremVolker Lendecke1-2/+2
2008-11-02Simplify params of srvstr_pull_buf_talloc()Volker Lendecke1-9/+7
Now that "req" is available everywhere, use it. Rename srvstr_pull_buf_talloc() to srvstr_pull_req()
2008-11-02Add srvstr_get_path_req[_wcard]Volker Lendecke1-107/+53
2008-11-01Remove a bunch of direct inbuf references by adding "buf" to smb_requestVolker Lendecke1-51/+42
2008-11-01In reply_copy, don't write to inbuf when splitting directory and maskVolker Lendecke1-19/+14
2008-11-01In reply_search(), don't write to inbuf when splitting directory and maskVolker Lendecke1-16/+10
2008-11-01Apply some const to get_lock_*()Volker Lendecke1-3/+6
2008-11-01Add a "buflen" struct member to smb_requestVolker Lendecke1-15/+7
This removes some explicit inbuf references and also removes a pointless check in reply_echo. The buflen can never be more than 64k, this is just a 16 bit value.
2008-10-19Fix nonempty blank linesVolker Lendecke1-91/+91
2008-10-19Inline the once-used macro "init_dfsroot"Volker Lendecke1-1/+6