diff options
author | Andrew Tridgell <tridge@samba.org> | 2002-02-18 11:07:57 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2002-02-18 11:07:57 +0000 |
commit | c2729d59a631822c7e5545d13a2eff8ed237401b (patch) | |
tree | 2877fdcd3c83942382a15a33a67eaa054da2b42c /source3/lib | |
parent | 1736b99a50bf3f6a082df94a1f94bc1e9796dea8 (diff) | |
download | samba-c2729d59a631822c7e5545d13a2eff8ed237401b.tar.gz samba-c2729d59a631822c7e5545d13a2eff8ed237401b.tar.bz2 samba-c2729d59a631822c7e5545d13a2eff8ed237401b.zip |
serialise all domain auth requests
this is needed because W2K will send a TCP reset to any open
connections that have not done a negprot when a second connection is
made. This meant that under heavy netlogon load a Samba domain member
would fail authentications.
Jeremy, you may wish to port this to 2.2.x
(This used to be commit eb196070e62b45b113e5712f27198c50c5c95657)
Diffstat (limited to 'source3/lib')
-rw-r--r-- | source3/lib/messages.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/source3/lib/messages.c b/source3/lib/messages.c index 096452784a..7ce050d70d 100644 --- a/source3/lib/messages.c +++ b/source3/lib/messages.c @@ -458,3 +458,33 @@ BOOL message_send_all(TDB_CONTEXT *conn_tdb, int msg_type, } /** @} **/ + + +/* + lock the messaging tdb based on a string - this is used as a primitive form of mutex + between smbd instances. +*/ +BOOL message_named_mutex(const char *name) +{ + TDB_DATA key; + + if (!message_init()) return False; + + key.dptr = name; + key.dsize = strlen(name)+1; + + return (tdb_chainlock(tdb, key) == 0); +} + +/* + unlock a named mutex +*/ +void message_named_mutex_release(const char *name) +{ + TDB_DATA key; + + key.dptr = name; + key.dsize = strlen(name)+1; + + tdb_chainunlock(tdb, key); +} |