1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-13 13:18:06 +03:00
Commit Graph

4189 Commits

Author SHA1 Message Date
Jelmer Vernooij
1b99d8fbb5 Use common util_file code. 2008-10-12 17:34:43 +02:00
Jelmer Vernooij
d68168e633 Cope with the fact that the data blobs returned are now
talloc-allocated. Ideally, this memory should be talloc-stolen
(and perhaps have DATA_BLOB in the interface everywhere), but
that requires some more complex changes so I've just changed it to copy
it for now.
2008-10-12 04:00:55 +02:00
Jelmer Vernooij
218f482fbf Use common strlist implementation in Samba 3 and Samba 4. 2008-10-12 00:56:56 +02:00
Jelmer Vernooij
cb78d4593b Cope with changed signature of http_timestring(). 2008-10-11 23:57:44 +02:00
Volker Lendecke
f0a2706486 Make use of talloc_tos() 2008-10-11 09:02:18 +02:00
Volker Lendecke
200b0deaef Fix some nonempty blank lines 2008-10-11 09:02:18 +02:00
Volker Lendecke
80faa78a91 Fix a "nexted extern declaration" warning 2008-10-11 08:56:01 +02:00
Jeremy Allison
e5692d4cbe Remove SEC_ACCESS. It's a uint32_t.
Jeremy.
2008-10-09 09:49:03 -07:00
Volker Lendecke
1d83fbffae Remove a pointless level of indirection 2008-10-09 12:06:39 +02:00
Volker Lendecke
96a5d169dd Fix a typo 2008-10-09 12:06:38 +02:00
Jeremy Allison
543c6a02ae For the vfs_acl_xattr.c module, make sure we map GENERIC file and directory bits
to specific bits every time a security descriptor is set. The S4 torture suite proves
that generic bits are not returned when querying an ACL set using them (ie. only
the specific bits are stored on disk).
Jeremy.
2008-10-08 18:06:58 -07:00
Jeremy Allison
646df8bec6 Deal with inheritance from parent directory when setting Windows
ACLs.
Jeremy.
2008-10-08 15:18:25 -07:00
Volker Lendecke
be63f86ce7 Remove unused CHECK_FSP macro 2008-10-08 13:01:22 +02:00
Jeremy Allison
ec5d09dbff Update vfs version as I've added a const to the security_descriptor paramter in fset_nt_acl().
Need to watch the build farm to make sure I haven't broken the AIX or Solaris ACL modules.
Jeremy.
2008-10-07 17:50:01 -07:00
Jeremy Allison
f6c883b4b0 Simply our main loop processing. A lot :-). Correctly use events for all the previous "special" cases.
A step on the way to adding signals to the events and being able to merge the S3 event system with
the S4 one.
Jeremy.
2008-10-03 14:18:35 -07:00
Jeremy Allison
e4f5bfb34b Fix use of DLIST_REMOVE as spotted by Constantine Vetoshev <gepardcv@gmail.com>.
This API is unusual in that if used to remove a non-list head it nulls out
the next and prev pointers. This is what you want for debugging (don't want
an entry removed from the list to be still virtually linked into it) but
means there is no consistent idiom for use as the next and prev pointers
get trashed on removal from the list, meaning you must save them yourself.
You can use it one way when deleting everything via the head pointer, as
this preserves the next pointer, but you *must* use it another way when not
deleting everything via the head pointer. Fix all known uses of this (the main
one is in conn_free_internal() and would not free all the private data entries
for vfs modules. The other changes in web/statuspage.c and winbindd_util.c
are not strictly neccessary, as the head pointer is being used, but I've done
them for consistency. Long term we must revisit this as this API is too hard
to use correctly.
Jeremy.
2008-10-01 13:15:54 -07:00
Jeremy Allison
97d57d0364 Fix the make test problem Karolin reported. Now rename_open_files actually works correctly we must emit the change notify before we change the name, not before.
Jeremy.
2008-09-30 13:26:41 -07:00
Jeremy Allison
3b02b9e40e Second part of the fix for bug #5790 - samba returns STATUS_OBJECT_NAME_NOT_FOUND on set file disposition call.
This was my fault. I use a singleton cache (positive and negative) to speed up pathname based qfileinfo/setfileinfo lookups for alternate fsp's open on the same path. I only invalidated the negative cache on adding a new file fsp, as I incorrectly imagined the new fsp was put at the *end* of the open files list. DLIST_ADD puts it at the start, meaning any subsequent open wasn't seen once the cache was set. Doh !
Jeremy.
2008-09-26 18:39:03 -07:00
Jeremy Allison
da8bebaa64 Fix bug #5797 - Moving readonly files fails. Reported by infomail@lordb.de.
We don't need to deny a DELETE open on a readonly file (I'm also adding a s4
torture test for this), the set_file_disposition call will return
NT_STATUS_CANNOT_DELETE if the delete-on-close bit is set
on a readonly file (and we already do this).
Jeremy.
2008-09-26 15:17:14 -07:00
Jeremy Allison
31e10643c9 Fix bug #5790 samba returns STATUS_OBJECT_NAME_NOT_FOUND on set file disposition.
We were checking that fd != -1 in file_find_di_XXX calls which is no longer
needed due to a change in internal semantics.
Jeremy.
2008-09-24 14:28:18 -07:00
Jeremy Allison
d275cc762d Fix bug #5783 FindFirst fails where search pattern == mangled filename.
That was an old and subtle bug.
Jeremy.
2008-09-23 15:05:45 -07:00
Günther Deschner
c48186f507 s3: use samba4 prototype for ndr_push/pull_struct_blob.
Guenther
2008-09-23 09:37:23 +02:00
Timur
4dfa72423e Fix aio on FreeBSD. 2008-09-15 18:45:10 -07:00
Timur
a59618e88b Fix cut and paste error in quota code. 2008-09-15 18:21:02 -07:00
Jeremy Allison
458101b577 Fix bug 5761 "open of mangled directory name results in 'is a stream name'"
reported by Regan Heath <Regan.Heath@BridgeHeadSoftware.com>.
Jeremy.
2008-09-15 14:21:28 -07:00
Jeremy Allison
c7b75de962 Modify a comment to make things clearer.
Jeremy.
(This used to be commit 9d55ca85ff)
2008-09-12 15:03:05 -07:00
Jeremy Allison
5f3160ce27 Fix bug #5052 - not work cancel inheritance on share. We were
using the parent security descriptor type and flags instead
of using the passed in SD.
Jeremy.
(This used to be commit 0d824d7188)
2008-09-10 16:22:51 -07:00
Jeremy Allison
cb40b1ae83 When requesting UNIX info levels on findfirst/findnext, don't play games with write time,
just return what the underlying filesystem says. Trying not to confuse UNIX apps any more than necessary.
Jeremy.
(This used to be commit b81a4dd003)
2008-09-10 14:54:25 -07:00
Volker Lendecke
0b31c97e82 Add some debug to reply_nttrans
(This used to be commit 23e9fed28c)
2008-09-09 17:37:34 +02:00
Volker Lendecke
d39e9e05ed Fix calculation of useable_space for trans2 and nttrans replies
When alignment was in place, we pretended to send more data/params according to
the param_offset/param_length and data_offset/data_length parameters than would
actually fit into the SMB according to the NBSS length field.
(This used to be commit ef3c132b84)
2008-09-08 23:32:22 +02:00
Stefan Metzmacher
c9fb96146c smbd: some write time fixes
- only the first non truncating write causes
  the write time update with 2 seconds delay.
  It's not enough to check for an existing update event
  as it will be NULL after the event was triggered.

- SMBwrite truncates always update the write time
  unless the sticky write time is set.

- SMBwrite truncates don't trigger a write time update on close.

metze
(This used to be commit 3d17089b6d)
2008-09-08 16:25:41 +02:00
Jeremy Allison
405b072431 Write times code update.
Ok, here's the fix for the write times breakage
with the new tests in S4 smbtorture.

The key is keeping in the share mode struct
the "old_file_time" as the real write time,
set by all the write and allocation calls,
and the "changed_write_time" as the "sticky"
write time - set by the SET_FILE_TIME calls.

We can set them independently (although I
kept the optimization of not setting the
"old_file_time" is a "changed_write_time"
was already set, as we'll never see it.

This allows us to update the write time
immediately on the SMBwrite truncate case,
SET_END_OF_FILE and SET_ALLOCATION_SIZE calls,
whilst still have the 2 second delay on the
"normal" SMBwrite, SMBwriteX calls.

I think in a subsequent patch I'd like to
change the name of these from "old_file_time"
to "write_time" and "changed_write_time" to
"sticky_write_time" to make this clearer.

I think I also fixed a bug in Metze's original
code in that once a write timestamp had been
set from a "normal" SMBwriteX call the fsp->update_write_time_triggered
variable was set and then never reset - thus
meaning the write timestamp would never get
updated again on subsequent SMBwriteX's.

The new code checks the update_write_time_event
event instead, and doesn't update is there's
an event already scheduled.

Metze especially, please check this over for
your understanding.

Jeremy.
(This used to be commit 6f20585419)
2008-09-05 19:00:48 -07:00
Volker Lendecke
edd16eaa90 Slightly simplify logic: remove an else branch
(This used to be commit 56ecec5013)
2008-09-01 23:32:33 +02:00
Volker Lendecke
227718cd1a Fix Coverity ID 587
The following test program prints "8" on 64-bit :-)

static void print_size(const char lenbuf[4])
{
        printf("sizeof(lenbuf) = %d\n", (int)sizeof(lenbuf));
}
int main(void)
{
        const char lenbuf[4];
        print_size(lenbuf);
        return 0;
}

Jeremy, please check :-)

Volker
(This used to be commit 9daea0ccfd)
2008-09-01 13:51:11 +02:00
Jeremy Allison
1cae2ac905 Add st_birthtime and friends for accurate create times on systems that support it (*BSD and MacOSX).
Should have done this ages ago, sorry.
Jeremy.
(This used to be commit 4c3a955890)
2008-08-27 15:06:14 -07:00
Andrew Tridgell
39697d5745 EINVAL is also a valid error return, meaning "this filesystem
cannot do sendfile for this file"
(This used to be commit 737f664604)
2008-08-26 14:39:43 +02:00
Andrew Tridgell
563a7ccdd9 become root for AIO operations
We need to become root for AIO read and write to allow the AIO thread
to send a completion signal to the parent process when the IO
completes
(This used to be commit c548e5c69f)
2008-08-26 14:39:43 +02:00
Jeremy Allison
4a5ccfb91f Don't re-initialize a token when we already have one. This fixes the build farm failures when winbindd connects as guest.
This one took a *lot* of tracking down :-).
Jeremy.
(This used to be commit dca8277912)
2008-08-22 13:49:46 -07:00
Stefan Metzmacher
eb8dd6a811 smbd: fix the handling of create_options to pass RAW-OPEN
Some of the bits generate INVALID_PARAMETER and some bits
are ignored when they come from a client, that's why we need
to use bits from the ignored range for our internal usage.

metze
(This used to be commit 7b4c8a4e39)
2008-08-20 15:50:26 +02:00
Jeremy Allison
0595ecb3a6 Fix for bug #5688 from SATOH Fumiyasu <fumiyas@osstech.co.jp>. LPQ process is orphaned if socket address parameter is invalid.
If the "socket address" parameter is a null string that is an invalid value for Samba 3.2 but valid for Samba 3.0.
Jeremy.
(This used to be commit c65726d418)
2008-08-14 11:22:47 +02:00
Jeremy Allison
a5cf8b9fb5 Fix for bug #5617, reported and patched by Bartosz Antosik antosik@gmail.com.
xp/2003 explorer freezes browsing shares on samba ipv6 hosts. Caused by missing
reply packet to SMB printclose packet.
Jeremy
(This used to be commit ecf2b906f4)
2008-08-14 11:22:47 +02:00
Michael Adam
f284cde4b9 smbd: prevent smbd from panicing with "clustering = no" but --with-cluster-support
Michael
(This used to be commit a687949d19)
2008-08-13 11:54:13 +02:00
Andrew Tridgell
1a4e299c70 added a explanatory comment on tcon check
(This used to be commit f2ab2cebb9)
2008-08-13 11:54:12 +02:00
Andrew Tridgell
416fa081ab ensure we exit with non-zero status on EOF on socket, so the parent
can trigger a brlock db cleanup
(This used to be commit bbd49f9e1c)
2008-08-13 11:54:12 +02:00
Andrew Tridgell
b5f4373be5 fixed child exit handling and IP release handling
(This used to be commit 6fe27d296c)
2008-08-13 11:54:12 +02:00
Andrew Tridgell
4b2399d5c0 log unclean shutdowns
(This used to be commit 30b83245a2)
2008-08-13 11:54:12 +02:00
Andrew Tridgell
2f09edb492 register the ctdbd reconfigure message
(This used to be commit 9d3217bb28)
2008-08-13 11:54:12 +02:00
Andrew Tridgell
0f41961e4f first cut at adding full transactions for ctdb to samba3
(This used to be commit f91a3e0f7b)
2008-08-13 11:54:08 +02:00
Michael Adam
743d6f707a Make sure to always set errno on error path in OpenDir (and hence scan_directory).
Michael
(This used to be commit 15fc2427f9)
2008-08-12 21:37:37 +02:00
Michael Adam
ac9f55b910 Fix unix_convert() for "*" after changing map_nt_error_from_unix().
map_nt_error_from_unix() now assumes that it is called in
an error path and returns an error even for a given errno == 0.
The original behaviour of unix_convert() used the mapping
of errno == 0 ==> NT_STATUS_OK to return success through
an error path.

I think this must have been an oversight, and unix_convert() worked
only by coincidence (or because explicitly using the knowledge
of the conceptually wrong working of map_nt_error_from_unix().

This patch puts this straight by not interpreting errno == 0
as an error condition and proceeding in that case.

Jeremy - please check!

Michael
(This used to be commit ec5956ab0d)
2008-08-12 21:37:30 +02:00