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

1975 Commits

Author SHA1 Message Date
Volker Lendecke
89c785c47a s3: Fix a long-standing problem with recycled PIDs
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-10 16:07:10 +01:00
Björn Jacke
a4dc50ef12 s3: add missing Makefile.in changes for vfs_crossrename 2010-03-08 17:53:18 +01:00
Jeff Layton
f4cb528ac5 samba: remove cifs-utils tools from build systems
Now that cifs-utils are their own project, we need to go ahead and pull
them out of the samba tree. This patch represents the first step toward
that end.

Remove the cifs-utilities from the source3 and source4 builds. Please
pay particular attention to the source4 piece. I'm not at all familiar
with the build system there, and would appreciate someone sanity
checking my changes.

It also adds a small README.cifs-utils file in the topdir. This is
optional, but I think it's a good idea to carry this for a release or
two.

Once this patch looks ok, I'll plan to do another patch to actually
remove the client dir and the relevant docs-xml files from the tree
altogether.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
2010-03-08 09:06:40 -05:00
Matthieu Patou
92785f9af6 s3: Fix build file due to file move. Use the new path of iniparser
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2010-03-03 09:22:39 +01:00
Matthieu Patou
1af5a6d359 s3: Allow pam_winbind.c to build without localedir.c
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2010-03-03 09:22:38 +01:00
Michael Adam
6fa767fbb2 s3: build sddl.c in samba3 2010-03-03 09:16:35 +01:00
Simo Sorce
be026a6fd8 s3:groupmap revert to tdb storage
Group mapping needs to be cluster aware, and this means using the tdb backend.
Remove ldb group mapping as this is not cluster aware.
2010-03-01 16:09:58 -05:00
Volker Lendecke
d6a6872506 s3: Abstract access to sessionid.tdb, similar to conn_tdb.c 2010-03-01 17:53:22 +01:00
Simo Sorce
3b12c38ac0 s3:schannel streamline interface
Make calling schannel much easier by removing the need to explicitly open the
database. Let the abstraction do it instead.
2010-02-23 12:46:50 -05:00
Simo Sorce
61b7a24f16 s3 move the sitename cache in its own file 2010-02-23 12:46:26 -05:00
Kai Blin
b99d9f86e4 libwbclient: Separate out the async functions 2010-02-13 14:30:36 +01:00
Volker Lendecke
4c1c3f2549 s3: Implement global locks in a g_lock tdb
This is the basis to implement global locks in ctdb without depending on a
shared file system. The initial goal is to make ctdb persistent transactions
deterministic without too many timeouts.
2010-02-12 23:12:09 +01:00
Björn Jacke
55d65ba721 s3:nsswitch: also use pthread CFLAGS for the nsswitch modules that might require it 2010-02-04 11:03:55 +01:00
Björn Jacke
acedd1c832 s3: fix build on Tru64 after it broke with deactivating pthread pool support 2010-02-04 10:37:17 +01:00
Björn Jacke
a20b43f23f s3: link thread objects in libsmbclient only and adjust linker flags 2010-01-29 15:26:36 +01:00
Lars Müller
2f9eb6bff5 s3: Install and uninstall the static version of libwbclient
This requires to call configure with --enable-static which isn't the case
by default.
2010-01-27 22:40:19 +01:00
Lars Müller
2dd301e5cd Add dependency of bin/smbfilter to libwbclient. 2010-01-26 22:54:15 +01:00
Björn Jacke
5439e1a03f s3: fix detection and flags for using pthread
I hope this fixes the build on Tru64, IRIX and maybe bug #6983
2010-01-26 00:19:10 +01:00
Volker Lendecke
ff0274c519 s3: Add NTLMSSP_FEATURE_CCACHE
Uses the winbind ccache to do authentication if asked to do so
2010-01-24 20:32:17 +01:00
Olivier Sessink
31e142854b s3: Add the "scannedonly" vfs virus scanner interface module 2010-01-12 22:57:18 +01:00
Volker Lendecke
6f0e7b9465 s3: Trim libnss_wins.so 2010-01-10 13:37:40 +01:00
Volker Lendecke
0f9268bde9 s3: Trim down some utilities a bit 2010-01-10 13:28:08 +01:00
Volker Lendecke
283a73ca9f s3: Trim down smbcontrol a bit 2010-01-03 21:14:58 +01:00
Andrew Bartlett
ba2cfceb96 libcli/auth Make gd's NDR NTLMSSP parsers helpers common
(but not built in Samba4 for now)
2009-12-22 21:07:51 +01:00
Volker Lendecke
9b6b01aab6 s3:winbind: Add a lower-cost alternative to wbinfo -t: wbinfo --ping-dc
This just does a NULL RPC call through an existing NETLOGON connection. If
someone knows an operation that "just works" and does not return NOT_SUPPORTED,
please tell me :-)
2009-12-21 23:23:52 +01:00
Volker Lendecke
c25d9ad73d s3: Remove unused winbindd_dual_userinfo 2009-12-21 16:27:19 +01:00
Michael Adam
6dd60008c4 s3:add split_tokens, a cmdline tool to test next_token_talloc()
Michael
2009-12-01 00:55:53 +01:00
Michael Adam
92547d2873 s3:fix linking of the t_str* test programs
Michael
2009-12-01 00:55:35 +01:00
Michael Adam
b82f6855a2 s3:fix linking of libbigballofmud (on my box at least)
Michael
2009-12-01 00:55:35 +01:00
Volker Lendecke
7bbee8dc17 s3: Add a regression test for bug 6898 2009-11-29 16:12:51 +01:00
Günther Deschner
d6c60f8447 s3-nsstest: drastically shrink size and dependencies of nsstest binary.
The size went down from 6.4M to 104K on my box.

Guenther
2009-11-27 10:47:11 +01:00
Michael Adam
8353d47e9b s3: add dbwrap_torture - a tool to stress test tdb transactions through dbwrap
This can be used to also test tdb transactions on clustered installations
throught ctdb. The test is modeled after the ctdb_transaction.c test program
from the ctdb source code. It runs transactions in a tight loop on a test
database called "transactions.tdb" (by default), increasing a counter in each
iteration. In a clustered environment, a counter is maintained for each node.

Michael
2009-11-23 23:51:40 +01:00
Günther Deschner
eea5a166e7 s3-build: delete more object files for "make clean".
Guenther
2009-11-20 15:49:48 +01:00
Günther Deschner
fc9f199f26 s3-build: really fix build of winbind_krb5_locator.
Guenther
2009-11-19 13:48:44 +01:00
Günther Deschner
bf45447aaa s3-build: make sure to remove libds and client object files on make clean.
Guenther
2009-11-19 13:48:33 +01:00
Andrew Bartlett
7a290130bd lib/util Use rfc1738.c from Squid for all our URL encode/decode needs.
Andrew Bartlett
2009-11-02 16:36:52 +11:00
Björn Jacke
a80a0b7728 s3:Makefile: add LIBREPLACE_LIBS for talloc, tdb and wbclient 2009-10-31 10:37:44 +01:00
Björn Jacke
4ae950d211 ѕ3:buildsystem: fix depenencies for libreplace
This problem became visible after adding the picky -z defs linker option: On
Solaris libreplace had unresolved symbols, which showed up in the libtalloc
build. PAM_WINBIND_EXTRA_LIBS and WINBIND_NSS_EXTRA_LIBS had been workarounds
to make things work at two placeѕ. These variables have been obsoleted now.
This patch introduces LIBREPLACE_LIBS which contans the linker flags needed for
linking anything using libreplace.
2009-10-31 00:48:20 +01:00
Günther Deschner
184afaa04c s3-secrets: use autogenerated code for TRUSTED_DOM_PASS struct parsing from a tdb.
Guenther
2009-10-29 10:49:39 +01:00
Günther Deschner
e92e33238c s3: add secrets.idl.
Guenther
2009-10-29 10:49:35 +01:00
Stefan (metze) Metzmacher
25f96a4058 Add in Metze's new code to ndr encode the user.DOSATTRIB
blobs. Next I'll change the create timestamp and dos attribute
code to use this.
2009-10-28 15:42:47 -07:00
Björn Jacke
78a5e26783 s3:Makefile: add some explicit dependencies to libc
Add libc as explicit dependency where we use "-z defs" linker flags. This is
to silence the Sun linker. Otherwise it whines:

malloc  ... (symbol belongs to implicit dependency /lib/libc.so.1)
2009-10-21 22:50:39 +02:00
Günther Deschner
b9d9353b54 nsswitch: fix the build of the winbind krb5 locator plugin.
Guenther
2009-10-21 02:56:18 +02:00
Jeremy Allison
c79e2ff69a Fix the pam_smbpass.so build with the recent linker flag changes.
Jeremy.
2009-10-20 13:09:42 -07:00
Björn Jacke
205284c904 s3:Makefile: rename LDSHFLAG variables to make meaning more obvious 2009-10-20 20:47:22 +02:00
Björn Jacke
f96f8f9c77 s3: make unresolved symbols in libs throw errors
except for the Samba internal plugins unresolved symbol references should not
show up in shared libraries. For historical reasons it's the default behaviour
of linkers to ignore those in shared libs. We use -z defs (alias
--no-undefined) to not ignore them in shared libs.
2009-10-20 10:52:06 +02:00
Björn Jacke
438f400680 s3: allow using different LDFLAGS for internal libs/plugins
internal libs have unresolved symbols intentionally.
Thanks to Buchan Milne for suggestion and patch. This addresses #6792.
2009-10-20 10:52:06 +02:00
Günther Deschner
e8e1d60941 s3-libnetapi: add I_NetLogonControl{2} skeleton.
Guenther
2009-10-16 10:50:28 +02:00
Günther Deschner
449ab398f5 s3-spnego: Fix Bug #6815. Windows 2008 R2 SPNEGO negTokenTarg parsing failure.
When parsing a SPNEGO session setup retry (falling back from KRB5 to NTLMSSP),
we failed to parse the ASN1_ENUMERATED negResult in the negTokenTarg, thus
failing spnego_parse_auth() completely.

By just using the shared spnego/asn1 code, we get the parsing the correct way.

Guenther
2009-10-15 14:41:22 +02:00
Günther Deschner
a3306e352d s3-winbindd: add wbint_ChangeMachineAccount implementation.
Guenther
2009-10-13 12:42:44 +02:00