summaryrefslogtreecommitdiffstats
path: root/source3/smbd/trans2.c
Commit message (Collapse)AuthorAgeFilesLines
* Ensure we never enter VFS_CREATE without having initializedJeremy Allison2009-04-151-0/+2
| | | | | | | | sbuf as invalid (if not already read via stat()). Still trying to find the build farm RAW-STREAM errors and it's happening in a openX call.... Jeremy. (cherry picked from commit 940c84fcc75085ee4f1180d4d2a8e718142e4eb6)
* Make test for open modes more robust against other bits.Jeremy Allison2009-02-251-1/+1
| | | | Jeremy.
* Fix bug in processing of open modes in POSIX open.Jeremy Allison2009-02-251-0/+2
| | | | | | | Was missing case of "If file exists open. If file doesn't exist error." Damn damn damn. CIFSFS client will have to have fallback cases for this error for a long time. Jeremy.
* Allow set attributes on a stream fnum to be redirected to the base filename.Jeremy Allison2009-02-241-2/+10
| | | | | Fixes the new RAW-STREAMS torture test. Jeremy.
* Add VFS ops for Windows BRL: Lock, Unlock and Cancel:Zack Kirsch2009-02-131-1/+2
| | | | | | | | | | | | | | | | | | | | | | | 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.
* s3: Added SMB_VFS_INIT_SEARCH_OP to initialize data at the beginning of SMB ↵Steven Danneman2009-02-091-3/+9
| | | | | | | | 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
* S3: New module interface for SMB message statistics gatheringtodd stecher2009-02-091-1/+4
| | | | | | | 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.
* s3: Add a new SMB_VFS_GET_ALLOC_SIZE vfs operationTim Prouty2009-01-291-39/+13
| | | | | This allows module implementors to customize what allocation size is returned to the client.
* Extend NTIMES to allow setting create_timetodd stecher2009-01-231-40/+59
| | | | | | | | | 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.
* s3: make better use of ccache by not including version.h in every C-file.Michael Adam2009-01-151-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | version.h changes rather frequently. Since it is included via includes.h, this means each C file will be a cache miss. This applies to the following situations: * When building a new package with a new Samba version * building in a git branch after calling mkversion.sh after a new commit (i.e. virtually always) This patch improves the situation in the following way: * remove inlude "version.h" from includes.h * Use samba_version_string() instead of SAMBA_VERSION_STRING in files that use no other macro from version.h instead of SAMBA_VERSION_STRING. * explicitly include "version.h" in those files that use more macros from "version.h" than just SAMBA_VERSION_STRING. Michael
* s3:smbd: move all globals and static variables in globals.[ch]Stefan Metzmacher2009-01-081-3/+1
| | | | | | The goal is to move all this variables into a big context structure. metze
* s3:smbd: make static const in mangle_hash2.c really static constStefan Metzmacher2009-01-081-1/+1
| | | | | | | | | | | | | const char *foo, means a non-const pointer to a const char. const char * const foo, means a const pointer to a const char. char * const foo, would mean a const pointer to a non-const char. metze
* Add iconv_convenience argument to size functions.Jelmer Vernooij2009-01-011-0/+2
|
* Rename parent_dirname_talloc() to parent_dirname()Volker Lendecke2008-12-311-2/+1
|
* Use parent_dirname_talloc instead of parent_dirname in smb_unix_mknodVolker Lendecke2008-12-311-3/+7
|
* s3: Fix stream marshalling to return the correct streaminfo statusTim Prouty2008-12-231-10/+1
| | | | | | | | | | | | | | | | When there are enough streams on a file to fill up the max_data_count when responding to a trans2 streaminfo, samba is returning NT_STATUS_BUFFER_TOO_SMALL. Windows handles this by returning NT_STATUS_BUFFER_OVERFLOW while still sending as much of the data that it can fit into the buffer. When the windows client sees BUFFER_OVERFLOW, it retries the streaminfo with a larger buffer (2x). The windows client starts at 2K and will continue increasing the buffer size by two until it reaches 64K. If the streams don't fit in 64K the windows client seems to give up. This patch fixes marshall_stream_info to overfill the buffer by 1 stream so that send_trans2_replies can properly detect the overflow and return the correct status.
* Fix bug #5986 - Editing a stream is broken (rename problems).Jeremy Allison2008-12-191-10/+11
| | | | Jeremy.
* Fix bug #5937 - filenames with "*" char hide other filesJeremy Allison2008-12-041-6/+4
| | | | Jeremy.
* s3: Change SMB_VFS_CREATE_FILE to take a create_file_flags argumentTim Prouty2008-12-031-6/+6
| | | | | | 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.
* s3: Modify direct callers of open_file_ntcreate and open_directory to call ↵Tim Prouty2008-12-031-61/+98
| | | | SMB_VFS_CREATE_FILE
* s3: Add new "is_dos_path" argument to SMB_VFS_CREATE_FILETim Prouty2008-12-031-0/+1
| | | | | Now unix paths can be differentiated from windows paths so the underlying create_file implementations can convert paths correctly.
* s3: Add SMB_VFS_CREATE_FILE to the vfs layerTim Prouty2008-12-031-16/+17
| | | | Modify all callers of create_file to go through SMB_VFS_CREATE_FILE
* s3:smbd: write times should be set on the base file instead of the stream nameStefan Metzmacher2008-12-011-1/+9
| | | | metze
* s3:smbd: return DELETE_PENDING on path based operations on streams, when the ↵Stefan Metzmacher2008-12-011-0/+40
| | | | | | main file was deleted. metze
* s3:smbd: construct the correct newname for stream renamesStefan Metzmacher2008-12-011-16/+32
| | | | | | | | The Windows Explorer creates temporary streams and renames them later via SFILEINFO_RENAME_INFO. The newname comes in as ":Stream:$DATA". metze
* Fix a debug message, append the correct \nVolker Lendecke2008-12-011-1/+1
|
* Remove inbuf references from the trans2ioctl codeVolker Lendecke2008-11-281-4/+4
|
* Consolidate the buffer checks for the reply_trans style functionsVolker Lendecke2008-11-281-57/+18
| | | | | | | | This is the one where I found the problem that led to 3.2.5. So if there is one checkin in the last year that I would like others to review and *understand*, it is this one :-) Volker
* Remove an unused variableVolker Lendecke2008-11-281-2/+0
|
* Fix the offset checks in the trans routinesVolker Lendecke2008-11-271-3/+3
| | | | | | | | | This fixes a potential crash bug, a client can make us read memory we should not read. Luckily I got the disp checks right... Volker (cherry picked from commit 64a1d80851da5b05e70ec6c96f6e9bd473748369) (cherry picked from commit f04c5650a3aeca23591ddc781c4b297caaf9bb3f)
* Do not write into inbuf for the transs requestVolker Lendecke2008-11-081-6/+6
| | | | | Instead, fix up the outbuf in send_xx_reply. In those routines, we know what we are returning.
* Fix a const warningVolker Lendecke2008-11-041-1/+1
|
* Remove some inbuf references by adding "cmd" to smb_requestVolker Lendecke2008-11-021-3/+3
|
* Use "vwv" in trans parsingVolker Lendecke2008-11-021-21/+21
|
* Remove a bunch of direct inbuf references by adding "vwv" to smb_requestVolker Lendecke2008-11-021-5/+5
|
* Get closer to passing S4 RAW-ACLs.Jeremy Allison2008-10-311-3/+6
| | | | Jeremy.
* Cope with bad trans2mkdir requests from System i QNTC IBM SMB client.Jeremy Allison2008-10-161-3/+4
| | | | | | | | If total_data == 4 Windows doesn't care what values are placed in that field, it just ignores them. The System i QNTC IBM SMB client puts bad values here, so ignore them. Jeremy.
* Use {u,}int64_t instead of SMB_BIG_{U,}INT.Jelmer Vernooij2008-10-141-57/+57
|
* Use "struct files_struct" for pipes instead of smb_np_structVolker Lendecke2008-10-131-3/+3
|
* Pass struct smb_request to file_freeVolker Lendecke2008-10-131-11/+11
| | | | on the way to get rid of chain_fsp
* Pass struct smb_request to file_fspVolker Lendecke2008-10-131-4/+4
| | | | The goal is to get rid of the chain_fsp global variable
* Fix bug #5783 FindFirst fails where search pattern == mangled filename.Jeremy Allison2008-09-231-6/+7
| | | | | That was an old and subtle bug. Jeremy.
* When requesting UNIX info levels on findfirst/findnext, don't play games ↵Jeremy Allison2008-09-101-1/+5
| | | | | | | | with write time, just return what the underlying filesystem says. Trying not to confuse UNIX apps any more than necessary. Jeremy. (This used to be commit b81a4dd003957a611ea190979d828b75d07a1f80)
* Fix calculation of useable_space for trans2 and nttrans repliesVolker Lendecke2008-09-081-6/+9
| | | | | | | When alignment was in place, we pretended to send more data/params according to the param_offset/param_length and data_offset/data_length parameters than would actually fit into the SMB according to the NBSS length field. (This used to be commit ef3c132b8455c6fe4d0bb9f0be881040a806a4ed)
* Write times code update.Jeremy Allison2008-09-051-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ok, here's the fix for the write times breakage with the new tests in S4 smbtorture. The key is keeping in the share mode struct the "old_file_time" as the real write time, set by all the write and allocation calls, and the "changed_write_time" as the "sticky" write time - set by the SET_FILE_TIME calls. We can set them independently (although I kept the optimization of not setting the "old_file_time" is a "changed_write_time" was already set, as we'll never see it. This allows us to update the write time immediately on the SMBwrite truncate case, SET_END_OF_FILE and SET_ALLOCATION_SIZE calls, whilst still have the 2 second delay on the "normal" SMBwrite, SMBwriteX calls. I think in a subsequent patch I'd like to change the name of these from "old_file_time" to "write_time" and "changed_write_time" to "sticky_write_time" to make this clearer. I think I also fixed a bug in Metze's original code in that once a write timestamp had been set from a "normal" SMBwriteX call the fsp->update_write_time_triggered variable was set and then never reset - thus meaning the write timestamp would never get updated again on subsequent SMBwriteX's. The new code checks the update_write_time_event event instead, and doesn't update is there's an event already scheduled. Metze especially, please check this over for your understanding. Jeremy. (This used to be commit 6f20585419046c4aca1f7d6c863cf79eb6ae53b0)
* Remove current_user references from trans2.cVolker Lendecke2008-06-191-2/+2
| | | | | This involved replacing the CHECK_NTQUOTA_HANDLE_OK macro by a function. (This used to be commit 5595cdf837edb82db69a3e57bcf3108be7feeeb8)
* Remove some current_user references from trans2.cVolker Lendecke2008-06-191-19/+25
| | | | (This used to be commit 4c31cc0b62f532eafdc44398b29b773ad8cb0646)
* Remove the "current_user" arg from check_fspVolker Lendecke2008-06-191-4/+4
| | | | | | check_fsp only used the vuid struct member anyway, and this is available in the smb_request structure as well. (This used to be commit 8d364c4c3311b406847158fc37e9208d298cf8ba)
* Cleanup size_t return values in callers of convert_string_allocateTim Prouty2008-05-201-8/+16
| | | | | | This patch is the second iteration of an inside-out conversion to cleanup functions in charcnv.c returning size_t == -1 to indicate failure. (This used to be commit 6b189dabc562d86dcaa685419d0cb6ea276f100d)
* Remove "user" from connection_structVolker Lendecke2008-05-101-3/+6
| | | | (This used to be commit 368454a27cb53a408ec416cbf37235b304592fb5)