r24056: Another big one: This converts reply_sesssetup_and_X to the new API. As usual,
its history can be found on http://samba.org/~vlendec/sesssetup/. This very
obviously needs close review.
Gerald Carter [Thu, 26 Jul 2007 12:08:13 +0000 (12:08 +0000)]
r24055: Remove a reference to the outdated samba-docs mailing list. This entire
README really needs to be overhauled at some point.
(This used to be commit c08d85a5f1a66e8fdd0b33a1d8d1a2c9ce9c1a35)
r24047: With -Wmissing-prototypes these two always generate warnings. They
should be properly prototyped. For now, gloss over the warning.
(This used to be commit 2137158260cc9677bf9652a3d85334b0d7512b7b)
Jeremy Allison [Tue, 24 Jul 2007 22:28:19 +0000 (22:28 +0000)]
r24036: Fix dfs rename bug in smbclient reported by Thomas Bork <tombork@web.de>.
Couldn't rename file as we weren't DFS enabling the target path.
Jeremy.
(This used to be commit cd66c133a1b010874ea9e7a500ea24c52011e523)
r24032: It helps testing tremendously if the cluster messaging actually sends
and receives messages to other nodes... :-)
(This used to be commit 3e9e9a3f28763500a1c5e551a808a14661d7d9fa)
r24027: merge from http://people.samba.org/bzr/metze/samba/3_2-ctdb-metze/:
add in any cluster addresses. We need to response to these,
but not listen on them. This allows us to run nmbd on every
node in the cluster, and have all of them register with a
WINS server correctly
Some hosts see the smb_bufrem(req->inbuf, p) as an unsigned int. And as
the p += strlen(p) + 2 went one beyond the buffer, this was a very
large positive. Also take the chance to add one more consistency check.
(This used to be commit 3673707f9f1a3ba29966ac7cf744e2b6462c8dde)
r24000: Add message_push_blob() and message_push_string().
The proposed new API convention is to start with a 0 bcc length and then
push things step by step. These routines reallocate the outbuf and
adjust the length and bcc fields as necessary.
(This used to be commit 624f1fe4f6e022d73e78fa8c9646f6f64035f3ee)
r23997: Check in the infrastructure for getting rid of the global InBuffer/OutBuffer
The complete history of this patch can be found under
http://www.samba.org/~vlendec/inbuf-checkin/.
Jeremy, Jerry: If possible I would like to see this in 3.2.0. I'm only
checking into 3_2 at the moment, as it currently will slow down operations for
all non-converted (i.e. all at this moment) operations, as it will copy the
talloc'ed inbuf over the global InBuffer. It will need quite a bit of effort
to convert everything necessary for the normal operations an XP box does.
I have patches for negprot, session setup, tcon_and_X, open_and_X, close. More
to come, but I would appreciate some help here.
r23988: Looks a lot more scary than it is: This just unwraps the else-branch of
if (smb_messages[type].fn == NULL) { into the function top-level. Makes
this function a bit easier to understand IMO.
There's no point in duplicating functionality that exists in
sys_getpid() that also only used in a debug statement
(This used to be commit ebf1b1e97c709f5ffe48c85b4227a0af1f88b0ab)
Michael Adam [Fri, 20 Jul 2007 16:39:42 +0000 (16:39 +0000)]
r23981: Make tdb_validate_and_backup try harder to end up with a valid tdb:
If restoring a backup fails due to lack of space, remove the
corrupt tdb previously moved away to "name.corrupt", and retry.
If restoring still fails, move the backup in place instead of
copying it.
Michael Adam [Fri, 20 Jul 2007 14:23:12 +0000 (14:23 +0000)]
r23977: Im prove the pwrite-patch to tdb_expand_file of r23972:
* prevent infinite loops due to 0 bytes written:
try once more. if we still get 0 as return,
set errno to ENOSPC and return -1 (error)
* replace int by correct types (ssize_t and size_t).
* print a warning log message in case "written < requested to write"
usually this means, that the next call to pwrite will fail
with return value -1 and set errno accordingly.
Note that the former error condition "written != requested to write"
is not a correct error condition of write/pwrite. If this is due
to an error, a subsequent call to (p)write will reveal the cause
(typically "no space left on device" - ENOSPC).
Michael Adam [Thu, 19 Jul 2007 13:46:26 +0000 (13:46 +0000)]
r23972: Fix a bug in pwrite error detection in tdb_expand_file():
The proper error condition is (ret == -1) instead of
(ret != number_of_byte_told_to_write).
James Peach [Thu, 19 Jul 2007 04:37:38 +0000 (04:37 +0000)]
r23962: Linux oplock support is conditional on HAVE_KERNEL_OPLOCKS_LINUX,
not plain old LINUX.
(This used to be commit 234cb7c893172edeb6802ac02304a041b33ee939)
Michael Adam [Wed, 18 Jul 2007 11:43:50 +0000 (11:43 +0000)]
r23952: Streamline and improve the logic of tdb_validate_and backup:
- call tdb_validate on the given tdb.
- if validation is successful, create a backup
return 0 (success) even if the backup fails.
- if validation fails:
- move tdb to name.corrupt (don't exit if this fails)
- look for a valid backup
- if a valid backup is found, restore it, else return -1 (failure)
if restoring succeeds, return 0 (success), else -1 (failure)
Summing up:
If 0 is returned, there is a valid tdb at the given location:
either the original one ore one restrored from a backup.
If -1 is returned, there is no valid tdb at the given location:
Either there is no file at all, or the original file is still
in place (if moving it away failed).
Jeremy Allison [Wed, 18 Jul 2007 01:27:03 +0000 (01:27 +0000)]
r23942: Fix issue found by Shlomi Yaakobovich <Shlomi@exanet.com> where
invalid names sent as a resume name were incorrectly mapped into
. and .. Ensure they really *are . and ..
Jeremy.
(This used to be commit 78d0c5194fe42ad4f096657e2210a15541303a2a)
Jeremy Allison [Tue, 17 Jul 2007 23:01:02 +0000 (23:01 +0000)]
r23939: Fixes for notify returns. Returned param value must fix inside
max_param or return NT_STATUS_OK.
Jeremy.
(This used to be commit ab4af60d1ab4583fd27deb63b3f7baa1ede3473d)
Jeremy Allison [Tue, 17 Jul 2007 18:48:39 +0000 (18:48 +0000)]
r23935: We were lying to the client in the case of POSIX_UNLINK
if a Windows client had the file open. We were setting
delete on close and returning "ok". The POSIX client then
believed the file was gone (and it wasn't). Fix this to
return SHARING_VIOLATION if there is an existing NTcreateX
open on the file and someone calls POSIX_UNLINK. Still one
more Cthon test to fix but getting closer now. Should
be in 3.0.25c also.
Jeremy.
(This used to be commit 24e625a615447c025b73fed2d3db03c1f11ae596)
Michael Adam [Tue, 17 Jul 2007 13:06:29 +0000 (13:06 +0000)]
r23932: Fill extended status with information in case the validation traverse
functions did not do so but returned an error. (This is the case when
error occurred deeper than at the level of the content checking done by
the per entry validate_fn.)
Michael Adam [Tue, 17 Jul 2007 12:49:22 +0000 (12:49 +0000)]
r23930: Introduce tdb_validate_and_backup:
This is a wrapper around tdb_validate, that does backup handling:
* if the given tdb is valid, a backup is created (name.bak)
* if the tdb is invalid, if a valid bakup is found (validated
with the same validation function) under the name "name.bak"
the orignal tdb is moved to name.corrupt and the backup
is restored.
For the backup handling, a variant of the backup_tdb function
from lib/tdb/tools/tdbbackup.c is included in lib/util_tdb.c.
The copy function for the traverse action eliminates the need
to maintain a global success state by using a struct wrapping
the target tdb and a success flag as the private data.