summaryrefslogtreecommitdiffstats
path: root/source3/smbd/notify.c
Commit message (Collapse)AuthorAgeFilesLines
* notify: Move path construction to notify_triggerVolker Lendecke2014-12-161-11/+2
| | | | | | | | | | | notify_msg won't need to construct the path anymore, it will be able to put the parts into iovecs Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org> Autobuild-User(master): Jeremy Allison <jra@samba.org> Autobuild-Date(master): Tue Dec 16 21:22:26 CET 2014 on sn-devel-104
* s3: smbd: Ensure we don't call qsort() with a size of -1.Jeremy Allison2014-09-111-16/+16
| | | | | | | | | | | Based on a patch idea from Ken Harris <kharris@mathworks.com> Fixes bug 10798 - crash in source3/smbd/notify.c https://bugzilla.samba.org/show_bug.cgi?id=10798 Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Ira Cooper <ira@samba.org>
* smbd: Sort notify events by timestampVolker Lendecke2014-04-231-0/+16
| | | | | | | | | | | | | This will fix the raw.notify test with the new messaging system. With the new messaging system messages come in via yet another fd that has to line up in poll next to the incoming client TCP socket. With the signal-based messaging messages were always handled before client requests. The new scheme means that notify messages might be deferred a bit (something which can happen in a cluster already now), which then means that notify_marshall_changes() will coalesce entries, which in turn makes raw.notify unhappy. Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
* smbd: Pass timespec_current through the notify_callbackVolker Lendecke2014-04-231-2/+3
| | | | | Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
* smbd: Pass timespec_current to notify_fspVolker Lendecke2014-04-231-4/+7
| | | | | Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
* smbd: Add a timestamp to queued notify eventsVolker Lendecke2014-04-231-7/+14
| | | | | | | | | | | In a cluster and with changed messaging it can happen that messages are scheduled after new SMB requests. This re-ordering breaks a few notify tests. This starts the infrastructure to add timestamps to notify events, so that they can be sorted before they are sent out. The timestamp will be the current local time of notify_fname, that's all we can do. Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
* s3:smbd: use PATH_MAX for the buffer passed to full_path_tos()Stefan Metzmacher2013-12-141-1/+1
| | | | | | | We use this in other places too and it's better than a hardcoded value. Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Volker Lendecke <vl@samba.org>
* smbd: Implement and use full_path_tosVolker Lendecke2013-12-141-6/+8
| | | | | | | | Yes, this looks like a hack, but talloc_asprintf does show up high in profiles called from these routines Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Stefan Metzmacher <metze@samba.org>
* s3:smbd: s/struct event_context/struct tevent_contextStefan Metzmacher2013-02-191-1/+1
| | | | | Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Michael Adam <obnox@samba.org>
* s3:smbd: make struct notify_change_buf private to notify.cStefan Metzmacher2012-06-061-0/+20
| | | | metze
* s3:smbd: add change_notify_fsp_has_changes()Stefan Metzmacher2012-06-061-0/+17
| | | | metze
* s3: New notify implementationVolker Lendecke2012-04-171-29/+7
| | | | | | | | | | | | From notify_internal.c: /* * The notify database is split up into two databases: One * relatively static index db and the real notify db with the * volatile entries. */ This change is necessary to make notify scale better in a cluster
* s3: Pass filters explicitly through vfs notify watchVolker Lendecke2012-03-261-2/+2
| | | | | | | | | This removes a dependency on "struct notify_entry" and makes the nature of the API more explicit. We depend upon the VFS module to mask out elements from e->filter and e->subdir_filter that it took over to handle. Autobuild-User: Volker Lendecke <vl@samba.org> Autobuild-Date: Mon Mar 26 17:45:44 CEST 2012 on sn-devel-104
* s3: Remove the sys_notify dependency from notify_internalVolker Lendecke2012-03-231-18/+27
| | | | | Autobuild-User: Volker Lendecke <vl@samba.org> Autobuild-Date: Fri Mar 23 12:12:51 CET 2012 on sn-devel-104
* s3: Move the notify_ctx to the smbd_server_connectionVolker Lendecke2012-03-211-3/+4
| | | | | | | | | We only need one notify_ctx per smbd. The notify_array can become quite large. It's based on absolute paths, so there's no point in having a copy of the complete array in memory multiple times. Autobuild-User: Volker Lendecke <vl@samba.org> Autobuild-Date: Wed Mar 21 14:26:07 CET 2012 on sn-devel-104
* s3: Remove "conn" param from sys_notify_context_createVolker Lendecke2012-03-211-2/+1
|
* s3: Remove "conn" from sys_notify_contextVolker Lendecke2012-03-211-1/+0
|
* s3: Pass "conn" to sys_notify_watch()Volker Lendecke2012-03-211-1/+2
|
* s3: Pass "conn" to notify_add()Volker Lendecke2012-03-211-1/+2
|
* s3: Pass "path" through vfs_notify_watchVolker Lendecke2012-03-211-2/+3
|
* s3-notify: Lift "/." handling up one levelVolker Lendecke2012-03-161-0/+9
| | | | | | | This slightly simplifies the code Autobuild-User: Volker Lendecke <vl@samba.org> Autobuild-Date: Fri Mar 16 14:28:44 CET 2012 on sn-devel-104
* s3: asprintf->talloc_asprintfVolker Lendecke2012-03-091-4/+6
| | | | | Autobuild-User: Volker Lendecke <vl@samba.org> Autobuild-Date: Fri Mar 9 19:01:06 CET 2012 on sn-devel-104
* s3: Replace a SMB_ASSERT with an error returnVolker Lendecke2012-03-091-1/+5
|
* s3-talloc Change TALLOC_ZERO_P() to talloc_zero()Andrew Bartlett2011-06-091-1/+1
| | | | | Using the standard macro makes it easier to move code into common, as TALLOC_ZERO_P isn't standard talloc.
* s3-talloc Change TALLOC_P() to talloc()Andrew Bartlett2011-06-091-1/+1
| | | | | Using the standard macro makes it easier to move code into common, as TALLOC_P isn't standard talloc.
* s3-talloc Change TALLOC_REALLOC_ARRAY() to talloc_realloc()Andrew Bartlett2011-06-091-1/+1
| | | | | | | Using the standard macro makes it easier to move code into common, as TALLOC_REALLOC_ARRAY isn't standard talloc. Andrew Bartlett
* s3: include smbd/smbd.h where needed.Günther Deschner2011-03-301-0/+1
| | | | Guenther
* s3-notify: use autogenerated FILE_NOTIFY_INFORMATION marshalling in smbd.Günther Deschner2010-07-071-52/+29
| | | | Guenther
* s3:smbd: Align change notify replies on 4-byte boundaryChere Zhou2010-07-061-0/+10
| | | | | | | MS-CIFS section 2.2.7.4.2 states this is mandatory. WinXP clients don't seem to care, but a Win7 client will send an immediate Close() to the directory handle when receiving an incorrectly aligned change notify response.
* s3: Explicitly pass sconn to the remove_pending_change_notify_request_by_midVolker Lendecke2010-06-121-2/+2
|
* s3: change_notify_reply() does not need its "conn" argumentVolker Lendecke2010-06-121-11/+8
|
* s3: Explicitly pass sconn to the change_notify_remove_requestVolker Lendecke2010-06-121-7/+9
|
* s3: Remove smbd_server_conn from change_notify_add_requestVolker Lendecke2010-06-121-1/+1
|
* s3: Remove sconn arg from smbd_notify_cancel_by_smbreqVolker Lendecke2010-06-121-2/+2
|
* s3: only include gen_ndr headers where needed.Günther Deschner2010-05-061-0/+1
| | | | | | | | | | | | | | | | | This shrinks include/includes.h.gch by the size of 7 MB and reduces build time as follows: ccache build w/o patch real 4m21.529s ccache build with patch real 3m6.402s pch build w/o patch real 4m26.318s pch build with patch real 3m6.932s Guenther
* Move to using 64-bit mid values in our internal open file database.Jeremy Allison2010-04-121-2/+2
| | | | | | | This will allow us to share logic much easier between SMB1 and SMB2 servers. Jeremy
* s3: Replace some create_synthetic_smb_fname() callsVolker Lendecke2009-11-181-10/+6
| | | | | In very hot codepaths like the statcache copy_smb_filename and the subsequent recursive talloc_free is noticable in the CPU load.
* s3:smbd: add smbd_notify_cancel_by_smbreq()Stefan Metzmacher2009-08-171-0/+20
| | | | | | This function will be used by the SMB2 notify code. metze
* s3: Change fsp->fsp_name to be an smb_filename struct!Tim Prouty2009-07-201-3/+4
|
* s3:smbd: make change_notify_reply() more generic and hide send_nt_replies() ↵Stefan Metzmacher2009-07-021-12/+22
| | | | | | | | behind a callback This prepares change notify support for SMB2. metze
* s3:smbd: simplify the notify code a bit and always reply via ↵Stefan Metzmacher2009-07-021-33/+24
| | | | | | change_notify_reply() -> send_nt_replies() metze
* s3:smbd: move global notify_changes_by_mid to smbd_server_connectionStefan Metzmacher2009-07-021-3/+6
| | | | metze
* s3: Plumb smb_filename through SMB_VFS_STAT and SMB_VFS_LSTATTim Prouty2009-06-241-11/+21
| | | | | | | | | | | | | This patch introduces two new temporary helper functions vfs_stat_smb_fname and vfs_lstat_smb_fname. They basically allowed me to call the new smb_filename version of stat, while avoiding plumbing it through callers that are still too inconvenient. As the conversion moves along, I will be able to remove callers of this, with the goal being to remove all callers. There was also a bug in create_synthetic_smb_fname_split (also a temporary utility function) that caused it to incorrectly handle filenames with ':'s in them when in posix mode. This is now fixed.
* Add notify_onelevel.tdbVolker Lendecke2009-04-161-0/+10
| | | | | | | | | | This optimizes non-recursive notifys. For non-recursive notifies we can use a per-directory file-id indexed notify record. This matters for the Windows Explorer and IIS cases which do not use recursive notifies. In these cases, we do not have to shuffle around the whole notify record on every change. For the cluster case, this improves correctness of the notifies, ctdb only distributes the tdb seqnum once a second, so we can lose notifies.
* Use convert_string_talloc, thanks Andrew!Volker Lendecke2009-04-131-1/+1
|
* Fix a memleak in an unlikely error path in change_notify_create()Volker Lendecke2009-04-111-0/+1
|
* Use talloc_tos() for a temp convert_string_allocate()Volker Lendecke2009-04-111-3/+3
|
* s3:smbd: use new simplified snb_signing code in the serverStefan Metzmacher2009-03-231-4/+3
| | | | | | | | | We keep the seqnum/mid mapping in the smb_request structure. This also moves one global variable into the smbd_server_connection struct. metze
* s3: Make change notify immediately return a catch-all packet on underlying errorSteven Danneman2009-02-201-1/+14
| | | | | | | * This allows a problem in the underlying CN backend to be bubbled up to the general CN layer so a catch-all reply can be returned * We now also return a catch-all response immediately if the server-side event queue becomes too big
* s3: Modifications to generic notify structures to allow implementation of ↵Steven Danneman2009-02-201-0/+2
| | | | | | | | | | | | | | OneFS notify. The OneFS kernel based change notify system takes an fd of the directory to watch in it's initialization syscall. Since we already have this directory open, this commit plumbs that fd down to the VFS layer via the notify_entry struct. We also need to know if the watch is taken out on a snapshot directory. The full file_id struct is also passed down to make this determination. The file_id marshalling wrappers are hand written here, but should eventually be auto-generated by moving the struct file_id into the idl.