1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-27 14:04:05 +03:00

629 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
Michael Adam
6fa767fbb2 s3: build sddl.c in samba3 2010-03-03 09:16:35 +01:00
Andrew Tridgell
cebbc9a6f1 s3-includes: enable TYPESAFE_QSORT() in s3 2010-02-14 18:44:20 +11:00
Andrew Bartlett
802e9328ed s3:ntlmssp: only include ntlmssp.h where actually needed
Andrew Bartlett
2009-12-22 21:07:53 +01:00
Günther Deschner
ae20737066 s3-kerberos: do not include authdata headers before including krb5 headers.
Guenther
2009-11-27 18:31:13 +01:00
Günther Deschner
04f8c229de s3-kerberos: only use krb5 headers where required.
This seems to be the only way to deal with mixed heimdal/MIT setups during
merged build.

Guenther
2009-11-27 16:36:00 +01:00
Günther Deschner
3d679a3b5f s3-rpc: Avoid including every pipe's client and server stubs everywhere in samba.
Guenther
2009-11-26 20:03:17 +01:00
Günther Deschner
b4e40958b7 s3-kerberos: add smb_krb5_principal_get_realm().
Guenther
2009-11-12 10:22:39 +01:00
Günther Deschner
440db5a94e Revert "s3-kerberos: add smb_krb5_parse_name_flags()."
This reverts commit 17ef153b68795fec681f9ce17c198236aba2b1c2.
2009-11-06 13:48:23 +01:00
Günther Deschner
60bf0eb607 s3-kerberos: modify cli_krb5_get_ticket to take a new impersonate_princ_s arg.
Guenther
2009-11-06 13:31:17 +01:00
Günther Deschner
35dcc133c9 s3-kerberos: add smb_krb5_get_{creds,credentials} incl. support for S4U2SELF impersonation.
Guenther
2009-11-06 12:43:03 +01:00
Günther Deschner
17ef153b68 s3-kerberos: add smb_krb5_parse_name_flags().
Guenther
2009-11-06 12:43:03 +01:00
Simo Sorce
99cdbe3571 Fix builds with external talloc
Make sure we do not reference our internal talloc directly.
Let configure define what talloc.h file to use so that builds that use an
extrenal talloc do not include 2 different versions of the talloc header.
2009-10-09 13:14:08 -04:00
Günther Deschner
cd82d4ba56 s3: add perfcount idl and generated files.
Guenther
2009-10-01 12:19:43 +02:00
Günther Deschner
503d035814 spnego: share spnego_parse.
Guenther
2009-09-17 01:12:20 +02:00
Andrew Bartlett
5a01071692 libcli:nbt put util_net.c protos in new header file
This fixed a very odd build problem due to util.h importing
system/network.h being imported before the uid_wapper code.

Andrew Bartlett
2009-09-15 10:38:53 -07:00
Günther Deschner
d258fb4d0d s3-schannel: use NL_AUTH_SIGNATURE for schannel sign & seal (client & server).
Guenther
2009-09-11 03:00:35 +02:00
Jeremy Allison
c69f92d16d Second attempt at fix for bug 6529 - Offline files conflict with Vista and Office 2003.
Confirmation from reporter that this fixes the issue in master on ext3/ext4.
Back-ports to follow.
Jeremy.
2009-08-24 20:57:37 -07:00
Volker Lendecke
1a22baa817 s3: Add talloc_dict.[ch] 2009-08-16 12:38:19 +02:00
Jeremy Allison
650445fc3c Fix bug #5714 - NetBSD, ENODATA undefined, at least some releases.
Jeremy.
2009-08-06 15:09:01 -07:00
Andrew Tridgell
e2aa38a201 define uwrap_enabled() on Samba3
s3 doesn't use uwrap yet, but it uses some common coe in lib/, and so
needs a dummy version of the uwrap_enabled() macro
2009-08-06 07:38:43 +10:00
Jeremy Allison
c9c3d4312d The migration to struct stat_ex broke the calculation of
create time from the existing timestamps (for systems
that need to do this). Once the write time is changed
via a sticky write, the create time might need to be
recalculated. To do this I needed to add a bool into
struct stat_ex to remember if the st_ex_btime field
was calculated, or read from the OS. Also fixed the
returning of modified write timestamps in the return
from NTCreateX, SMBattr and SMBattrE (which weren't
taking into account the modified timestamp stored
in the open file table). Attempting to fix an issue
with Excel 2003 and offline files. Volker and Metze,
please review.
Jeremy
2009-07-08 17:51:35 -07:00
Matt Kraai
dcf03b9d43 do not redefine _INT32 2009-07-03 11:50:53 +02:00
Volker Lendecke
55dae4469c Add tstream_read_packet 2009-06-27 23:17:49 +02:00
Timur I. Bakeyev
ab88f9017c Set SIGRTMIN to NSIG
In the includes we define SIGRTMIN to 32 if it's not defined already. This
value could be fairly low and it's better to use NSIG(number of defined
signals) as the lower mark for the available signals.

We have similar defenition in the source3/smbd/aio.c, which can be safely
removed, as it comes from includes.h then.

With regards,
Timur Bakeyev.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
2009-06-08 13:20:52 +02:00
Volker Lendecke
1769c8d81b Add some samba-style tldap utility functions 2009-06-06 13:10:30 +02:00
Volker Lendecke
7194937eea Add the early start of an async ldap library
There's a lot of things this does not do yet: For example it does not parse the
reply blob in the sasl bind, it does not do anything with controls yet, a lot
of the ldap requests are not covered yet. But it provides a basis for me to
play with a pdb_ads passdb module.
2009-06-06 13:10:30 +02:00
Volker Lendecke
ab5b1431a0 Gna, how long do I program in C now??? :-) 2009-05-27 08:10:28 +02:00
Volker Lendecke
3ada1a19ab Attempt to fix the build on HP/UX 2009-05-26 23:38:22 +02:00
Volker Lendecke
dd0506d15d Attempt to fix the build on NetBSD 2009-05-26 23:20:34 +02:00
Björn Jacke
4db54fff13 Revert "s3: fix build on systems with struct stat member st_flags"
for a cleaner and more complete patch that Volker has in the queue :-)
2009-05-26 23:19:00 +02:00
Björn Jacke
93e16a08d4 s3: fix build on systems with struct stat member st_flags 2009-05-26 22:41:45 +02:00
Volker Lendecke
49ca690b4b Introduce "struct stat_ex" as a replacement for SMB_STRUCT_STAT
This patch introduces

struct stat_ex {
        dev_t           st_ex_dev;
        ino_t           st_ex_ino;
        mode_t          st_ex_mode;
        nlink_t         st_ex_nlink;
        uid_t           st_ex_uid;
        gid_t           st_ex_gid;
        dev_t           st_ex_rdev;
        off_t           st_ex_size;
        struct timespec st_ex_atime;
        struct timespec st_ex_mtime;
        struct timespec st_ex_ctime;
        struct timespec st_ex_btime; /* birthtime */
        blksize_t       st_ex_blksize;
        blkcnt_t        st_ex_blocks;
};
typedef struct stat_ex SMB_STRUCT_STAT;

It is really large because due to the friendly libc headers playing macro
tricks with fields like st_ino, so I renamed them to st_ex_xxx.

Why this change? To support birthtime, we already have quite a few #ifdef's at
places where it does not really belong. With a stat struct that we control, we
can consolidate the nanosecond timestamps and the birthtime deep in the VFS
stat calls.

At this moment it is triggered by a request to support the birthtime field for
GPFS. GPFS does not extend the system level struct stat, but instead has a
separate call that gets us the additional information beyond posix. Without
being able to do that within the VFS stat calls, that support would have to be
scattered around the main smbd code.

It will very likely break all the onefs modules, but I think the changes will
be reasonably easy to do.
2009-05-26 17:48:23 +02:00
Jelmer Vernooij
2eff2de2f8 Move the security_descriptor utility code to the top-level. 2009-04-21 15:14:35 +02:00
Jelmer Vernooij
cecd142f2b Move some libgpo files to root.
Signed-off-by: Günther Deschner <gd@samba.org>
2009-04-20 23:15:43 +02:00
Jeremy Allison
2ff80f0d76 Link in the threads functions, not yet used.
Jeremy.
2009-04-10 14:45:45 -07:00
Volker Lendecke
ccd293ba0e Remove async_req 2009-04-08 23:11:59 +02:00
Andrew Bartlett
574a6a8c35 s3:kerberos Rework smb_krb5_unparse_name() to take a talloc context
Signed-off-by: Günther Deschner <gd@samba.org>
2009-04-07 13:25:36 +02:00
Stefan Metzmacher
2654653f55 s3:libsmb: add a much simplified smb_siging infrastructure
It's the job of the caller to maintain the seqnum/mid mapping.

Hopefully we can use this code in s4 later too.

metze
2009-03-23 12:21:13 +01:00
Günther Deschner
7fbdf8aae9 s3-spoolss: remove include/rpc_spoolss.h.
Guenther
2009-03-18 17:09:39 +01:00
Stefan Metzmacher
b00204a461 lib/util: remove samba specific talloc_get_type_abort()
metze
2009-03-03 18:07:33 +01:00
Jelmer Vernooij
9940c7690e Use shared header file for character sets, remove old definitions from samba3 smb.h. 2009-03-01 22:31:10 +01:00
Jelmer Vernooij
8568b4fa9f Add header files for secace and secacl. 2009-03-01 20:06:55 +01:00
Jelmer Vernooij
9bd0cf8d60 Keep using Samba3's charset.h for now. 2009-03-01 18:02:24 +01:00
Jelmer Vernooij
9f6e2d6485 Sync smb_iconv_t type, convert_string return type with Samba 3 equivalents. 2009-03-01 12:59:58 +01:00
Volker Lendecke
408cde8fca Add tevent_req helpers to includes.h 2009-02-26 13:04:34 +01:00
Stefan Metzmacher
d1922725c6 s3: remove unused smb_ldap.h
metze
2009-02-24 17:55:37 +01:00
Björn Jacke
00913a73c7 prefer gssapi header files from subdirectory
this fixes some compile time noise on FreeBSD 7
2009-02-23 13:41:16 +01: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
Jeremy Allison
7d73130125 Fix the build. When you do "make distclean; ./autogen; ./configure; make" and it still doesn't build you know it's messed up.
Jeremy.
2009-02-13 10:36:11 -08:00