| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
directory handle. WinCenter (multi-user NT system) is doing
this. This code still needs testing....
Jeremy.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
smbd/chgpasswd.c.
smbd/chgpasswd.c
smbd/open.c: Ensure that we replace SIGCLD handler with CatchChildLeaveStatus()
*before* we expect to reap a child status - and reset it to CatchChild()
after we've done the sys_waitpid(). The original CatchChild() code
would eat the status code from the zombie in the signal handler, meaning
that the sys_waitpid() calls in check_access_allowed_for_current_user()
and chgpasswd would never return a status.
smbd/open.c:
smbd/reply.c:
smbd/close.c: Check error return on close() calls - ensure a valid error return
is sent back to the client. This catches the "file truncated"
bug when a user has run out of quota (or space) and the ENOSPC
error is returned on the *close()* call, not the write() (eg. on
an nfs mounted drive).
smbd/fileio.c: Added check for ESPIPE on sys_lseek() in file_seek() to allow
people to use Windows clients to communicate with UNIX fifo's
(like they could in 1.9.18).
Jeremy.
|
|
|
|
|
|
|
|
|
|
| |
allow/deny that could
silently deny access. Log them if they occur.
smbd/close.c smbd/oplock.c smbd/reply.c: Removed a global oplock variable (hurrah!).
Removal of the oplocks flags and any kernel oplocks is now done in
either close() or in reply_locking() by calling release_file_oplock().
Jeremy.
|
| |
|
|
|
|
|
|
| |
don't have the ALLOW_DELETE_ON_CLOSE share flag enabled. Told you
this was fiddly code :-).
Jeremy.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
semantics.
This was trickier than it looks :-). Check out the new DELETE_ON_CLOSE
flag in the share modes and the new code that iterates through all open
files on the same device and inode in files.c and trans2.c
Also changed the code that modifies share mode entries to take
generic function pointers rather than doing a specific thing so
this sort of change should be easier in the future.
Jeremy.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
easier to read.
lib/util.c: Fixed Luke's set_first_token() function - should return void.
smbd/close.c: Move delete_on_close into file_fd_struct structure.
smbd/ipc.c: Changed local_machine back to fstring.
smbd/nttrans.c: Use defines for mapping share modes.
smbd/open.c: Move delete_on_close into file_fd_struct structure, added code for ALLOW_SHARE_DELETE.
smbd/reply.c: Use defines for mapping share modes.
smbd/trans2.c: Move delete_on_close into file_fd_struct structure.
Jeremy.
|
|
|
|
|
|
|
|
|
|
| |
I have tested it by creating a 'holey' 20GB file - checking that
it shows up correctl in the NT file view (it does) and am busily
copying it to NULL: on the NT box. All good so far.... :-).
Also implemented NT 'delete on close' semantics.
Jeremy.
|
|
|
|
|
| |
Added "nt smb support" parameter to allow NT SMB's to be turned off.
Jeremy.
|
|
|
|
|
|
|
|
|
|
|
| |
include/smb.h: Moved old typedefs of uint8 etc. into include/includes.h where
all the other defines live (changed them from typedefs to
defines).
Other changes : changed from using uint32 to SMB_DEV_T and SMB_INO_T
in preparation for moving to size independed (ie. 64 bit clean) device
and inode access. Stat call wrapper comes next :-).
Jeremy.
|
|
|
|
|
|
| |
chain_fsp on close (if you don't know what this means, consider yourself
lucky - this one took a day to track down :-).
Jeremy.
|
|
|
|
|
|
|
|
|
|
|
| |
include/includes.h: Added nterr.h.
locking/locking.c: Moved blocking lock code into smbd/blocking.c for link purposes.
smbd/close.c: Added blocking lock removal to file close.
smbd/filename.c: Tidied up unix_convert() so I could read it (:-) in preparation
for the stat_cache code.
smbd/nttrans.c: Added WRITE_ATTRIBUTES check.
smbd/reply.c: Fixed multibyte char problem in wildcard mask.
Jeremy.
|
|
the splitup was done with an axe, not a scalpel, so there are some
rough edges. I mostly wanted to get the general form right with fine
tuning of what goes where to come later. Still, this is better than
what we had before where server.c was a general repository for
anything that didn't fit elsewhere.
|