1
0
mirror of https://github.com/samba-team/samba.git synced 2025-07-14 12:59:07 +03:00
Commit Graph

1278 Commits

Author SHA1 Message Date
940192ddcc r20854: Ok, now I think we're at a point where looking at notify starts to make sense
again :-)

Volker
(This used to be commit 5533cdeec1)
2007-10-10 12:17:13 -05:00
83eb0d1d6d r20844: Somewhat radical change - this may break the build (I will
watch carefully - so I'm doing it in one transaction so I can
roll back).

Change check_name(), reduce_name() and dptr_create() to
return NTSTATUS. This helps a lot in error path processing
and especially in reduce_name() allows us to ditch the flaky
and error-prone saving of errno and return errors directly.

Jeremy.
(This used to be commit 6133a694aa)
2007-10-10 12:17:12 -05:00
52a36db39f r20843: Get rid of last BOOL ok.
Jeremy.
(This used to be commit a36d446fb6)
2007-10-10 12:17:12 -05:00
f065b42dcc r20842: Only one more BOOL ok to go...
Jeremy.
(This used to be commit de0bf477da)
2007-10-10 12:17:12 -05:00
16f96517f1 r20841: Remove more BOOL ok.
Jeremy.
(This used to be commit c6b6519660)
2007-10-10 12:17:12 -05:00
6d16226a2d r20840: Keep removing the old BOOL ok logic.
Jeremy.
(This used to be commit 224ff05991)
2007-10-10 12:17:12 -05:00
0cfc6a8e11 r20796: Fix the same problem Jeremy has fixed (improper handling of deferred opens)
for delete_driver_files. Proper fix pending... :-)

Jeremy, please check.

Volker
(This used to be commit 21b8f15dd5)
2007-10-10 12:17:09 -05:00
fb9a229643 r20759: Dummy checkin to let the build farm pick up the new smbtorture4
(This used to be commit 14c88b560e)
2007-10-10 12:17:08 -05:00
78fbb597c2 r20743: Remove another BOOL ok from reply_getatr.
Jeremy.
(This used to be commit c154f43071)
2007-10-10 12:17:08 -05:00
ab46f9cdd2 r20742: Rename chkpth -> checkpath for sanity's sake :-).
Start removing unneeded "BOOL ok" from this reply.c
(this logic is old, old, old..... :-).
Jeremy.
(This used to be commit 3d52268095)
2007-10-10 12:17:07 -05:00
165e08e8b1 r20740: Get rid of some if-statements
(This used to be commit db93c1b98d)
2007-10-10 12:17:07 -05:00
dd5e9e2ae7 r20721: Fix the search unix_convert error returns. Only open
to go...
Jeremy.
(This used to be commit 89f03a8db4)
2007-10-10 12:17:06 -05:00
1a40a6e08a r20720: Fix the chkpath problem, still looking at findfirst.
Jeremy.
(This used to be commit c5be0082ef)
2007-10-10 12:17:05 -05:00
db0ad252a0 r20718: Sync up the filename path parsing changes from SAMBA_3_0_24.
The only difference between the two trees now w.r.t file
serving are the changes to smbd/open.c in this branch I need
to review.
Jeremy.
(This used to be commit f4474edf6a)
2007-10-10 12:17:04 -05:00
b538c2b86b r20635: Add placeholder to ensure we don't go into the
wcard unlink if bad_path was set. The error
returned here is almost certainly incorrect
and will need testing properly with smbtorture,
but I don't want to forget about this path
(yes Volker I know this is currently incorrect :-).
Jeremy.
(This used to be commit 06e20c2878)
2007-10-10 12:17:00 -05:00
46fdae1b6b r20634: A *LOT* more work is necessary before touching notify remotely starts to make
sense. Until then, remove it from the tree to keep the diff between 3_0_24 and
3_0 small.

Volker
(This used to be commit f146a85e74)
2007-10-10 12:17:00 -05:00
87bd4d2723 r20632: The extended RAW-SAMBA3BADPATH test led me to some wrong assumptions, in
particular the NT_STATUS_INVALID_PARAMETER thing was badly wrong. Remove the
changes based on it. Using gentest is much more effective in this respect, but
it will take a while to figure out the wildcard error handling of W2k3.

Volker
(This used to be commit 58b8a242a7)
2007-10-10 12:17:00 -05:00
45e7b954cd r20628: Looks bigger than it is. This is just re-indenting the if (dirname) that we've
taken care of above.

Volker
(This used to be commit 5e1da363bb)
2007-10-10 12:16:59 -05:00
b5cad2c2a7 r20627: orig_name is not needed anymore, and slightly simplify logic by doing early
returns.

Volker
(This used to be commit 614651c6a7)
2007-10-10 12:16:59 -05:00
dbac39f74e r20619: bad_path is handled somewhere else, so can_delete does not need it anymore
(This used to be commit 1798987128)
2007-10-10 12:16:59 -05:00
1b50bcc9c8 r20618: Fix a bug in bad_path handling that also exists in 3.0.23: For reply_unlink
under Linux we returned NT_STATUS_NOT_A_DIRECTORY. This is because in the
bad_path==True condition lstat(2) returns ENOTDIR and not ENOENT.

Not sure if we want to necessarily replicate the INVALID_PARAMETER here, but
this is what W2k3 does.

Jeremy, I tried to call you, but you were not around. So I'll leave it up to
you to merge this.

Volker
(This used to be commit b1edc3d053)
2007-10-10 12:16:59 -05:00
a9e3624bbc r20617: Do not notify if the delete failed
(This used to be commit c86fbdf8cc)
2007-10-10 12:16:59 -05:00
d10af02226 r20612: A checkin I've wanted to do for ages: For bad_path==False set_bad_path_error
is equivalent to UNIX_ERROR. Expand the last reference. Lets see if I can kill
that as well :-)

Volker
(This used to be commit 794d5d38f1)
2007-10-10 12:16:58 -05:00
283c690e6e r20611: All but one callers to set_bad_path_error have had the bad_path==True argument
being handled further up.

Volker
(This used to be commit 358673c366)
2007-10-10 12:16:58 -05:00
72ecfaf32c r20607: Next micro-step for reply_setatr
(This used to be commit cea9a01434)
2007-10-10 12:16:58 -05:00
21cc389545 r20606: bad_path == True has been covered further up in reply_setatr.
I'm checking in micro-steps to make them independently checkable. This code
just very severely needs cleanup, but I don't want to break anything. So, be
patient with me, please :-)

Volker
(This used to be commit c16775486b)
2007-10-10 12:16:57 -05:00
ccc54da805 r20605: Simplify logic in reply_setatr slightly
(This used to be commit f19db8f33e)
2007-10-10 12:16:57 -05:00
b2efff8fe5 r20597: Survive some of the notify mask tests.
(This used to be commit e4a2e63272)
2007-10-10 12:16:57 -05:00
bb357a1617 r20589: Re-add lost bad_path handling, sorry.
(This used to be commit 244f96388c)
2007-10-10 12:16:56 -05:00
0a8e3fd236 r20558: Refactor rmdir_internals to use early termination rather
than lots of indented code. Change recursive_rmdir()
to return the smbd standards of True on success, False
on fail (it was doing the reverse, which was very confusing).
Jeremy.
(This used to be commit 27dc5bebda)
2007-10-10 12:16:56 -05:00
1307337aaf r20544: Change copy_file() to return NTSTATUS. This is in preparation of turning
close_file() to NTSTATUS as well.

I'm not sure I got all the error codes right, but as I've never come across a
smb_copy() call in all my Samba work, I'm leaving it at that. If I'm
absolutely bored, I will write a thorough torture test.

As far as I can see, Samba4 even does not have a libcli implementation for
it...  :-)

Volker
(This used to be commit 5ebdf02ba1)
2007-10-10 12:16:56 -05:00
2b1760297f r20532: From Volker...
"smbcli_setattr("") always returns ACCESS_DENIED, test extension to follow.

Merge to 3.0.24?"

Yep (with slight optimization).

Jeremy.
(This used to be commit dcc7bca1ad)
2007-10-10 12:16:55 -05:00
bc20aac121 r20507: smbcli_setattr("") always returns ACCESS_DENIED, test extension to follow.
Merge to 3.0.24?

Volker
(This used to be commit f2563ac98f)
2007-10-10 12:16:54 -05:00
9985f25f00 r20496: Some changes to make Samba3 the RAW-OPEN test. Checking in to both 3_0 and
3_0_24 because I was explicitly asked to, although this needs close
review. Jeremy, I'm sure you will check this thoroughly :-)

In reply_open_and_X the separate "size" variable kills the calculation of the
SPARSE flag returned to the client in the attrib field. In getpathinfo we do
it correctly, and RAW-OPEN (correctly) complains about the difference.

Add the "set the write time" to mknew and create.

For trans2open we were missing the "ofun == 0" ->
NT_STATUS_OBJECT_NAME_COLLISION case, and we dropped the status returned in
favor of ACCESS_DENIED once too many.

Last change is a fix to trans2open: We were returning the attributes given by
the client, not the attributes of the new file.

Volker
(This used to be commit 84e6889632)
2007-10-10 12:16:53 -05:00
b3ddd92ba2 r20482: Make us survive and activate RAW-CLOSE
(This used to be commit 471c6e6a21)
2007-10-10 12:16:52 -05:00
6edd999dc1 r20479: Both remaining calls of can_delete called it with check_is_at_open==False,
remove that parameter.

Volker
(This used to be commit e51b764870)
2007-10-10 12:16:51 -05:00
58b63b65fc r20478: Make us survive & activate RAW-UNLINK
(This used to be commit 4f0f917b34)
2007-10-10 12:16:51 -05:00
2c1b3a0720 r20470: Jeremy, another one to check:
The only error path of can_delete() that we're interested in ntcreate&x is the
one of can_delete_file_in_directory(), so call that directly.

The only other one where we might get a NT_STATUS_ACCESS_DENIED is from the
lstat in can_delete, but this is covered later in the open_directory and
open_file_ntcreate calls. open_directory does a stat() in the open case which
also covers the (potential) symlink, and open_file_ntcreate does the open(2)
itself, so this should also work.

This makes can_delete() static to reply.c.

Volker
(This used to be commit d289037fdb)
2007-10-10 12:16:51 -05:00
495c361907 r20454: Get rid of a bogus variable that was only assigned but never read.
Jeremy, please check this.

Thanks,

Volker
(This used to be commit 2becbb9e5f)
2007-10-10 12:16:51 -05:00
92d02f7afe r20451: Survive the first of the filter-tests (mkdir).
Add lots of TODOs :-)

Volker
(This used to be commit 0e953884a1)
2007-10-10 12:16:50 -05:00
200bd10b32 r20442: Slight rewrite of the change notify infrastructure. This now survives the
first of the raw-notify subtests, the one-level test_notify_dir without any
flags around yet.

The tricky part was getting the data structures right, I hope the next tests
don't let that fall over.

fsp->notify is now by default NULL, meaning that nobody has issued a
changenotify call. This means nobody is interested in changes for this
directory.

If that has happened, notify_change_buf collects the changes if no current
request is outstanding, and it collects the requests if no change has happened
since the last request.

Happy New Year, somewhere on this planet it's already 2007 :-)

Volker

P.S: Jeremy, there's a question for you in smbd/files.c line 367.
(This used to be commit ce0ad24988)
2007-10-10 12:16:50 -05:00
165f5f3f40 r20433: Work in progress: Survive more of RAW-NOTIFY.
call_nt_transact_notify_change() is now sync if there are changes around.

A notify_message does a direct reply from within the message, so
process_pending_change_notify_queue is not needed anymore for samba-generated
events. Next step is to restructure the kernel-mechanisms to generate
messages.

Volker
(This used to be commit c813f71d00)
2007-10-10 12:16:49 -05:00
98c082489b r20394: This is a *VERY* early start of my work on notify.
Checking in because Jeremy was bugging me. Potentially this becomes quite
intrusive, I'm not sure if I should open a temporary branch for this.

Jeremy, Jerry, do you think 3_0 is the right place for this?

Volker
(This used to be commit bcf5c751cb)
2007-10-10 12:16:46 -05:00
143a364d62 r20393: Debug level 1 is a bit excessive here
(This used to be commit 48798b5e57)
2007-10-10 12:16:46 -05:00
3430c1ddb8 r20371: In renames (via SMBmv) both src and dest can contain
wcards. I had forgotten this and had refused to allow
dest to contain wcards. We now pass all the normal
Samba4 smbtorture RAW-RENAME tests.
Jeremy
(This used to be commit 4183c1b49f)
2007-10-10 12:16:45 -05:00
654f747e6d r20370: Now we've gone to the trouble of getting an NT status
from open_file_ntcreate make sure we return it on rename
error.
Jeremy.
(This used to be commit 633f02fb86)
2007-10-10 12:16:44 -05:00
d0c6f9b728 r20339: Make mkdir_internal static to open.c
(This used to be commit 6dd0886b49)
2007-10-10 12:16:42 -05:00
469b42c61f r20338: Restructure open_directory a bit. This gets rid of a race condition regarding
error messages: We relied upon a stat that a directory did not exist to later
on then do the mkdir or not. This does the mkdir directly and copes with a
potential error.

The second one is more important: It's possible with Samba 3 to do a
ntcreate&x with NTCREATEX_OPTIONS_DIRECTORY and we happily do a NT_STATUS_OK.

Also move up the use_nt_status() logic a bit. I think this does not belong
into the core routines, the smb server as such should take care of it.

Jeremy, do you think this should go to 3.0.24?

I'll update samba4torture when the build farm has picked up this checkin.

Volker
(This used to be commit 472fb11f49)
2007-10-10 12:16:42 -05:00
9e41616b06 r20264: Two lines above this we just checked if (fsp->is_directory) ...
(This used to be commit 88ab54b3b7)
2007-10-10 12:16:37 -05:00
f4f1814f8c r20253: Reduce some code duplication, make reply_mkdir go through the same code paths
ncreate does. This is a bit slower (about 10-20%), because it goes touches the
share mode db, but I think not having to call change_owner_to_parent and
friends in fewer places outweighs this. And, mkdir is not the way current
Windows boxes create directories, they do it via the ncreate call.

Volker
(This used to be commit ddae494fbe)
2007-10-10 12:16:37 -05:00