summaryrefslogtreecommitdiffstats
path: root/source/smbd/notify_kernel.c
Commit message (Collapse)AuthorAgeFilesLines
* it is possible for some of the real time signals to be used by glibc,Andrew Tridgell2003-03-281-1/+4
| | | | | which then changes SIGRTMIN. It is also possible for bash to leave some real time signals blocked at startup. This fixes both problems.
* Ensure we do not pass uninitialised data to the kernel. (Picked up byAndrew Bartlett2003-01-131-0/+2
| | | | | | valgrind). Andrew Bartlett
* Fix fd leak with kernel change notify.Jeremy Allison2002-10-281-1/+1
| | | | Jeremy.
* compile warngin fixes merged from 2.2Gerald Carter2002-06-171-9/+9
|
* Remove blocksignals call as it's never going to bloody work right...Jeremy Allison2002-06-051-1/+0
| | | | Jeremy.
* Fix for Linux kernel bug where signal mask set within a signal handlerJeremy Allison2002-06-051-33/+67
| | | | | | is being ignored on sighandler exit. This means we have to have a small array of fd's, not a single one. Jeremy.
* Fix different args to sys_fcntl without going varargs....Jeremy Allison2002-04-191-3/+3
| | | | Jeremy.
* Added sys_fcntl (not to be used everywhere). Added sys_read/sys_writeJeremy Allison2002-04-191-3/+3
| | | | | for transfer_file. Jeremy.
* Removed version number from file header.Tim Potter2002-01-301-2/+1
| | | | Changed "SMB/Netbios" to "SMB/CIFS" in file header.
* Removed 'extern int DEBUGLEVEL' as it is now in the smb.h header.Tim Potter2001-10-021-1/+0
|
* move to SAFE_FREE()Simo Sorce2001-09-171-1/+1
|
* The big character set handling changeover!Andrew Tridgell2001-07-041-1/+1
| | | | | | | This commit gets rid of all our old codepage handling and replaces it with iconv. All internal strings in Samba are now in "unix" charset, which may be multi-byte. See internals.doc and my posting to samba-technical for a more complete explanation.
* fixed usage of socklen_t and also tidied up SIG_ATOMIC_T, using a typedef ↵Andrew Tridgell2001-06-251-6/+6
| | | | instead of a define
* More compiler warning fixes.Tim Potter2001-05-081-2/+2
|
* utils/torture.c: Added one more delete on close test.Jeremy Allison2001-03-301-3/+3
| | | | | | | | | | | | | smbd/notify_kernel.c: This code was wrong I believe. It was structured to only return a changenotify event on being called from timeout processing (t != 0). The kernel changenotify events should fire on *asynchronous* processing (EINTR return from select caused by the realtime signal delivery) with t == 0. Reported by Juergen Hasch (Hasch@t-online.de). ANDREW PLEASE CHECK THIS ! Currently the hash style changenotify is done on async processing as well as timeout processing. As this is expensive we may want to revisit doing this and maybe set it to fire only on timeout processing. Jeremy.
* Merge of new 2.2 code into HEAD (Gerald I hate you :-) :-). Allows new SAMRJeremy Allison2001-03-111-3/+0
| | | | | | RPC code to merge with new passdb code. Currently rpcclient doesn't compile. I'm working on it... Jeremy.
* Fix to allow a timestamp of zero to cause an instantaneous changenotifyJeremy Allison2000-09-201-1/+6
| | | | | | scan - then call this from renames. This allows instantaneous update for W2k renames. Jeremy.
* Paranoia changes to ensure that anything touched by a signal handlerJeremy Allison2000-06-191-10/+11
| | | | | and the main code is declared as VOLATILE SIG_ATOMIC_T. Jeremy.
* allow the notify implementation to choose the select timeout changeAndrew Tridgell2000-06-141-3/+4
|
* use DN_ATTRIB kernel change notify attributeAndrew Tridgell2000-06-131-3/+7
|
* always use the DN_CREATE mask (NT expects file creation always toAndrew Tridgell2000-06-131-8/+3
| | | | cause a notify)
* enable the Linux change notify code and change some notify debug codeAndrew Tridgell2000-06-121-8/+43
|
* totally rewrote the async signal, notification and oplock notificationAndrew Tridgell2000-06-121-0/+170
handling in Samba. This was needed due to several limitations and races in the previous code - as a side effect the new code is much cleaner :) in summary: - changed sys_select() to avoid a signal/select race condition. It is a rare race but once we have signals doing notification and oplocks it is important. - changed our main processing loop to take advantage of the new sys_select semantics - split the notify code into implementaion dependent and general parts. Added the following structure that defines an implementation: struct cnotify_fns { void * (*register_notify)(connection_struct *conn, char *path, uint32 flags); BOOL (*check_notify)(connection_struct *conn, uint16 vuid, char *path, uint32 flags, void *data, time_t t); void (*remove_notify)(void *data); }; then I wrote two implementations, one using hash/poll (like our old code) and the other using the new Linux kernel change notify. It should be easy to add other change notify implementations by creating a sructure of the above type. - fixed a bug in change notify where we were returning the wrong error code. - rewrote the core change notify code to be much simpler - moved to real-time signals for leases and change notify Amazingly, it all seems to work. I was very surprised!