summaryrefslogtreecommitdiff
path: root/source3/smbd/globals.c
AgeCommit message (Collapse)AuthorFilesLines
2011-03-23s3-globals: silence build warning in smbd_messaging_context().Günther Deschner1-0/+1
Guenther
2011-01-07s3-printing: Initiate pcap reload from parent smbdDavid Disseldorp1-1/+0
Since commit 7022554, smbds share a printcap cache (printer_list.tdb), therefore ordering of events between smbd processes is important when updating printcap cache information. Consider the following two process example: 1) smbd1 receives HUP or printcap cache time expiry 2) smbd1 checks whether pcap needs refresh, it does 3) smbd1 marks pcap as refreshed 4) smbd1 forks child1 to obtain cups printer info 5) smbd2 receives HUP or printcap cache time expiry 6) smbd2 checks whether pcap needs refresh, it does not (due to step 3) 7) smbd2 reloads printer shares prior to child1 completion (stale pcap) 8) child1 completion, pcap cache (printer_list.tdb) is updated by smbd1 9) smbd1 reloads printer shares based on new pcap information In this case both smbd1 and smbd2 are reliant on the pcap update performed on child1 completion. The prior commit "reload shares after pcap cache fill" ensures that smbd1 only reloads printer shares following pcap update, however smbd2 continues to present shares based on stale pcap data. This commit addresses the above problem by driving pcap cache and printer share updates from the parent smbd process. 1) smbd0 (parent) receives a HUP or printcap cache time expiry 2) smbd0 forks child0 to obtain cups printer info 3) child0 completion, pcap cache (printer_list.tdb) is updated by smbd0 4) smbd0 reloads printer shares 5) smbd0 notifies child smbds of pcap update via message_send_all() 6) child smbds read fresh pcap data and reload printer shares This architecture has the additional advantage that only a single process (the parent smbd) requests printer information from the printcap backend. Use time_mono in housekeeping functions As suggested by Björn Jacke.
2010-11-14Move error reporting of messaging context creation fail intoJeremy Allison1-1/+5
the daemons themselves. Allows client utilities to silently fail to create a messaging context due to access denied on the messaging tdb (which I need for the following patch). Jeremy.
2010-10-03s3: Add msg_ctx_to_sconnVolker Lendecke1-0/+13
2010-09-28s3: Remove some remaining files.c globals to sconnVolker Lendecke1-14/+0
2010-09-28s3: Move "Files" to smbd_server_connectionVolker Lendecke1-1/+0
2010-09-28s3: Remove "server_fd" global variableVolker Lendecke1-1/+0
2010-08-26s3-build: only include memcache.h where needed.Günther Deschner1-0/+1
Guenther
2010-08-24s3: Make char_flags and base_reverse const arraysVolker Lendecke1-6/+0
This moves those arrays from dynamic to static, shared memory, removing them from globals.c. I did it by dumping the result of init_tables() with dump_data(). Some massage by an editor macro made it the initializer.
2010-08-24s3: Move "trans_num" to smbd_server_connectionVolker Lendecke1-1/+0
2010-07-13Revert "Remove the global char *LastDir."Jeremy Allison1-0/+1
Volker pointed out I'd missed the "last directory" cache part of this code. Return us to caching the directory we're in (reduces sys call load). Mea maxima culpa. Jeremy. This reverts commit 2f30aea3324f32f9b8555e961256fc1280da2871.
2010-06-10s3:lib make server contexts genericSimo Sorce1-16/+1
Pair-programmed-with: Andreas Schneider <asn@samba.org>
2010-06-10Don't use the autofree context for the globals. This causes child smbd's forkedJeremy Allison1-2/+12
by modules to crash due to destructors being called (found when using the vfs_aio_fork module with smb2). Jeremy.
2010-06-04s3-smbd: Remove unneeded dependency of map_username to globals.c.Andreas Schneider1-3/+0
Reviewed-by: Simo Sorce <idra@samba.org>
2010-05-28s3:smbd move messaging_context and memcache into globals.cAndrew Bartlett1-0/+27
This helps vfstest, which previously had duplicate copies of these functions. Signed-off-by: Stefan Metzmacher <metze@samba.org>
2010-05-13Be more forgiving on client oplock break failure (as Windows does). Remove a ↵Jeremy Allison1-1/+0
global. Jeremy.
2010-04-29Move the global blocking lock records into the smb1 state.Jeremy Allison1-12/+0
Jeremy
2010-03-22s3:smbd: add echo handler information to struct smbd_server_connectionStefan Metzmacher1-0/+3
metze
2010-03-01s3: Abstract access to sessionid.tdb, similar to conn_tdb.cVolker Lendecke1-2/+0
2010-01-12Remove the global char *LastDir.Jeremy Allison1-1/+0
This is no longer used for anything.
2009-11-23Revert "s3: Move the global variable Protocol to struct smbd_server_connection"Volker Lendecke1-10/+0
This reverts commit c85a4c9ba4a7de65a7850f6f9708df66bd24deea.
2009-11-21s3: Move the global variable Protocol to struct smbd_server_connectionVolker Lendecke1-0/+10
2009-09-17We now pass the Microsoft SMB2 fileio test with EA's and streams...Jeremy Allison1-1/+1
Jeremy.
2009-08-07s3:smbd: move dptr globals into struct smbd_server_connectionStefan Metzmacher1-4/+0
metze
2009-07-17Move the initialization of smbd_server_conn from smbd/process,Jeremy Allison1-0/+5
after the accept and fork, to smbd_init_globals(), so it's done immediately on server startup. This is needed as some messages are sent to all active smbd processes (including the master listening daemon). If it gets a message that forces it to scan it's current connections (ie. conn_find()) then it discovers that sconn->smb1.tcons.Connections dereferences null (as sconn == NULL in the parent) and crashes. Yes, I could fix all cases where sconn is used and explicitly check for NULL but this fix is easier. It means that the smbd_event_context() is initialized in the master daemon and then re-initialized after fork, but that should be being done correctly in every fork call anyway. Without this change the previous fix 6a9e0039100b57f9626e87defec6720c476b9789 still panics in the reproducible test case for bug 6564, as this is one case where such a message (MSG_SMB_CONF_UPDATED) is sent to the parent. Metze please check. This change passes valgrind. Jeremy.
2009-07-02s3:smbd: move global notify_changes_by_mid to smbd_server_connectionStefan Metzmacher1-2/+0
metze
2009-06-03s3:smbd: move tcon specific globals to struct smbd_server_connectionStefan Metzmacher1-5/+0
metze
2009-06-03s3:smbd: move more session specific globals to struct smbd_server_connectionStefan Metzmacher1-12/+0
metze
2009-06-03s3:smbd: move some session specific globals to struct smbd_server_connectionStefan Metzmacher1-8/+0
metze
2009-06-03s3:smbd: move already_got_session to struct smbd_server_connectionStefan Metzmacher1-2/+0
metze
2009-06-03s3:smbd: move max_recv to struct smbd_server_connectionStefan Metzmacher1-5/+0
metze
2009-06-03s3:smbd: move negprot related globals to struct smbd_server_connectionStefan Metzmacher1-5/+0
metze
2009-06-03s3:smbd: move pending_auth_data list to struct smbd_server_connectionStefan Metzmacher1-4/+0
metze
2009-05-26s3:smbd: remove unused global 'orig_inbuf'Stefan Metzmacher1-1/+0
metze
2009-02-19s3: Add extid to the dev/inode pairTim Prouty1-1/+2
This extends the file_id struct to add an additional generic uint64_t field: extid. For backwards compatibility with dev/inodes stored in xattr_tdbs and acl_tdbs, the ext id is ignored for these databases. This patch should cause no functional change on systems that don't use SMB_VFS_FILE_ID_CREATE to set the extid. Existing code that uses the smb_share_mode library will need to be updated to be compatibile with the new extid.
2009-01-27s3:smbd: make kernel oplocks event drivenStefan Metzmacher1-9/+0
And use signal events for Linux oplocks. metze
2009-01-27s3:smbd: convert aio to use tevent_signalStefan Metzmacher1-2/+1
metze
2009-01-27s3:smbd: use signal events for SIGTERM, SIGHUP and SIGCHLDStefan Metzmacher1-3/+0
metze
2009-01-22s3:smbd: restructure kernel oplocks codeStefan Metzmacher1-12/+1
This converts the irix oplocks code to use a fd event and removes the last special case for file descriptors for the main sys_select(). metze
2009-01-09s3:smbd: handle incoming smb requests via event handlersStefan Metzmacher1-0/+2
We use a fd event and receive incoming smb requests when the fd becomes readable. It's not completely nonblocking yet, but it should behave like the old code. We use timed events to trigger retries for deferred open calls. metze
2009-01-08s3:smbd: move all globals and static variables in globals.[ch]Stefan Metzmacher1-0/+221
The goal is to move all this variables into a big context structure. metze