1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-04 05:18:06 +03:00
Commit Graph

601 Commits

Author SHA1 Message Date
Steven Danneman
6c55518d47 s3/smbd: open the share_info.tdb on startup instead of tconx
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-26 16:34:10 -07:00
Stefan Metzmacher
59c3f5e3ca s3:smbd: move dptr globals into struct smbd_server_connection
metze
2009-08-07 14:18:17 +02:00
Jeremy Allison
6a9e003910 Fix bug #6564 - SetPrinter fails (panics) as non root.
Missing become_root()/unbecome_root() around reload_services.
Jeremy.
2009-07-17 17:36:26 -07:00
Volker Lendecke
8a17cd810f Make gencache more stable
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.
2009-07-15 10:55:20 +02:00
Aravind Srinivasan
5a4d618109 s3: forward MSG_DEBUG from smbd parent to all children
Before 3.3, an smbcontrol debug message sent to the target "smbd" would
actually be sent to all running processes including nmbd and winbindd.
This behavior was changed in 3.3 so that the "smbd" target would only
send a message to the process found in smbd.pid, while the "all" target
would send a message to all processes.

The ability to set the debug level of all processes within a single
daemon, without specifying each pid is quite useful.  This was implemented
in winbindd in 065760ed.  This patch does the same thing for smbd.

Upon receiving a MSG_DEBUG the parent smbd will rebroadcast it to all of
its children.

The printing process has been added to the list of smbd child processes,
and we now always track the number of smbd children regardless of the
"max smbd processes" setting.
2009-06-22 19:09:37 -07:00
Volker Lendecke
5a9ca3db03 Fix bug 4699: Remove pidfile on clean shutdown 2009-06-18 16:17:57 -07:00
Jeremy Allison
7d20e8f7f4 Fix bug #6476 - more then 3000 smbd-zombies in memory
We weren't reaping children in the [x]inetd case.
Jeremy.
2009-06-17 13:56:21 -07:00
Stefan Metzmacher
0099f4758e s3:smbd: create a connection_struct in SMB2 Tree Connect
metze
2009-06-03 17:54:38 +02:00
Stefan Metzmacher
c862018008 s3:smbd: move tcon specific globals to struct smbd_server_connection
metze
2009-06-03 17:54:38 +02:00
Stefan Metzmacher
75d03970b7 s3:smbd: move more session specific globals to struct smbd_server_connection
metze
2009-06-03 17:54:37 +02:00
Stefan Metzmacher
e16e7146b3 s3:smbd: move negprot related globals to struct smbd_server_connection
metze
2009-06-03 17:54:37 +02:00
Marc VanHeyningen
a4887e250b s3: Allow child processes to exit gracefully if we are out of fds
When we run out of file descriptors for some reason, every new
connection forks a child that immediately panics causing smbd to
coredump.  This seems unnecessarily harsh; with this code change we
now catch that error and merely log a message about it and exit
without the core dump.

Signed-off-by: Tim Prouty <tprouty@samba.org>
2009-05-27 13:16:17 -07:00
Volker Lendecke
63aae58fdc Use avahi to register _smb._tcp in smbd 2009-03-23 17:09:53 +01:00
Stefan Metzmacher
450252d2a1 s3:smbd: use tevent_loop_once() in the parent event loop
metze
2009-03-18 07:00:40 +01:00
Stefan Metzmacher
445b37f4f3 s3:smbd: don't exit the parent when we have no connections
This code path can't really happen anymore, because
launchd support was removed with commit e5a951325a.
But it's confusing to have that code there...

metze
2009-03-18 07:00:38 +01:00
Günther Deschner
670a22852c s3-spoolss: use DSPRINT flags instead of SPOOLS_DS flags.
Guenther
2009-02-27 13:33:15 +01:00
Jeremy Allison
faa1100d22 More warning fixes for Solaris.
Jeremy.
2009-02-23 16:22:43 -08:00
Volker Lendecke
5a5af073bb Do not close an fd we know is -1 2009-02-21 12:54:06 +01:00
Steven Danneman
193be432a2 s3: Refactor of madvise() usage in c441f58d
* move to reinit_after_fork() to protect all Samba daemons
* only protect parent processes
2009-02-20 16:30:13 -08:00
todd stecher
03421944b2 S3: Stop creating SMBD cores when failing to create a pipe.
This was uncovered when the MAX FD limit was hit, causing an instant core
and invoking error reporting. This fix causes SMBD to exit, but without
building a core.
2009-02-18 18:08:33 -08:00
todd stecher
c441f58ded S3: Allow SMBD processes to survive in low memory condidtions
This commit adds a configure argument which allows for setting MADV_PROTECT
in the madvise() API.  With this enabled the kernel won't kill SMBD when
it's running low on memory.
2009-02-18 18:08:32 -08:00
Volker Lendecke
8dbfd59adc Fix a valgrind error 2009-02-14 08:05:26 +01:00
Michael Adam
ba482e6b8d s3:smbd: make smbd_open_one_socket() static
Michael
2009-01-29 15:42:10 +01:00
Stefan Metzmacher
3ee1acdc8e s3:smbd: ignore open_socket_in() failures
This restores the pre e0232934fb
behavior.

metze
2009-01-29 15:33:47 +01:00
Stefan Metzmacher
e0232934fb s3:smbd: wait for new connection via fd events
metze
2009-01-27 15:28:12 +01:00
Stefan Metzmacher
bf2347bd7d s3:smbd: make mdns registration event driven.
metze
2009-01-27 15:28:11 +01:00
Stefan Metzmacher
e11e82318c s3:smbd: make inetd code path more clear
metze
2009-01-27 15:28:11 +01:00
Stefan Metzmacher
4a22713495 s3:smbd: remove pointless respond_to_all_remaining_local_messages() function
This the process_kernel_oplock() function never response to messages,
it only generates messages to ourself.

metze
2009-01-27 15:28:10 +01:00
Stefan Metzmacher
ac61f650ae s3:smbd: use signal events for SIGTERM, SIGHUP and SIGCHLD
metze
2009-01-27 15:28:07 +01:00
Stefan Metzmacher
27f812f3a8 s3:smbd: move all code that handles a client connection into smbd_process()
metze
2009-01-27 15:28:07 +01:00
Stefan Metzmacher
6a2b7f9815 s3:smbd: we should setup the client socket in the same way in all code pathes
We should behave the same in inetd, interactive and deamon modes.

metze
2009-01-27 15:28:07 +01:00
Stefan Metzmacher
7d93d3d4b8 s3:namecache: remove unused namecache_shutdown() function
metze
2009-01-27 15:28:06 +01:00
Stefan Metzmacher
830b31a41a s3:smbd: we don't need to call message_dispatch() anymore it's event triggered now
metze
2009-01-22 12:37:31 +01:00
Stefan Metzmacher
048f8dba14 s3: always call run_events() before and after sys_select()
And always setup the fd events.

metze
2009-01-22 12:37:29 +01:00
Volker Lendecke
520f88143b Remove some unused code 2009-01-20 16:41:32 +01:00
Stefan Metzmacher
dc6edf1ab4 s3:cluster: fix ctdb ipv6 support
We need to use CTDB_CONTROL_TCP_CLIENT instead of CTDB_CONTROL_TCP_ADD.

CTDB_CONTROL_TCP_CLIENT has support for 2 modes in newer ctdb versions:

- with struct ctdb_control_tcp it only supports ipv4.
- with struct ctdb_control_tcp_addr it supports ipv4 and ipv6.

You need new header files which defines struct ctdb_control_tcp_addr,
but at runtime it should be fine to work against older
ctdb versions (<= 1.0.68).

metze
2009-01-16 15:16:59 +01:00
Michael Adam
39ec8791f8 s3: make better use of ccache by not including version.h in every C-file.
version.h changes rather frequently. Since it is included via includes.h,
this means each C file will be a cache miss. This applies to the following
situations:

* When building a new package with a new Samba version

* building in a git branch after calling mkversion.sh
  after a new commit (i.e. virtually always)

This patch improves the situation in the following way:

* remove inlude "version.h" from includes.h

* Use samba_version_string() instead of SAMBA_VERSION_STRING
  in files that use no other macro from version.h instead of
  SAMBA_VERSION_STRING.

* explicitly include "version.h" in those files that use more
  macros from "version.h" than just SAMBA_VERSION_STRING.

Michael
2009-01-15 22:56:01 +01:00
Stefan Metzmacher
3dde0cbb76 s3:smbd: move all globals and static variables in globals.[ch]
The goal is to move all this variables into a big context structure.

metze
2009-01-08 12:22:21 +01:00
Stefan Metzmacher
defb574c25 s3:smbd: variables in a main() don't need to be static
metze
2009-01-08 12:22:21 +01:00
Stefan Metzmacher
7a5d07a1c1 s3:smbd: open_sockets_smbd() don't need a static variable arrount atexit()
open_sockets_smbd() is only called once.

metze
2009-01-08 12:22:21 +01:00
Bo Yang
022e2f8199 clean event context after child is forked.
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2009-01-05 15:07:31 +01:00
Tim Prouty
99c68fa23e s3 build: Fix warning 2008-12-30 12:53:34 -08:00
Stefan Metzmacher
465176b7e2 s3:cluster: register the client connection via CTDB_CONTROL_TCP_ADD
This means we correctly pass IPv6 addresses too.
(CTDB_CONTROL_TCP_CLIENT was IPv4 only)

metze
2008-12-30 16:18:08 +01:00
Yasuma Takeda
611ef42053 Fix bug #5944 - nmbd does not boot if socket adress = "" is defined in smb.conf 2008-12-05 13:37:51 -08:00
Jeremy Allison
8962be69c7 Make us clean under valgrind --leak-check=full by using talloc_autofree_context() instead of NULL.
Remove the code in memcache that does a TALLOC_FREE on stored pointers. That's a disaster waiting
to happen. If you're storing talloc'ed pointers, you can't know their lifecycle and they should
be deleted when their parent context is deleted, so freeing them at some arbitrary point later
will be a double-free.
Jeremy.
2008-11-06 20:48:13 -08:00
Jelmer Vernooij
6a2caa34b2 Remove sys_chroot() - libreplace already provides an alternative. 2008-11-01 03:46:09 +01:00
Günther Deschner
9289537c90 s3-build: fix the build of smbd.
Guenther
2008-10-18 21:45:49 +02:00
Jelmer Vernooij
2d89b52be8 Use separate make variables for libutil and libcrypto. 2008-10-18 14:28:40 +02:00
Jeremy Allison
f6c883b4b0 Simply our main loop processing. A lot :-). Correctly use events for all the previous "special" cases.
A step on the way to adding signals to the events and being able to merge the S3 event system with
the S4 one.
Jeremy.
2008-10-03 14:18:35 -07:00
Jeremy Allison
0595ecb3a6 Fix for bug #5688 from SATOH Fumiyasu <fumiyas@osstech.co.jp>. LPQ process is orphaned if socket address parameter is invalid.
If the "socket address" parameter is a null string that is an invalid value for Samba 3.2 but valid for Samba 3.0.
Jeremy.
(This used to be commit c65726d418)
2008-08-14 11:22:47 +02:00