summaryrefslogtreecommitdiff
path: root/source3/smbd/globals.c
AgeCommit message (Collapse)AuthorFilesLines
2012-10-19s3:smbd: move initialization of the smbd_shim from smbd_init_globals() to main()Michael Adam1-16/+0
This is in preparation of adding server exit hooks to the shim. Signed-off-by: Michael Adam <obnox@samba.org>
2012-09-13Sigh :-(. Removing optimization prematurely is the root of all evil :-(.Jeremy Allison1-0/+1
Sorry for the mistake, but the LastDir singleton cache in vfs_ChDir() actually plays an important role. When we're processing a stream of SMB1/SMB2/SMB3 requests we don't want to add a chdir()/getcwd() system call pair on every request if they're all on the same connection and dealing with the same base path. I did some testing with a program that times 1,000,000 chdir() requests vs. 1,000,000 strcmp requests and it's a penalty of 10x doing the system calls. Just because it's old code, doesn't mean it's bad :-(. Autobuild-User(master): Jeremy Allison <jra@samba.org> Autobuild-Date(master): Thu Sep 13 21:31:42 CEST 2012 on sn-devel-104
2012-09-12Remove ancient "optimization" global LastDir.Jeremy Allison1-1/+0
2012-07-18s3: Add vfs_aio_posixVolker Lendecke1-2/+0
Signed-off-by: Jeremy Allison <jra@samba.org>
2012-07-18s3: Remove the unused completion handling from aio.cVolker Lendecke1-1/+0
Signed-off-by: Jeremy Allison <jra@samba.org>
2012-07-18s3: Properly handle shutdown with the _send/_recv based aioVolker Lendecke1-1/+0
Signed-off-by: Jeremy Allison <jra@samba.org>
2012-06-26s3: Restore async i/o with the "native" AIO interfaceVolker Lendecke1-1/+1
eff3609 moved the async signal handler initialization to later in the process to enable aio_fork and aio_pthread on platforms without realtime signals. This commit broke the use of the native aio interface. aio_pending_size is initialized to 0, so aio.c will not allow async i/0 at all if modules do not set that variable correctly. Initialize to 100 right from the start. Signed-off-by: Stefan Metzmacher <metze@samba.org> Autobuild-User(master): Stefan Metzmacher <metze@samba.org> Autobuild-Date(master): Tue Jun 26 14:08:22 CEST 2012 on sn-devel-104
2012-06-06build: Rationalise AIO support in configure, ensure on by defaultAndrew Bartlett1-1/+1
With this change, the define to check for AIO is HAVE_AIO, consistant with other subsystems. It is now also on by default in the autoconf build, as it has been for waf. Andrew Bartlett
2012-05-25s3:smbd: move global smbd_msg_state to smbXsrv_connectionStefan Metzmacher1-2/+0
metze Autobuild-User: Stefan Metzmacher <metze@samba.org> Autobuild-Date: Fri May 25 11:01:27 CEST 2012 on sn-devel-104
2012-05-25s3:smbd: move global koplocks to smbd_server_connectionStefan Metzmacher1-2/+0
metze
2012-05-25s3:smbd: move global oplocks vars to smbd_server_connectionStefan Metzmacher1-3/+0
metze
2012-05-24s3:smbd: remove global 'smbd_server_conn' !!!Stefan Metzmacher1-10/+1
For now we still use a global 'global_smbXsrv_connection' in order to pass the connection state to exit_server*(). metze Autobuild-User: Stefan Metzmacher <metze@samba.org> Autobuild-Date: Thu May 24 20:07:20 CEST 2012 on sn-devel-104
2011-12-15s3:smbd/globals: remove unused msg_ctx_to_sconn()Stefan Metzmacher1-13/+0
metze Autobuild-User: Stefan Metzmacher <metze@samba.org> Autobuild-Date: Thu Dec 15 14:24:59 CET 2011 on sn-devel-104
2011-12-14s3:smbd: remove unused smbd_messaging_context()Stefan Metzmacher1-10/+0
metze
2011-12-14s3:smbd/server: maintain the list of child processes under smbd_parent_contextStefan Metzmacher1-2/+0
metze
2011-12-14s3:smbd/globals: change 'int am_parent' into 'struct smbd_parent_context ↵Stefan Metzmacher1-1/+1
*am_parent' This is a short term solution on the way to get rid of 'am_parent' completely. metze
2011-12-13s3: Move can_delete_directory to smbd/, remove shimVolker Lendecke1-1/+0
Autobuild-User: Volker Lendecke <vlendec@samba.org> Autobuild-Date: Tue Dec 13 19:00:37 CET 2011 on sn-devel-104
2011-12-12s3:smbd: remember the event context on smbd_server_connectionStefan Metzmacher1-0/+1
metze
2011-10-21s3-seal Remove struct smb_srv_trans_enc_ctxAndrew Bartlett1-2/+2
This structure added no value, particularly after the move to gensec. It was added at a time when auth_ntlmssp_state was not available in the client. This changed a while back (the wrapper was extended with client calls), and the move to gensec again reinforced that we do not need the extra complexity. Andrew Bartlett Signed-off-by: Stefan Metzmacher <metze@samba.org>
2011-08-10s3: Fix some nonempty blank linesVolker Lendecke1-1/+1
2011-08-10s3-printing: Rework how the background process is startedSimo Sorce1-0/+1
Signed-off-by: Andreas Schneider <asn@samba.org>
2011-08-02s3: Move deferred_open_queue to smbd_server_connectionVolker Lendecke1-1/+0
2011-08-02s3:smbd - Move printing queue stuffSimo Sorce1-0/+1
This way we can properly deal with pcap updates in the background queue process if it is enabled (on by default) and not perform these actions in the main smbd process. Signed-off-by: Günther Deschner <gd@samba.org>
2011-07-04s3-smbd: Remove obsolete smbd_set_server_fd().Andreas Schneider1-29/+0
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
2011-06-21s3-build: Provide a run-time shim to work around duplicate symbolsAndrew Bartlett1-0/+16
The become_root() and similar 'smbd' functions that are used widely in Samba libraries had 'dummy' copies in dummysmbd.c and dummyroot.c. These have been replaced by a runtime plugin mechanim, which ensures that standlone binaries still do nothing, while in smbd the correct function is used. This avoids having these as duplicate symbols in the smbd binary, which can cause unpredictable behaviour. Andrew Bartlett Signed-off-by: Andrew Tridgell <tridge@samba.org>
2011-06-20tdb_compat.h: divert every tdb build and includes to tdb_compatRusty Russell1-1/+1
We change all the headers and wscript files to use tdb_compat; this means we have one place to decide whether to use TDB1 or TDB2. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2011-05-31s3-globals Remove smbd_event_context() (use server_event_context())Andrew Bartlett1-1/+1
This has been a wrapper around server_event_context() for some time now, and removing this from dummmysmbd.c assists with library dependencies. Andrew Bartlett
2011-05-08s3-smbd: expose smbd_set_server_fd()Andrew Tridgell1-0/+29
this allows the fd to be setup by subsystems that want to use the s3 server core code Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org> Autobuild-User: Andrew Bartlett <abartlet@samba.org> Autobuild-Date: Sun May 8 12:01:13 CEST 2011 on sn-devel-104
2011-05-06s3: only include tdb headers where needed.Günther Deschner1-0/+1
Guenther
2011-03-30s3-messages: only include messages.h where needed.Günther Deschner1-0/+1
Guenther
2011-03-30s3: include smbd/smbd.h where needed.Günther Deschner1-0/+1
Guenther
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