amitay/samba.git
16 years agopackaging: re-introduce Release numbering ".ctdb.<number>" build_3.2.0_ctdb.1
Michael Adam [Thu, 15 May 2008 23:39:12 +0000 (01:39 +0200)]
packaging: re-introduce Release numbering ".ctdb.<number>"

This got accidentially (?) replaced by .ctdb.test.<date>".

Michael

16 years agopackaging: enable calling RHEL-CTDB/makerpms.sh from other directories
Michael Adam [Thu, 15 May 2008 23:26:47 +0000 (01:26 +0200)]
packaging: enable calling RHEL-CTDB/makerpms.sh from other directories

Michael

16 years agopackaging: fix RHEL-CTDB build by removing duplicate winbind-32bit paragraphs
Michael Adam [Thu, 15 May 2008 23:02:56 +0000 (01:02 +0200)]
packaging: fix RHEL-CTDB build by removing duplicate winbind-32bit paragraphs

Michael

16 years agopackaging: use git-archive in RHEL-CTDB/makerpms.sh
Michael Adam [Thu, 15 May 2008 22:52:46 +0000 (00:52 +0200)]
packaging: use git-archive in RHEL-CTDB/makerpms.sh

(instead of using tar and make distclean and ...)

Michael

16 years agopackaging: use docs tarball instead of docs dir in makerpms / samba.spec
Michael Adam [Thu, 15 May 2008 22:37:12 +0000 (00:37 +0200)]
packaging: use docs tarball instead of docs dir in makerpms / samba.spec

Michael

16 years agopackaging: add a comment explaining EXTRA_OPTIONS to the makerpms script
Michael Adam [Thu, 15 May 2008 22:19:59 +0000 (00:19 +0200)]
packaging: add a comment explaining EXTRA_OPTIONS to the makerpms script

Michael

16 years agopackaging: fix a comment typo in makerpms script.
Michael Adam [Thu, 15 May 2008 22:15:31 +0000 (00:15 +0200)]
packaging: fix a comment typo in makerpms script.

Michael

16 years agonet rpc registry: add a getvalueraw subcommand.
Michael Adam [Thu, 15 May 2008 20:17:08 +0000 (22:17 +0200)]
net rpc registry: add a getvalueraw subcommand.

Michael

16 years agonet rpc registry: add boolean "raw" to rpc_registry_getvalue_internal()
Michael Adam [Thu, 15 May 2008 20:08:10 +0000 (22:08 +0200)]
net rpc registry: add boolean "raw" to rpc_registry_getvalue_internal()

and wrap it into new rpc_registry_getvalue_full() for the getvalue subcommand.

Michael

16 years agonet rpc registry: fix usage message of getvalue.
Michael Adam [Thu, 15 May 2008 12:38:01 +0000 (14:38 +0200)]
net rpc registry: fix usage message of getvalue.

Michael
(cherry picked from commit 5dedde7a5b01d47947a8ff49a57e729fe5bfc817)

16 years agonet registry: add a getvalueraw command to print the value in raw format.
Michael Adam [Thu, 15 May 2008 15:56:40 +0000 (17:56 +0200)]
net registry: add a getvalueraw command to print the value in raw format.

Michael

16 years agonet registry: refactor core of net_registry_getvalue() out
Michael Adam [Thu, 15 May 2008 15:54:24 +0000 (17:54 +0200)]
net registry: refactor core of net_registry_getvalue() out

into net_registry_getvalue_internal(), which takes a bool parameter "raw"
controlling the output format.

Michael

16 years agonet_registry: add raw output of value to print_registry_value().
Michael Adam [Thu, 15 May 2008 10:55:54 +0000 (12:55 +0200)]
net_registry: add raw output of value to print_registry_value().

Michael
(cherry picked from commit 340a706422cbca45cc63fa94d36c88f6751f4f31)

16 years agoMerge commit 'origin/v3-2-stable' into v3-2-ctdb
Michael Adam [Thu, 15 May 2008 13:10:40 +0000 (15:10 +0200)]
Merge commit 'origin/v3-2-stable' into v3-2-ctdb

Conflicts:

WHATSNEW.txt
source/param/loadparm.c

Michael

16 years agoFix client authentication with -P switch in client tools (Bug 5435).
Günther Deschner [Mon, 5 May 2008 14:58:24 +0000 (16:58 +0200)]
Fix client authentication with -P switch in client tools (Bug 5435).

Guenther
(cherry picked from commit d077ef64cd1d9bbaeb936566c2c70da508de829f)

16 years agotestparm: list registry shares with testparm.
Michael Adam [Thu, 15 May 2008 00:41:05 +0000 (02:41 +0200)]
testparm: list registry shares with testparm.

I.e., use lp_load_with_registry_shares() instead of lp_load().

Michael
(cherry picked from commit 95339c0c1ecc49049f1fc176f72a1dcac639e06d)

16 years agoloadparm: add funcion lp_load_with_registry_shares().
Michael Adam [Thu, 15 May 2008 00:39:45 +0000 (02:39 +0200)]
loadparm: add funcion lp_load_with_registry_shares().

This is like lp_load(), except that it will load the
registry shares into the services aarray when registry
shares are activated.

Michael
(cherry picked from commit b387c614ba8d1d3960f6917f03f0fd433cf2b2ee)

16 years agoloadparm: add call to do_section() to process_registry_service().
Michael Adam [Thu, 15 May 2008 00:39:02 +0000 (02:39 +0200)]
loadparm: add call to do_section() to process_registry_service().

Michael
(cherry picked from commit e1b76cd5d646bb9083cfca0d15a84183cad72882)

16 years agoloadparm: add parameter allow_registry_shares to lp_load_ex().
Michael Adam [Thu, 15 May 2008 00:25:34 +0000 (02:25 +0200)]
loadparm: add parameter allow_registry_shares to lp_load_ex().

This allows for registry shares to be activated, i.e. loaded into
the services array at lp_load() time.

Michael
(cherry picked from commit b3233ecefd5df745ba7e10511f9ab36064036b10)

16 years agoloadparm: add a function process_registry_shares()
Michael Adam [Thu, 15 May 2008 00:15:20 +0000 (02:15 +0200)]
loadparm: add a function process_registry_shares()

This loads the shares defined in registry into the services array.

Michael
(cherry picked from commit b3a90b72517c2e25d972796908aec4d2b85a030e)

16 years agoloadparm: refactor processing of service out of process_registry_globals()
Michael Adam [Thu, 15 May 2008 00:08:14 +0000 (02:08 +0200)]
loadparm: refactor processing of service out of process_registry_globals()

into new function process_registry_service().

Michael
(cherry picked from commit 2986e5174e69527465ae7ef8e108110416752b56)

16 years agoloadparm: refactor initalization of registry config out into lp_smbconf_ctx().
Michael Adam [Wed, 14 May 2008 23:40:11 +0000 (01:40 +0200)]
loadparm: refactor initalization of registry config out into lp_smbconf_ctx().

Michael
(cherry picked from commit 83cd9f74d57c462ad5c8956b3ce3c81bea429b67)

16 years agoFix Bug #5465 (joining with createcomputer=ou1/ou2/ou3).
Günther Deschner [Wed, 14 May 2008 21:50:25 +0000 (23:50 +0200)]
Fix Bug #5465 (joining with createcomputer=ou1/ou2/ou3).

Guenther
(cherry picked from commit f3251ba03a69c2fd0335861177159a32b2bc9477)
(cherry picked from commit 6d445c134d4d78f8261c998a5a83feaafb01bbca)
(cherry picked from commit 2d3f4897076663505aec23eb3ffaa1ae54cd39a5)

16 years agoFix debug message.
Jeremy Allison [Tue, 13 May 2008 22:25:14 +0000 (15:25 -0700)]
Fix debug message.
Jeremy.
(cherry picked from commit 0a68f230cd92b97efed2b3bad19a3bf9a750d401)
(cherry picked from commit 7eebe088f99d401a0f5e42e1ce593bb2ea74f245)

16 years agoEnsure we don't keep searching for sharename if it's
Jeremy Allison [Wed, 14 May 2008 21:09:02 +0000 (14:09 -0700)]
Ensure we don't keep searching for sharename if it's
not the start of the list.
Jeremy.
(cherry picked from commit 4d30a6bff9ce8e826f0109e99021d6683ec4299f)
(cherry picked from commit 3ce33843d767aad1f01fab20ba4c2bb781f8c21a)

16 years agoSecond part of patch for bug #5460. Cope with pathnames
Jeremy Allison [Tue, 13 May 2008 22:02:53 +0000 (15:02 -0700)]
Second part of patch for bug #5460. Cope with pathnames
that don't look like \xxx\yyy, cope with arbitrary length.
Jeremy.
(cherry picked from commit c3328a252430007cd716a406d85fd2a0bbbff607)
(cherry picked from commit c32448b49036a50fc0f6d2b0a2de641144fc049f)

16 years agoFix bug #5460. The problem is RHEL5.0 shipped a CIFS client
Jeremy Allison [Tue, 13 May 2008 21:03:21 +0000 (14:03 -0700)]
Fix bug #5460. The problem is RHEL5.0 shipped a CIFS client
that sets the DFS bit on pathnames but doesn't
send DFS paths. This causes lookups to fail as
the smbd/msdfs.c code now just eats the first
two parts of the pathname and uses the rest as
the local path. The previous hostname check
used to protect us from that as we knew that
when the hostname was invalid it was a local
path (and a broken client).
I didn't want to put that check back in, but
came up with another idea - even though the
hostname can be a different one, the sharename
must be valid on this machine. So we can check
for a valid sharename instead.
Jeremy.
(cherry picked from commit 5c6ed7774220dea30c2c8a564648406b4f3eacbf)
(cherry picked from commit 5beb4e67b24c31ba8294861d71023dff78d96042)

16 years agoFix bug #5464. Pointed out by Herb @ Connectathon. In fork_domain_child() we call :
Jeremy Allison [Wed, 14 May 2008 21:11:26 +0000 (14:11 -0700)]
Fix bug #5464. Pointed out by Herb @ Connectathon. In fork_domain_child() we call :

CatchChild();

*before* we fork the domain child. This call establishes a signal handler that
eats SIGCLD signals and doesn't call sys_select_signal() as the main daemon
SIGCLD handler should do. This causes the parent to ignore dead children and
time out, instead of calling winbind_child_died() on receipt of the signal. The
correct fix is to move the CatchChild call into the child code after the fork.

Jeremy.
(cherry picked from commit 6da910cc1c6baccbb143f0b2d347e31e9f84c35b)
(cherry picked from commit c8c63401423cf15ba6b56ffa80e60d4da6979a2c)

16 years agoWHATSNEW: Update changes since 3.2.0pre3.
Karolin Seeger [Wed, 14 May 2008 12:34:14 +0000 (14:34 +0200)]
WHATSNEW: Update changes since 3.2.0pre3.

Karolin
(cherry picked from commit c74663d23037067248820ad2d06eaf5125fc855a)
(cherry picked from commit 784c80a6a3862e092050fb467c37b39d843a1353)

16 years ago_netr_LogonSamLogon: fix lm session key length.
Günther Deschner [Tue, 29 Apr 2008 18:13:22 +0000 (20:13 +0200)]
_netr_LogonSamLogon: fix lm session key length.

Thanks Volker for pointing this out.

Guenther
(cherry picked from commit 7ccca9a004c7a4794781cbd7c703c53a0481bd51)
(cherry picked from commit fd5eba8e2a8467b4cfccc7ff62bcf641bd2da3fa)

16 years agoFix signing problem in the client with transs requests
Volker Lendecke [Tue, 13 May 2008 14:23:19 +0000 (16:23 +0200)]
Fix signing problem in the client with transs requests

This is a different fix than Jeremy put into 3-0-test with 040db1ce85 and other
branches with different hashes. Jeremy, I think your fix led to bug 5436, so I
reverted your fix. This fixes the original problem I found with the transs
requests for large rpc queries in a different way. Please check!

Thanks,

Volker
(cherry picked from commit 6200e8886b29469cb1dbbe441e4f642fb28b83f2)
(cherry picked from commit 9597fc4dcc890f8646c3bedc1aa521e586ef2964)

16 years agoRevert "Fix signing bug found by Volker. That one was *subtle*."
Volker Lendecke [Tue, 13 May 2008 14:56:06 +0000 (16:56 +0200)]
Revert "Fix signing bug found by Volker. That one was *subtle*."

This reverts commit 816aea6c1a426eb2450061b847729e22bdac33a0.
(cherry picked from commit 67f90361a07841972a01a4faf575da25ebbbb29c)
(cherry picked from commit 3b4a7c82217df918b52d4a5c36d9293f0c5c7549)

16 years agoman pages: Correct version string.
Karolin Seeger [Tue, 13 May 2008 08:18:37 +0000 (10:18 +0200)]
man pages: Correct version string.

As Samba 3.2 will be out soon, man pages should be correct for both versions,
Samba 3.0 and 3.2.

Karolin
(cherry picked from commit 9c59c1895d8d3621f38b67ecf88109c81130c886)
(cherry picked from commit 05f6cc5bc1833ce4f48842b43b2d542a4603f826)

16 years agoFix replacement getpass. If we ^C at the prompt echo was left off.
Jeremy Allison [Fri, 9 May 2008 21:54:06 +0000 (14:54 -0700)]
Fix replacement getpass. If we ^C at the prompt echo was left off.
Fix bug #5456. Karolin please pull for 3.2-stable.
Jeremy.
(cherry picked from commit 726d9d168d5b4bca86b478c34204eacb97907443)
(cherry picked from commit fb691bab6b66c8b1f5535d6bfb5884a43fa38f4c)

16 years agonet ads: Upper case he realm name when calling kinit() using machine creds.
coffeedude [Mon, 12 May 2008 22:33:01 +0000 (17:33 -0500)]
net ads: Upper case he realm name when calling kinit() using machine creds.

Needed fix for the DNS Update option as part of "net ads join"
(cherry picked from commit aebae0b71b427838fdc6344d69d6dea87a5dd58b)
(cherry picked from commit 437a59598d886b316fd58ca88ed40f5fb325c47f)
(cherry picked from commit b85b7d85c20551a2bf53fc541b3de5cae3f37521)

16 years agomerge build changes from Mathias
Andrew Tridgell [Fri, 9 May 2008 11:35:08 +0000 (21:35 +1000)]
merge build changes from Mathias
(cherry picked from commit 2c08939f3db19eaaf31cb117e3d541d17a36da5e)

16 years agoWHATSNEW: Remove trailing whitespace.
Karolin Seeger [Thu, 15 May 2008 08:38:33 +0000 (10:38 +0200)]
WHATSNEW: Remove trailing whitespace.

Karolin
(cherry picked from commit e02673dc0f59b1d6b0ff83ba23fcaa1373ca7a6f)

16 years agoWHATSNEW: Update changes since 3.2.0pre3.
Karolin Seeger [Thu, 15 May 2008 08:36:26 +0000 (10:36 +0200)]
WHATSNEW: Update changes since 3.2.0pre3.

Karolin
(cherry picked from commit bbad2b9758cff53679188ff5e4fc47db3cc51d65)

16 years agoFix Bug #5465 (joining with createcomputer=ou1/ou2/ou3).
Günther Deschner [Wed, 14 May 2008 21:50:25 +0000 (23:50 +0200)]
Fix Bug #5465 (joining with createcomputer=ou1/ou2/ou3).

Guenther
(cherry picked from commit f3251ba03a69c2fd0335861177159a32b2bc9477)
(cherry picked from commit 6d445c134d4d78f8261c998a5a83feaafb01bbca)

16 years agoEnsure we don't keep searching for sharename if it's
Jeremy Allison [Wed, 14 May 2008 21:09:02 +0000 (14:09 -0700)]
Ensure we don't keep searching for sharename if it's
not the start of the list.
Jeremy.
(cherry picked from commit 4d30a6bff9ce8e826f0109e99021d6683ec4299f)

16 years agoFix debug message.
Jeremy Allison [Tue, 13 May 2008 22:25:14 +0000 (15:25 -0700)]
Fix debug message.
Jeremy.
(cherry picked from commit 0a68f230cd92b97efed2b3bad19a3bf9a750d401)

16 years agoSecond part of patch for bug #5460. Cope with pathnames
Jeremy Allison [Tue, 13 May 2008 22:02:53 +0000 (15:02 -0700)]
Second part of patch for bug #5460. Cope with pathnames
that don't look like \xxx\yyy, cope with arbitrary length.
Jeremy.
(cherry picked from commit c3328a252430007cd716a406d85fd2a0bbbff607)

16 years agoFix bug #5460. The problem is RHEL5.0 shipped a CIFS client
Jeremy Allison [Tue, 13 May 2008 21:03:21 +0000 (14:03 -0700)]
Fix bug #5460. The problem is RHEL5.0 shipped a CIFS client
that sets the DFS bit on pathnames but doesn't
send DFS paths. This causes lookups to fail as
the smbd/msdfs.c code now just eats the first
two parts of the pathname and uses the rest as
the local path. The previous hostname check
used to protect us from that as we knew that
when the hostname was invalid it was a local
path (and a broken client).
I didn't want to put that check back in, but
came up with another idea - even though the
hostname can be a different one, the sharename
must be valid on this machine. So we can check
for a valid sharename instead.
Jeremy.
(cherry picked from commit 5c6ed7774220dea30c2c8a564648406b4f3eacbf)

16 years agoFix bug #5464. Pointed out by Herb @ Connectathon. In fork_domain_child() we call :
Jeremy Allison [Wed, 14 May 2008 21:11:26 +0000 (14:11 -0700)]
Fix bug #5464. Pointed out by Herb @ Connectathon. In fork_domain_child() we call :

CatchChild();

*before* we fork the domain child. This call establishes a signal handler that
eats SIGCLD signals and doesn't call sys_select_signal() as the main daemon
SIGCLD handler should do. This causes the parent to ignore dead children and
time out, instead of calling winbind_child_died() on receipt of the signal. The
correct fix is to move the CatchChild call into the child code after the fork.

Jeremy.
(cherry picked from commit 6da910cc1c6baccbb143f0b2d347e31e9f84c35b)

16 years agoWHATSNEW: Update changes since 3.2.0pre3.
Karolin Seeger [Wed, 14 May 2008 12:34:14 +0000 (14:34 +0200)]
WHATSNEW: Update changes since 3.2.0pre3.

Karolin
(cherry picked from commit c74663d23037067248820ad2d06eaf5125fc855a)

16 years ago_netr_LogonSamLogon: fix lm session key length.
Günther Deschner [Tue, 29 Apr 2008 18:13:22 +0000 (20:13 +0200)]
_netr_LogonSamLogon: fix lm session key length.

Thanks Volker for pointing this out.

Guenther
(cherry picked from commit 7ccca9a004c7a4794781cbd7c703c53a0481bd51)

16 years agoFix signing problem in the client with transs requests
Volker Lendecke [Tue, 13 May 2008 14:23:19 +0000 (16:23 +0200)]
Fix signing problem in the client with transs requests

This is a different fix than Jeremy put into 3-0-test with 040db1ce85 and other
branches with different hashes. Jeremy, I think your fix led to bug 5436, so I
reverted your fix. This fixes the original problem I found with the transs
requests for large rpc queries in a different way. Please check!

Thanks,

Volker
(cherry picked from commit 6200e8886b29469cb1dbbe441e4f642fb28b83f2)

16 years agoRevert "Fix signing bug found by Volker. That one was *subtle*."
Volker Lendecke [Tue, 13 May 2008 14:56:06 +0000 (16:56 +0200)]
Revert "Fix signing bug found by Volker. That one was *subtle*."

This reverts commit 816aea6c1a426eb2450061b847729e22bdac33a0.
(cherry picked from commit 67f90361a07841972a01a4faf575da25ebbbb29c)

16 years agoman pages: Correct version string.
Karolin Seeger [Tue, 13 May 2008 08:18:37 +0000 (10:18 +0200)]
man pages: Correct version string.

As Samba 3.2 will be out soon, man pages should be correct for both versions,
Samba 3.0 and 3.2.

Karolin
(cherry picked from commit 9c59c1895d8d3621f38b67ecf88109c81130c886)

16 years agoFix replacement getpass. If we ^C at the prompt echo was left off.
Jeremy Allison [Fri, 9 May 2008 21:54:06 +0000 (14:54 -0700)]
Fix replacement getpass. If we ^C at the prompt echo was left off.
Fix bug #5456. Karolin please pull for 3.2-stable.
Jeremy.
(cherry picked from commit 726d9d168d5b4bca86b478c34204eacb97907443)

16 years agonet ads: Upper case he realm name when calling kinit() using machine creds.
coffeedude [Mon, 12 May 2008 22:33:01 +0000 (17:33 -0500)]
net ads: Upper case he realm name when calling kinit() using machine creds.

Needed fix for the DNS Update option as part of "net ads join"
(cherry picked from commit aebae0b71b427838fdc6344d69d6dea87a5dd58b)
(cherry picked from commit 437a59598d886b316fd58ca88ed40f5fb325c47f)

16 years agoloadparm: Fix activation of registry globals in lp_load_*.
Michael Adam [Fri, 9 May 2008 22:13:11 +0000 (00:13 +0200)]
loadparm: Fix activation of registry globals in lp_load_*.

This completes bba04a8fba6fd5cf62578733cfdabea590e8ff51:
The reverted logic has to be put into the callers
lp_load() and lp_load_initial_only() of lp_load_ex(), too.
Silly bug.

Michael
(cherry picked from commit 8bab6d651f1cd0efe5aa1e7808b3f043602a3dfa)

16 years agopackaging: remove references to smbmount and friends from samba-ctdb spec file
Michael Adam [Fri, 9 May 2008 23:28:58 +0000 (01:28 +0200)]
packaging: remove references to smbmount and friends from samba-ctdb spec file

Michael

16 years agopackaging: fix GPL version in samba-ctdb specfile.
Michael Adam [Fri, 9 May 2008 23:26:52 +0000 (01:26 +0200)]
packaging: fix GPL version in samba-ctdb specfile.

Michael

16 years agopackaging: rename RHEL4-CTDB --> RHEL-CTDB
Michael Adam [Fri, 9 May 2008 23:23:10 +0000 (01:23 +0200)]
packaging: rename RHEL4-CTDB --> RHEL-CTDB

Michael

16 years agoloadparm: Fix activation of registry globals in lp_load_*.
Michael Adam [Fri, 9 May 2008 22:13:11 +0000 (00:13 +0200)]
loadparm: Fix activation of registry globals in lp_load_*.

This completes bba04a8fba6fd5cf62578733cfdabea590e8ff51:
The reverted logic has to be put into the callers
lp_load() and lp_load_initial_only() of lp_load_ex(), too.
Silly bug.

Michael

16 years agoregistry: add removal of secdesc of a key to regdb_store_keys().
Michael Adam [Thu, 8 May 2008 16:08:41 +0000 (18:08 +0200)]
registry: add removal of secdesc of a key to regdb_store_keys().

Michael
(cherry picked from commit a01d8fe5e89ca9620d23198b11e5ae605a97e5a6)

16 years agoregistry: add comments to removing lists in regdb_store_keys().
Michael Adam [Thu, 8 May 2008 16:05:58 +0000 (18:05 +0200)]
registry: add comments to removing lists in regdb_store_keys().

Michael
(cherry picked from commit 3e89217e7edea5d7ec707de065d38b1921ed09af)

16 years agoregistry: change order of deleting value and subkey lists in store_keys().
Michael Adam [Thu, 8 May 2008 15:59:32 +0000 (17:59 +0200)]
registry: change order of deleting value and subkey lists in store_keys().

Next step in the plan to make store_keys safer without transactions.

Michael
(cherry picked from commit f7c8718dead63964481954a86427b8c05d15452c)

16 years agoregistry: adapt comment to first step in regdb_store_keys().
Michael Adam [Thu, 8 May 2008 14:55:14 +0000 (16:55 +0200)]
registry: adapt comment to first step in regdb_store_keys().

Michael
(cherry picked from commit 97592db08a109ffbea8c85b17686fa565c5cf8c9)

16 years agoregistry: adapt comment of last step in regdb_store_keys().
Michael Adam [Thu, 8 May 2008 14:32:51 +0000 (16:32 +0200)]
registry: adapt comment of last step in regdb_store_keys().

adding number (3) ....

Michael
(cherry picked from commit a03a17365d64f7fe83a9f2e866c4f069a1dd1682)

16 years agoregistry: regdb_store_keys: move storing the subkey list down after removing values.
Michael Adam [Thu, 8 May 2008 12:33:02 +0000 (14:33 +0200)]
registry: regdb_store_keys: move storing the subkey list down after removing values.

Michael
(cherry picked from commit 986030cdda828f7f87c5464d1837324b7033e27e)

16 years agoregistry: add comment explaining workflow to make store_keys safe w/o transactions
Michael Adam [Tue, 6 May 2008 08:06:34 +0000 (10:06 +0200)]
registry: add comment explaining workflow to make store_keys safe w/o transactions

/*
 * Make the store operation as safe as possible without transactions:
 *
 * (1) For each subkey removed from ctr compared with old_subkeys:
 *
 *     (a) First delete the value db entry.
 *
 *     (b) Next delete the secdesc db record.
 *
 *     (c) Then delete the subkey list entry.
 *
 * (2) Now write the list of subkeys of the parent key,
 *     deleting removed entries and adding new ones.
 *
 * (3) Finally create the subkey list entries for the added keys.
 *
 * This way if we crash half-way in between deleting the subkeys
 * and storing the parent's list of subkeys, no old data can pop up
 * out of the blue when re-adding keys later on.
 */

The workflow is going to be modified to meet this agendain the next commits.

Michael
(cherry picked from commit 55dd9bdd148fc942e15aacfe9f6b38b1a5c53158)

16 years agoregistry: check for existence of non base key in regdb_store_keys() before proceeding.
Michael Adam [Wed, 7 May 2008 12:01:49 +0000 (14:01 +0200)]
registry: check for existence of non base key in regdb_store_keys() before proceeding.

Michael
(cherry picked from commit 52413c94fcc56c4055de4d35bea8a00646352122)

16 years agoregistry: add a function regdb_key_is_base_key() to check whether is composite.
Michael Adam [Wed, 7 May 2008 22:34:35 +0000 (00:34 +0200)]
registry: add a function regdb_key_is_base_key() to check whether is composite.

This partly duplicates code from regdb_key_exists(). Maybe refactor later.

Michael
(cherry picked from commit c27d03bba842ecf99f23b22dc40fa7df33392fa0)

16 years agoregistry: check for existence of key in regdb_set_secdesc() before proceeding.
Michael Adam [Wed, 7 May 2008 11:50:01 +0000 (13:50 +0200)]
registry: check for existence of key in regdb_set_secdesc() before proceeding.

Michael
(cherry picked from commit 347bab7f4aca7f26a88affea954a514c25735abf)

16 years agoregistry: check for existence of key in regdb_get_secdesc() before proceeding.
Michael Adam [Wed, 7 May 2008 11:48:28 +0000 (13:48 +0200)]
registry: check for existence of key in regdb_get_secdesc() before proceeding.

Michael
(cherry picked from commit 727e5a87c0ed3e0a2b9c2b508b1f81e6a6d26732)

16 years agoregistry: check for existence of key in regdb_store_values() before proceeding.
Michael Adam [Wed, 7 May 2008 11:45:02 +0000 (13:45 +0200)]
registry: check for existence of key in regdb_store_values() before proceeding.

Michael
(cherry picked from commit 8a2c9d965d332ccd290089b92e9cfbba2413067c)

16 years agoregistry: check for existence of key in regdb_fetch_keys() before proceeding.
Michael Adam [Wed, 7 May 2008 11:42:48 +0000 (13:42 +0200)]
registry: check for existence of key in regdb_fetch_keys() before proceeding.

Michael
(cherry picked from commit cf653e101d1b2c38b5e9de35732421a120213170)

16 years agoregistry: check for existence of key in regdb_fetch_values() first.
Michael Adam [Wed, 7 May 2008 11:27:56 +0000 (13:27 +0200)]
registry: check for existence of key in regdb_fetch_values() first.

This uses the new semantics for existence of a key.

Michael
(cherry picked from commit 56a58690d3ab2e01ed28388bd59424d3abc7a0d3)

16 years agoregistry: free talloc context on error path in regdb_fetch_values().
Michael Adam [Wed, 7 May 2008 11:26:13 +0000 (13:26 +0200)]
registry: free talloc context on error path in regdb_fetch_values().

Michael
(cherry picked from commit 978aef3a862065be856b36b38d72d581c3ac0ba1)

16 years agoregistry: Implement new semantics for existence of registry key in tdb.
Michael Adam [Tue, 6 May 2008 08:05:20 +0000 (10:05 +0200)]
registry: Implement new semantics for existence of registry key in tdb.

Existence of a key is defined as follows:
* If the key is a base key (without separator), the key exists
  iff the corresponding entry exist in the registry tdb.
* If the key is not a base key, the key exists, iff it exists
  in the list of subkeys of it's parent keyname's tdb entry.

Michael
(cherry picked from commit 477008367f0ac90624b4b751955cd3235b2c9cc6)

16 years agoregistry: make normalize_reg_path() strip leading and trailing '/' chars.
Michael Adam [Tue, 6 May 2008 20:20:49 +0000 (22:20 +0200)]
registry: make normalize_reg_path() strip leading and trailing '/' chars.

Michael
(cherry picked from commit 04762cfcdba741afa457c96cd2f24e50cf83b15a)

16 years agoregistry: free temporary data in regdb_fetch_key_internal().
Michael Adam [Tue, 6 May 2008 15:15:50 +0000 (17:15 +0200)]
registry: free temporary data in regdb_fetch_key_internal().

Michael
(cherry picked from commit 2b25f480ba13ae125d081bab55ee3cbd3c4f425a)

16 years agoregistry: change order of arguments of regdb_fetch_key_internal()
Michael Adam [Tue, 6 May 2008 15:09:57 +0000 (17:09 +0200)]
registry: change order of arguments of regdb_fetch_key_internal()

list talloc context first.

Michael
(cherry picked from commit 23d7002b22ddcd2c52650463f31b72449aecaaaa)

16 years agoupdated spec files and build script
root [Fri, 9 May 2008 01:24:06 +0000 (11:24 +1000)]
updated spec files and build script

16 years agofixed version in spec file
Andrew Tridgell [Fri, 9 May 2008 01:21:16 +0000 (11:21 +1000)]
fixed version in spec file

16 years agomerge in spec file from Michael
Andrew Tridgell [Fri, 9 May 2008 00:06:03 +0000 (10:06 +1000)]
merge in spec file from Michael

16 years agoregistry: skip writes of existing keys in init_registry_data().
Michael Adam [Tue, 29 Apr 2008 15:41:03 +0000 (17:41 +0200)]
registry: skip writes of existing keys in init_registry_data().

Michael
(cherry picked from commit 37dabf931727f00569725af0e34677d36bb7df99)

16 years agoregistry: save writes in init_registry_data() if data does already exist.
Michael Adam [Tue, 29 Apr 2008 15:37:35 +0000 (17:37 +0200)]
registry: save writes in init_registry_data() if data does already exist.

This is done by first checking if all data (keys and values) exists
(using new regdb_key_exists()) and kompletely skipping all writes if it does.

Michael
(cherry picked from commit 7c5f1583cb43d473544f161aa9c864e1d78944e5)

16 years agoregistry: check for existence of key init_registry_key and possibly save a write.
Michael Adam [Tue, 29 Apr 2008 15:18:26 +0000 (17:18 +0200)]
registry: check for existence of key init_registry_key and possibly save a write.

Michael
(cherry picked from commit 3ab5a2f1b3cf37c380ff3e45a957e62a8017814a)

16 years agoregistry: add function regdb_key_exists() to check for existence of a key.
Michael Adam [Tue, 29 Apr 2008 15:17:02 +0000 (17:17 +0200)]
registry: add function regdb_key_exists() to check for existence of a key.

The existence of the registry key entry (and not the values entry!) is
taken as the criterion for existence.

Michael
(cherry picked from commit 207a0ece45d947608df3f764e6bd9b4525d41011)

16 years agoregistry: use regdb_fetch_key_internal() in regdb_fetch_values().
Michael Adam [Tue, 29 Apr 2008 15:11:09 +0000 (17:11 +0200)]
registry: use regdb_fetch_key_internal() in regdb_fetch_values().

Michael
(cherry picked from commit 3316541ac9f1441294405fdd98f0ffafdec8bc2f)

16 years agoregistry: use regdb_fetch_key_internal() in regdb_fetch_keys().
Michael Adam [Tue, 29 Apr 2008 15:09:10 +0000 (17:09 +0200)]
registry: use regdb_fetch_key_internal() in regdb_fetch_keys().

Michael
(cherry picked from commit 78f924ca05ecef9f586254c00908c1f12272c30c)

16 years agoregistry: add a function for fetching a tdb record for a given keystring
Michael Adam [Tue, 29 Apr 2008 15:04:41 +0000 (17:04 +0200)]
registry: add a function for fetching a tdb record for a given keystring

regdb_fetch_key_internal()

Michael
(cherry picked from commit 97bed9a23608248f1a590c99fe40564d2fbfa3cc)

16 years agoregistry: combine talloc_strdup() and normalize_reg_path() in regdb_fetch_keys().
Michael Adam [Tue, 29 Apr 2008 13:30:45 +0000 (15:30 +0200)]
registry: combine talloc_strdup() and normalize_reg_path() in regdb_fetch_keys().

the talloc_strdup() call is just and extra allocation here.

Michael
(cherry picked from commit 217233349b2d98d2506fcca47858373150e89924)

16 years agoregistry: use normalize_reg_path() in regdb_fetch_keys()
Michael Adam [Tue, 29 Apr 2008 13:28:47 +0000 (15:28 +0200)]
registry: use normalize_reg_path() in regdb_fetch_keys()

instead of handcrafting normalization.

Michael
(cherry picked from commit 1e4d2310d077c4d18470fd76f5ff9c010aadd3f0)

16 years agoregistry: use dbwrap_fetch_bystring() in regdb_fetch_values().
Michael Adam [Tue, 29 Apr 2008 13:17:54 +0000 (15:17 +0200)]
registry: use dbwrap_fetch_bystring() in regdb_fetch_values().

Michael
(cherry picked from commit 569f9844e9d35324cf9a3a3094cd9791918a1441)

16 years agoregistry: use dbwrap_fetch_bystring() in regdb_fetch_keys().
Michael Adam [Tue, 29 Apr 2008 13:16:10 +0000 (15:16 +0200)]
registry: use dbwrap_fetch_bystring() in regdb_fetch_keys().

instead of using regdb->fetch and constructing tdb data
from the registry key string by hand.

Michael
(cherry picked from commit 87a58140f0073dfb5b18fb43655b255aebafbd02)

16 years agoapply patch from v3-0-ctdb to special case root in libnss_winbind
Andrew Tridgell [Mon, 21 Apr 2008 16:41:32 +0000 (18:41 +0200)]
apply patch from v3-0-ctdb to special case root in libnss_winbind

This is needed to ensure the administrator can login to a node even
when ctdbd and winbindd are stuck

16 years agokeep compatibility with v3-0-ctdb name for fileid:mapping option
Andrew Tridgell [Mon, 21 Apr 2008 16:40:45 +0000 (18:40 +0200)]
keep compatibility with v3-0-ctdb name for fileid:mapping option

16 years agoupdate configure.rpm for clustered Samba usage
Andrew Tridgell [Mon, 21 Apr 2008 16:39:56 +0000 (18:39 +0200)]
update configure.rpm for clustered Samba usage

16 years agoWHATSNEW: Update changes since 3.2.0pre3.
Karolin Seeger [Fri, 9 May 2008 09:59:55 +0000 (11:59 +0200)]
WHATSNEW: Update changes since 3.2.0pre3.

Karolin
(cherry picked from commit 6680d11fdc3bde96a98de88278529308303be7d8)

16 years agoWHATSNEW: Cleanup.
Karolin Seeger [Fri, 9 May 2008 08:46:16 +0000 (10:46 +0200)]
WHATSNEW: Cleanup.

I don't know why this line got lost...

16 years agoFix bug #5452 - smbclient put always creates zero length
Jeremy Allison [Fri, 9 May 2008 05:07:27 +0000 (22:07 -0700)]
Fix bug #5452 - smbclient put always creates zero length
files. Thanks to Kai Engert <kengert@redhat.com> for
reporting.
Karolin - this is a showstopper and must be pulled
into 3.2-stable. Thanks !
Jeremy.
(cherry picked from commit f7982f573dd2d339fea50c1811a42816c7721279)

16 years agoWinbind: Prevent cycle in children list when reaping dead child processes.
Gerald W. Carter [Wed, 30 Apr 2008 15:09:43 +0000 (10:09 -0500)]
Winbind: Prevent cycle in children list when reaping dead child processes.

Thanks to Glenn Curtis and Kyle Stemen @ Likewise.  Their explanation is:

    In winbindd_dual.c, there is a list of children processes that
    is maintained using macros DTLIST_ADD and DTLIST_REMOVE. In the
    case when a scheduled_async_request fails, the particular child
    was located in the list, and its attributes were cleared out
    and it was reused for a subsequent async request. The bug was that
    the new request would queue the same node into the doubly-linked
    list and would result in list->next pointing to the same node as
    list itself. This would set up an infinite loop in the processing of
    the for loop when the list of children was referenced.

    Solution was to fully remove the child node from the list, such that
    it could be inserted without risk of being inserted twice.

Note that the child is re-added to the list in fork_domain_child() again.
(cherry picked from commit b379b5b5d8a6daccc69aaf2be6d9a6e276e7dd78)
(cherry picked from commit 5a270bc99f52483f168d662d843672d05be74473)

16 years agoRemove redundant parameter fd from SMB_VFS_CLOSE().
Michael Adam [Fri, 11 Jan 2008 13:19:28 +0000 (14:19 +0100)]
Remove redundant parameter fd from SMB_VFS_CLOSE().

Now all those redundant fd's have vanished from the VFS API.

Michael
(cherry picked from commit 14294535512a7f191c5008e622b6708e417854ae)

16 years agoSlight reformatting of fd_close_posix(), while I'm at it.
Michael Adam [Fri, 11 Jan 2008 12:41:46 +0000 (13:41 +0100)]
Slight reformatting of fd_close_posix(), while I'm at it.

Wrap lines and remove trailing space.

Michael
(cherry picked from commit 74ed53a115b2063d4d5c8572af8f1302bc658882)

16 years agoChange fd_close_posix() to return int instead of NTSTATUS.
Michael Adam [Fri, 11 Jan 2008 12:28:28 +0000 (13:28 +0100)]
Change fd_close_posix() to return int instead of NTSTATUS.

The errno is handed up through the VFS layer to the callers.

Michael
(cherry picked from commit d928e6648d61cf2d3c1b77db440efb835b729a84)

16 years agoDon't modify the fsp in fd_close_posix() anymore.
Michael Adam [Fri, 11 Jan 2008 12:03:16 +0000 (13:03 +0100)]
Don't modify the fsp in fd_close_posix() anymore.

Now that it is inside the vfs layer, this function should
not alter the fsp (i.e. set fsp->fh->fd = -1) anymore.
That belongs above the vfs layer.

Michael
(cherry picked from commit df264bf3e00d7d77afcf55e54d2669b9ffa9af4a)