summaryrefslogtreecommitdiff
path: root/source3/smbd/server.c
AgeCommit message (Collapse)AuthorFilesLines
2010-08-13s3-smbd: Publish nt printers.Andreas Schneider1-4/+14
Reloading of the printers requires rpc services up and running! The first call in reload_services will be skipped. Signed-off-by: Simo Sorce <idra@samba.org>
2010-08-13s3-smbd: Move rpc services init to smbd parent.Andreas Schneider1-0/+45
The move to the parent makes it possible to use an internal rpc pipe really early and as we migrated serveral parts of samba to rpc function this is required. This should speed up the fork of a smbd a bit cause the rpc services are already running. We still have several problems here which aren't solved. We don't have a dependency tree here. For example we have to make sure that the registry is initialized before we can use the winreg pipe. The spoolss server requires winreg, so we have to start winreg before we can start the spoolss server. I'm sure there are more dependencies. Signed-off-by: Simo Sorce <idra@samba.org>
2010-08-13s3-smbd: Regroup some init functions.Andreas Schneider1-12/+12
Signed-off-by: Simo Sorce <idra@samba.org>
2010-08-13s3-smbd: Cleanup the order of the init functions.Andreas Schneider1-5/+6
Signed-off-by: Simo Sorce <idra@samba.org>
2010-08-13s3-smbd: Make sure the event context is initialized.Andreas Schneider1-0/+3
Signed-off-by: Simo Sorce <idra@samba.org>
2010-08-08s3: Remove the smbd_messaging_context from smb_conf_updatedVolker Lendecke1-1/+1
2010-08-08s3: Pass sconn to smbd_processVolker Lendecke1-3/+3
2010-08-08s3: Lift the smbd_messaging_context from start_background_queueVolker Lendecke1-1/+2
2010-08-08s3: Lift the smbd_messaging_context from smbd_setup_sig_hup_handlerVolker Lendecke1-2/+4
2010-08-08s3: Lift the smbd_messaging_context from reload_servicesVolker Lendecke1-2/+2
2010-08-07s3: Remove a pointless "else"Volker Lendecke1-1/+3
2010-08-05s3-popt: Only include popt-common.h when needed.Andreas Schneider1-0/+1
2010-08-05s3-secrets: only include secrets.h when needed.Günther Deschner1-0/+1
Guenther
2010-07-05s3: Add msg_ctx to smbd_server_connectionVolker Lendecke1-0/+2
It would be obvious to initialize this in smbd_init_globals(), but there the messaging_context can't be initialized yet because we don't have smb.conf loaded yet.
2010-07-05s3: Pass procid_self() explicitly to messaging_ctdbd_connection()Volker Lendecke1-1/+2
2010-07-05s3: Create a unique id for the smbd parentVolker Lendecke1-0/+4
2010-07-04s3: Pass the new server_id through reinit_after_forkVolker Lendecke1-3/+7
2010-07-04s3: Fix some type-punned warningsVolker Lendecke1-1/+1
2010-07-04s3: Remove serverid_[de]register_selfVolker Lendecke1-6/+8
This removes some deep references to procid_self()
2010-06-25Don't use frame as the talloc ctx in open_schannel_session_store(), as this ↵Jeremy Allison1-1/+1
breaks running from inetd (we free frame below). Use NULL instead. Jeremy.
2010-06-25Change talloc_autofree_context() to frame in Andrew's schannel.tdb ↵Jeremy Allison1-1/+1
TDB_CLEAR_IF_FIRST changes. Using talloc_autofree_context() has undesirable effects when forked subprocesses exit. Jeremy.
2010-06-25s3:schannel Open the schannel_state.tdb at startupAndrew Bartlett1-0/+8
This will allow future TDB_CLEAR_IF_FIRST behaviour Signed-off-by: Jeremy Allison <jra@samba.org>
2010-06-10s3:lib make server contexts genericSimo Sorce1-12/+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-1/+6
by modules to crash due to destructors being called (found when using the vfs_aio_fork module with smb2). Jeremy.
2010-05-28s3:smbd move messaging_context and memcache into globals.cAndrew Bartlett1-26/+0
This helps vfstest, which previously had duplicate copies of these functions. Signed-off-by: Stefan Metzmacher <metze@samba.org>
2010-05-28s3:smbd split reload services/printers functions from server.cAndrew Bartlett1-82/+0
This helps vfstest, as it previously had duplicate copies of these functions. Andrew Bartlett Signed-off-by: Stefan Metzmacher <metze@samba.org>
2010-05-28s3:smbd split smbd/server.c into smbd/server.c and smbd/server_exit.cAndrew Bartlett1-146/+0
Andrew Bartlett Signed-off-by: Stefan Metzmacher <metze@samba.org>
2010-05-28s3-auth: Added a function to get the server_info from the system user.Andreas Schneider1-0/+5
Signed-off-by: Günther Deschner <gd@samba.org>
2010-05-18s3-registry: only include registry headers when really needed.Günther Deschner1-0/+1
Guenther
2010-05-13s3:smbd Remove calls to namecache_enable()Andrew Bartlett1-2/+0
This only prints a DEBUG() Andrew Bartlett
2010-05-06s3: only include gen_ndr headers where needed.Günther Deschner1-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
2010-03-26s3-smbd: Don't close stdout if we want to log to stdout.Andreas Schneider1-1/+1
2010-03-25s3: Make sure our CLEAR_IF_FIRST optimization works for serverid.tdbVolker Lendecke1-0/+4
In the child, we fully re-open serverid.tdb, which leads to one fcntl lock for CLEAR_IF_FIRST detection per smbd. This opens the tdb in the parent and holds it, so that tdb_reopen_all correctly catches the CLEAR_IF_FIRST bit.
2010-03-25s3: Make sure our CLEAR_IF_FIRST optimization works for the notify tdbsVolker Lendecke1-0/+4
The notify tdb files are opened at tconX time, which leads to one fcntl lock for CLEAR_IF_FIRST detection per smbd. This opens the tdbs in the parent and holds it, so that tdb_reopen_all correctly catches the CLEAR_IF_FIRST bit.
2010-03-25s3: Make sure our CLEAR_IF_FIRST optimization works for messaging.tdbVolker Lendecke1-0/+4
In the child, we fully re-open messaging.tdb, which leads to one fcntl lock for CLEAR_IF_FIRST detection per smbd. This opens the tdb in the parent and holds it, so that tdb_reopen_all correctly catches the CLEAR_IF_FIRST bit.
2010-03-22s3: Add "log writeable files on exit" parameterVolker Lendecke1-0/+31
This boolean option controls whether at exit time the server dumps a list of files with debug level 0 that were still open for write. This is an administrative aid to find the files that were potentially corrupt if the network connection died.
2010-03-22s3: Fix some nonempty blank linesVolker Lendecke1-1/+0
2010-03-15s3:smbd: make sure we always have a valid talloc stackframeStefan Metzmacher1-0/+3
metze
2010-03-10s3: Fix a long-standing problem with recycled PIDsVolker Lendecke1-4/+35
When a samba server process dies hard, it has no chance to clean up its entries in locking.tdb, brlock.tdb, connections.tdb and sessionid.tdb. For locking.tdb and brlock.tdb Samba is robust by checking every time we read an entry from the database if the corresponding process still exists. If it does not exist anymore, the entry is deleted. This is not 100% failsafe though: On systems with a limited PID space there is a non-zero chance that between the smbd's death and the fresh access, the PID is recycled by another long-running process. This renders all files that had been locked by the killed smbd potentially unusable until the new process also dies. This patch is supposed to fix the problem the following way: Every process ID in every database is augmented by a random 64-bit number that is stored in a serverid.tdb. Whenever we need to check if a process still exists we know its PID and the 64-bit number. We look up the PID in serverid.tdb and compare the 64-bit number. If it's the same, the process still is a valid smbd holding the lock. If it is different, a new smbd has taken over. I believe this is safe against an smbd that has died hard and the PID has been taken over by a non-samba process. This process would not have registered itself with a fresh 64-bit number in serverid.tdb, so the old one still exists in serverid.tdb. We protect against this case by the parent smbd taking care of deregistering PIDs from serverid.tdb and the fact that serverid.tdb is CLEAR_IF_FIRST. CLEAR_IF_FIRST does not work in a cluster, so the automatic cleanup does not work when all smbds are restarted. For this, "net serverid wipe" has to be run before smbd starts up. As a convenience, "net serverid wipedbs" also cleans up sessionid.tdb and connections.tdb. While there, this also cleans up overloading connections.tdb with all the process entries just for messaging_send_all(). Volker
2010-03-08Revert "Fix bug #7067 - Linux asynchronous IO (aio) can cause smbd to fail ↵Karolin Seeger1-8/+0
to respond to a read or write." This reverts commit a6ae7a552f851a399991262377cc0e062e40ac20. This fixes bug #7222 (All users have full rigths on all shares) (CVE-2010-0728). (cherry picked from commit 1c9494c76cc9686c61e0966f38528d3318f3176f)
2010-03-01s3: Abstract access to sessionid.tdb, similar to conn_tdb.cVolker Lendecke1-1/+2
2010-02-23s3: Consolidate server_id_self into the equivalent procid_self()Volker Lendecke1-1/+1
2010-02-05Fix trailing whitespace errors I added (sorry).Jeremy Allison1-3/+3
Jeremy.
2010-02-05s3-smbd: add a rate limited cleanup of brl, connections and locking dbAndrew Tridgell1-6/+42
On unclean shutdown we can end up with stale entries in the brlock, connections and locking db. Previously we would do the cleanup on every unclean exit, but that can cause smbd to be completely unavailable for several minutes when a large number of child smbd processes exit. This adds a rate limited cleanup of the databases, with the default that cleanup happens at most every 20s
2010-02-05s3-brlock: we don't need these MSG_SMB_UNLOCK calls nowAndrew Tridgell1-2/+0
These have been replaced with the min timeout in blocking.c
2010-01-26Fix bug #7067 - Linux asynchronous IO (aio) can cause smbd to fail to ↵Jeremy Allison1-0/+8
respond to a read or write. Only works on Linux kernels 2.6.26 and above. Grants CAP_KILL capability to allow Linux threads under different euids to send signals to each other. Jeremy.
2009-08-26s3/smbd: open the share_info.tdb on startup instead of tconxSteven Danneman1-0/+9
This is a small performance optimization. Instead of opening the tdb on every smb connection in the forked child process, we now open it in the parent and share the fd. This also reduces the total fd usage in the system.
2009-08-07s3:smbd: move dptr globals into struct smbd_server_connectionStefan Metzmacher1-2/+0
metze
2009-07-17Fix bug #6564 - SetPrinter fails (panics) as non root.Jeremy Allison1-0/+1
Missing become_root()/unbecome_root() around reload_services. Jeremy.
2009-07-15Make gencache more stableVolker Lendecke1-0/+1
This provides a compromise between stability and performance: gencache is a persistent database these days that for performance reasons can not use tdb transactions for all writes. This patch splits up gencache into gencache.tdb and gencache_notrans.tdb. gencache_notrans is used with CLEAR_IF_FIRST, writes to it don't use transactions. By default every 5 minutes and when a program exits, all entries from _notrans.tdb are transferred to gencache.tdb in one transaction.