summaryrefslogtreecommitdiff
path: root/source3/smbd/reply.c
AgeCommit message (Collapse)AuthorFilesLines
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
2008-10-14Use {u,}int64_t instead of SMB_BIG_{U,}INT.Jelmer Vernooij1-46/+46
2008-10-13Use "struct files_struct" for pipes instead of smb_np_structVolker Lendecke1-7/+0
2008-10-13Pass struct smb_request to file_freeVolker Lendecke1-15/+15
on the way to get rid of chain_fsp
2008-10-13Pass struct smb_request to file_newVolker Lendecke1-1/+1
Goal is to remove the chain_fsp global variable
2008-10-13Pass struct smb_request to file_fspVolker Lendecke1-21/+21
The goal is to get rid of the chain_fsp global variable
2008-10-08Remove unused CHECK_FSP macroVolker Lendecke1-3/+2
2008-10-03Simply our main loop processing. A lot :-). Correctly use events for all the ↵Jeremy Allison1-3/+0
previous "special" cases. A step on the way to adding signals to the events and being able to merge the S3 event system with the S4 one. Jeremy.
2008-09-30Fix the make test problem Karolin reported. Now rename_open_files actually ↵Jeremy Allison1-2/+2
works correctly we must emit the change notify before we change the name, not before. Jeremy.
2008-09-05Write times code update.Jeremy Allison1-2/+4
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)
2008-09-01Slightly simplify logic: remove an else branchVolker Lendecke1-14/+11
(This used to be commit 56ecec50130aa948a431427285aed4b28a5647e8)
2008-08-27Add st_birthtime and friends for accurate create times on systems that ↵Jeremy Allison1-3/+4
support it (*BSD and MacOSX). Should have done this ages ago, sorry. Jeremy. (This used to be commit 4c3a9558906f213948c3bdc081be73f8fed148cb)
2008-08-26EINVAL is also a valid error return, meaning "this filesystemAndrew Tridgell1-2/+3
cannot do sendfile for this file" (This used to be commit 737f664604b28f230be63bfc2f3d516fd9eb1c63)
2008-08-14Fix for bug #5617, reported and patched by Bartosz Antosik antosik@gmail.com.Jeremy Allison1-0/+2
xp/2003 explorer freezes browsing shares on samba ipv6 hosts. Caused by missing reply packet to SMB printclose packet. Jeremy (This used to be commit ecf2b906f476e4a764d0e53eed84b9b75a2062c0)
2008-08-12I found lots of places where we assume error will be set when callingAndrew Tridgell1-2/+2
one of our virtualised functions, such as db_open(), but error is only set when a system call fails, and it is not uncommon for us to fail a function internally without ever making a system call. That led to us passing back success when a function had in fact failed. I found two places where we relied on map_nt_error_from_unix() returning success when errno==0, but lots and lots of places where we relied on the reverse, so I fixed those two places. map_nt_error_from_unix() will now always return an error, returning NT_STATUS_UNSUCCESSFUL if errno is 0 (cherry picked from commit 69d40ca4c1af925d4b0e59ddc69ef8c26e6501d1) (This used to be commit 834684a524a24bb4eb46b4af583d39947dc87d95)