summaryrefslogtreecommitdiff
path: root/source3/nmbd/nmbd.c
AgeCommit message (Collapse)AuthorFilesLines
2011-03-02s3-server_id: only include server_id where needed.Günther Deschner1-0/+1
Guenther
2011-02-06s3: Fix some nonempty blank linesVolker Lendecke1-4/+3
2011-01-07s3-nmbd: Fix bug #7875Björn Baumbach1-2/+2
nmbd --port didn't work Signed-off-by: Stefan Metzmacher <metze@samba.org> Autobuild-User: Stefan Metzmacher <metze@samba.org> Autobuild-Date: Fri Jan 7 17:44:08 CET 2011 on sn-devel-104
2011-01-07s3: Remove some unused codeVolker Lendecke1-9/+1
2011-01-07s3: Make nmbd listen on the unexpected socketVolker Lendecke1-0/+5
2010-11-14Fix the unexpected.tdb database problem. Change nmbd to store theJeremy Allison1-1/+3
transaction id of packets it was requested to send via a client, and only store replies that match these ids. On the client side change clients to always attempt to ask nmbd first for name_query and node_status calls, and then fall back to doing socket calls if we can't talk to nmbd (either nmbd is not running, or we're not root and cannot open the messaging tdb's). Fix readers of unexpected.tdb to delete packets they've successfully read. This should fix a long standing problem of unexpected.tdb growing out of control in noisy NetBIOS envioronments with lots of bradcasts, yet still allow unprivileged client apps to work mostly as well as they already did (nmblookup for example) in an environment when nmbd isn't running. Jeremy. Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Sun Nov 14 05:22:45 UTC 2010 on sn-devel-104
2010-11-14Move error reporting of messaging context creation fail intoJeremy Allison1-15/+6
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-11-02s3-debug Convert from x_file to real file descriptors.Andrew Bartlett1-2/+0
X_FILE does not gain us anything in this use case, we want our log messages on disk, not in a buffer, and we don't gain anything from the X_FILE api. I discussed the matter with tridge, who feels that to use FILE in the first place was a mistake, and that X_FILE isn't any better, but was a stop-gap to avoid issues on solaris. Andrew Bartlett
2010-11-02s3-debug Impove setup_logging() to specify logging to stderrAndrew Bartlett1-4/+7
This change improves the setup_logging() API so that callers which wish to set up logging to stderr can simply ask for it, rather than directly modify the dbf global variable. Andrew Bartlett
2010-10-08Move talloc_enable_null_tracking() to the s3 daemonsVolker Lendecke1-1/+7
2010-08-26s3-nmbd: move nmbd proto out of main proto.hGünther Deschner1-0/+1
Guenther
2010-08-05s3-popt: Only include popt-common.h when needed.Andreas Schneider1-0/+1
2010-07-04s3: Pass the new server_id through reinit_after_forkVolker Lendecke1-2/+6
2010-07-04s3: Fix some type-punned warningsVolker Lendecke1-6/+9
2010-07-04s3: Remove serverid_[de]register_selfVolker Lendecke1-2/+3
This removes some deep references to procid_self()
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-10s3: Fix a long-standing problem with recycled PIDsVolker Lendecke1-1/+6
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-02-23s3: Consolidate server_id_self into the equivalent procid_self()Volker Lendecke1-1/+1
2010-02-23s3-nmbd: Remove obsolete signal type cast.Andreas Schneider1-2/+2
2010-02-08s3:nmbd: also listen explicit on the subnet broadcast addressesStefan Metzmacher1-2/+3
And send replies always via the unicast address of the subnet. This behavior is off by default (as before) and can be enabled with "nmbd:bind explicit broadcast = yes". metze
2009-07-15Make gencache more stableVolker Lendecke1-0/+2
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-06-18Fix bug 4699: Remove pidfile on clean shutdownVolker Lendecke1-0/+2
2009-05-27s3: Allow child processes to exit gracefully if we are out of fdsMarc VanHeyningen1-2/+2
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-03-21s3:nmbd: implement a MAILSLOT => CLDAP proxy for NETLOGON_SAMLOGON requestsStefan Metzmacher1-0/+6
This will be used as part a the franky setup, where nmbd will forward the MAILSLOT requests to the local samba4 CLDAP server. "nmbd_proxy_logon:cldap_server = 127.0.0.1" would configure and activate this feature. metze
2009-02-23More warning fixes for Solaris.Jeremy Allison1-7/+7
Jeremy.
2009-01-27s3:nmbd: handle SIG_TERM and SIGHUP via teventStefan Metzmacher1-48/+67
metze
2009-01-27s3:nmbd: as the sig_term() handler only sets a flag we don't need to block ↵Stefan Metzmacher1-3/+0
SIGTERM The arguments of commit d98bea900ee694cdba83149620c65bd7f8765f26 are no longer valid. metze
2009-01-27s3:nmbd: install the SIG_DFL handler for SIGTERM while we're waiting for ↵Stefan Metzmacher1-12/+4
interfaces We should handle all 3 cases where we actively wait for interfaces in the same way. metze
2009-01-22s3:nmbd: we don't need to call message_dispatch() anymore it's event ↵Stefan Metzmacher1-4/+0
triggered now metze
2009-01-15s3: make better use of ccache by not including version.h in every C-file.Michael Adam1-1/+1
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-05clean event context after child is forked.Bo Yang1-1/+2
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2008-11-03s3: fix a few "shadows a global declaration" warningsTim Prouty1-4/+4
2008-10-23Use sockaddr_storage only where we rely on the size, use sockaddrJelmer Vernooij1-2/+2
otherwise (to clarify we can also pass in structs smaller than sockaddr_storage, such as sockaddr_in).
2008-10-18Use separate make variables for libutil and libcrypto.Jelmer Vernooij1-2/+2
2008-08-19Fix bug 5697 nmbd spins in reload_interfaces when only loopback has an IPv4 ↵Jeremy Allison1-2/+2
address reported by Ted Percival <ted@midg3t.net>. Jeremy. (This used to be commit ab06efccf31fbc899536d2681a2076e6dfd65b9e)
2008-08-13first cut at adding full transactions for ctdb to samba3Andrew Tridgell1-4/+0
(This used to be commit f91a3e0f7b7737c1d0667cd961ea950e2b93e592)
2008-06-26nmbd: untangle logic in nmbd_messaging_context() slightly.Michael Adam1-2/+5
Michael (This used to be commit 3baf9eb6a2cc6a4a153303b457d3a7067948495e)
2008-06-26nmbd: don't panic if messaging_init() fails - return NULL instead.Michael Adam1-1/+1
Michael (This used to be commit e6a403209c29bd2ec2242d654ad45276de02cb44)
2008-04-23Fix CLEAR_IF_FIRST handling of messages.tdbVolker Lendecke1-1/+1
We now open messages.tdb even before we do the become_daemon. become_daemon() involves a fork and an immediate exit of the parent, thus the parent_is_longlived argument must be set to false in this case. The parent is not really long lived :-) (This used to be commit 4f4781c6d17fe2db34dd5945fec52a7685448aec)
2008-04-18nmbd: create the messaging conntext earlierStefan Metzmacher1-3/+12
metze (This used to be commit 056ff094ad2c59992cfdb8b29696c08dab4113d7)
2008-04-18nmbd: call reinit_after_fork() in all needed casesStefan Metzmacher1-0/+5
metze (This used to be commit f68829ff14c457bfa98cb2ef9e8ec2e1a0b1d64d)
2008-04-12dbwrap: wait for tdb2 change notifies in smbd, nmbd and winbinddStefan Metzmacher1-0/+8
metze (This used to be commit 64450cc1e441355aa8925b7183e90872eeab20b1)
2008-04-11Fix bug #5386, don't keep printing the same waitingJeremy Allison1-3/+6
error message. Jeremy. (This used to be commit 12e6818df1c77810a59a2896f8c44c91fc24e7ae)
2008-03-27Fix for termination problems when no interfaces found - bug #5267.Jeremy Allison1-6/+15
Jeremy. (This used to be commit 4b03f4eb2da7a523967ace3d13e79406ade07d47)
2008-03-06Fix bug #5267 - nmbd shuts down when network interfaces go down.Jeremy Allison1-29/+39
Cause nmbd to wait for an interface, in a mode where SIGTERM will kills us (same way we wait on startup for an interface). Jeremy. (This used to be commit 5440c752ff270cc674d46f2dfa2ceb47dac030f6)
2008-01-24Fix Coverity ID 454Volker Lendecke1-1/+8
(This used to be commit 902d1d6709e47fbc8b538f28cb4364b006c431f8)
2007-12-10Remove the char[1024] strings from dynconfig. ReplaceJeremy Allison1-7/+10
them with malloc'ing accessor functions. Should save a lot of static space :-). Jeremy. (This used to be commit 52dc5eaef2106015b3a8b659e818bdb15ad94b05)
2007-12-07Don't build rpctorture anymore - not maintained. Just remove.Jeremy Allison1-1/+1
Remove all vestiges of pstring (except for smbctool as noted in previous commit). Jeremy (This used to be commit 4c32a22ac50ada3275d2ffba3c1aa08bee7d1549)
2007-11-19Remove pstring from nmbd.Jeremy Allison1-4/+6
Jeremy. (This used to be commit a317f70c229f7730279eaa323f7ebfd499257f76)