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

707 Commits

Author SHA1 Message Date
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
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
Michael Adam
0db26805da dssync keytab: add support for keeping track of the up-to-date-ness vector.
The startup operation should get the old up-to-date-ness vector from the backend
and the finish operation should store the new vector to the backend after replication.

This adds the change of the signatures of the operations ot the dssync_ops struct
and the implementation for the keytab ops. The up-to-date-ness vector is stored
under the principal constructed as UTDV/$naming_context_dn@$dns_domain_name.

The vector is still uninterpreted in libnet_dssync_process().
This will be the next step...

This code is essentially by Metze.

Michael
(This used to be commit 01318fb27a)
2008-08-01 16:04:40 +02:00
Volker Lendecke
b3f04dd32f Save 128 byte (32-bit platform) or 256 byte (64-bit) per connection_struct
This was just too easy not to use :-)
(This used to be commit a9922a2a36)
2008-07-26 16:52:02 +02:00
Volker Lendecke
20675473b9 YESS -- remove the PI_* pipe constants
(This used to be commit 26a40f708a)
2008-07-21 14:36:32 +02:00
Volker Lendecke
867b61d0a1 The PIPE_ pipename macros are only used in cli_pipe.c
(This used to be commit 03f7af26f2)
2008-07-19 21:07:14 +02:00
Gerald W. Carter
9ff1ffcbee libads: Add API call to connect to a global catalog server.
Extends ads_connect() to a new call ads_connect_gc() which connects on port
3268 rather than port 389.  Also makes ads_try_connect() static and
only used internally to ldap.c
(This used to be commit f4c37dbe2c)
2008-06-27 10:26:11 -04:00
Volker Lendecke
40f5eab5eb Wrap the unix token info in a unix_user_token in auth_serversupplied_info
No functional change, this is a preparation for more current_user ref removal
(This used to be commit dcaedf345e)
2008-06-19 18:51:37 +02:00
Günther Deschner
611072fc1c Fix Bug #5285. (libcap header mismatch)
Can someone with gpfs available test this ? The only codepath using this
function is the modules/gpfs.c module. The fix resolves at least the build
issues Samba has with recent kernel / libcap versions by using the portable
cap_get_proc()/cap_set_proc() interface (instead of using capget/capset).

Guenther
(This used to be commit 1779551412)
2008-05-28 13:22:52 +02:00
Günther Deschner
6b3bcb3724 drsuapi: add all code required for our drsuapi rpc client.
Guenther
(This used to be commit 7c93190843)
2008-05-23 23:56:21 +02:00
Volker Lendecke
44fbd895e8 Compile endpoint mapper pidl output
(This used to be commit fe8f9e427a)
2008-05-21 23:35:26 +02:00
Volker Lendecke
e58729f0ea Simplify fake_file logic
(This used to be commit 93111ea0a1)
2008-05-16 23:18:50 +02:00
Volker Lendecke
5bda9a8af0 Remove "user" from connection_struct
(This used to be commit 368454a27c)
2008-05-10 11:17:01 +02:00
Volker Lendecke
66835ba2b7 Add a comment explaining server_info in connection_struct
(This used to be commit 35438a9407)
2008-05-10 11:17:01 +02:00
Volker Lendecke
53a623d8a6 Remove the unix token info from connection_struct
(This used to be commit 2834dacc8d)
2008-05-10 11:17:01 +02:00
Volker Lendecke
776caa081b Replace nt_user_token with server_info in connection_struct
(This used to be commit a3738aef59)
2008-05-10 11:17:01 +02:00
Volker Lendecke
c881c866d6 Next try at making the vuid cache circular
Jeremy, please check!
(This used to be commit a34f735217)
2008-05-10 11:17:00 +02:00
Volker Lendecke
90995202c0 Add "server_info" to connection_struct
This will replace all the user identity stuff in connection_struct, for now it
is just a source where the other fields in connection_struct are filled from.
(This used to be commit 0f53f9e7db)
2008-05-10 11:17:00 +02:00
Volker Lendecke
f93e232535 Remove unused "force_group" from connection_struct
(This used to be commit 03944f8d89)
2008-05-10 11:17:00 +02:00
Volker Lendecke
1723348150 Remove unused dir_status_struct
(This used to be commit 425ca59cce)
2008-05-05 22:53:09 +02:00
Volker Lendecke
bec1dfab27 Remove "userdom_struct user" from "struct user_struct"
(This used to be commit 420de03523)
2008-05-05 18:28:59 +02:00
Volker Lendecke
82d2f07dae Remove "session_key" from "struct user_struct"
This one took a bit -- I hope I covered all data paths
(This used to be commit 74c88a4442)
2008-05-05 18:28:59 +02:00
Volker Lendecke
71ff1ba2de Remove "guest" from "struct user_struct"
(This used to be commit 570a6b80fe)
2008-05-05 18:28:59 +02:00
Volker Lendecke
c6d209f834 Remove the unix token info from "struct user_struct"
(This used to be commit aa2299d42a)
2008-05-05 18:28:58 +02:00
Volker Lendecke
bb3755968f Remove "nt_user_token" from "struct user_struct"
(This used to be commit 51d5d512f2)
2008-05-05 18:28:58 +02:00
Volker Lendecke
faa5e8e12c Remove "logon_script" from "struct user_struct"
(This used to be commit b36fd84186)
2008-05-05 18:28:58 +02:00
Volker Lendecke
2b3d03d6f1 Remove unix_homedir from struct user_struct
This makes pdb_get_unix_homedir unused. I wonder if that was ever really used...
(This used to be commit 36bfd32f1f)
2008-05-05 18:28:58 +02:00
Volker Lendecke
1b2bf00fb9 Remove "homedir" from "struct user_struct"
(This used to be commit 41f9afd62d)
2008-05-05 18:28:58 +02:00
Volker Lendecke
d62563342e Remove connection_struct->mem_ctx, connection_struct is its own parent
(This used to be commit 559180f7d3)
2008-05-05 11:23:13 +02:00
Jeremy Allison
b430b38220 Remove the "stat_open()" function, flag, and all associated code. It was only
being (correctly) used in the can_read/can_write checks for hide unreadable/unwritable
and this is more properly done using the functions in smbd/file_access.c.
Preparing to do NT access checks on all file access.
Jeremy.
(This used to be commit 6bfb06ad95)
2008-05-02 17:22:10 -07:00
Günther Deschner
6c6c89cde0 IDL: build generated nbt code.
Guenther
(This used to be commit 554dcfdab0)
2008-04-17 14:55:15 +02:00
Stefan Metzmacher
d03453864a smbd: implement the strange write time update logic
We now never call file_ntimes() directly, every update
is done via smb_set_file_time().

This let samba3 pass the BASE-DELAYWRITE test.

The write time is only updated 2 seconds after the
first write() on any open handle to the current time
(not the time of the first write).

Each handle which had write requests updates the write
time to the current time on close().

If the write time is set explicit via setfileinfo or setpathinfo
the write time is visible directly and a following close
on the same handle doesn't update the write time.

metze
(This used to be commit 2eab212ea2)
2008-04-07 12:29:26 +02:00
Stefan Metzmacher
2ccf50256e locking: store the write time in the locking.tdb
This is needed to implement the strange write time update
logic later. We need to store 2 time timestamps to
distinguish between the time the file system had before
the first client opened the file and a forced timestamp update.

metze
(This used to be commit 6aaa2ce0ee)
2008-04-07 12:29:25 +02:00
Gerald W. Carter
8940fd09a6 Patch from Nicholas Brealey <nick@brealey.org> to distinguish between WinXP and WinXP64.
Defines a new value for the %a variable when detecting a Windows XP 64-bit client.
(This used to be commit 0c94918fb5)
2008-03-31 14:34:43 -05:00
Volker Lendecke
1ebfc66b2c Use a separate tdb for mutexes
Another preparation to convert secrets.c to dbwrap: The dbwrap API does not
provide a sane tdb_lock_with_timeout abstraction. In the clustered case the DC
mutex is needed per-node anyway, so it is perfectly fine to use a local mutex
only.
(This used to be commit f94a63cd8f)
2008-03-10 21:08:45 +01:00
Günther Deschner
082392d975 Use pidl for NTSVCS.
Guenther
(This used to be commit 84a9bf0b73)
2008-02-17 22:32:30 +01:00
Günther Deschner
f47d642ca7 Add krb5pac IDL from samba4.
Guenther
(This used to be commit dc2e563e1f)
2008-02-17 01:13:05 +01:00
Günther Deschner
05ff7fd46e Use generated DSSETUP client & server rpc functions and remove the hand-written ones.
Guenther
(This used to be commit d5ebfccebb)
2008-01-25 15:30:43 +01:00
Günther Deschner
df5b03a780 Re-run make idl and use generated ndr based on samba4 security.idl (except for DOM_SID).
Guenther
(This used to be commit 1781a57b18)
2008-01-24 13:54:45 +01:00
Volker Lendecke
d4d962f691 Move samba_extended_info_version to smbd/trans2.c
This is right now only used there, and in version.c it gave linker errors
because some binaries (e.g. smbmnt) don't link in time.o
(This used to be commit 1f0eaaa591)
2008-01-22 13:00:22 +01:00
Corinna Vinschen
559603ad69 Get Samba version or capability information from Windows
On Jan 21 16:18, Danilo Almeida wrote:
> Corina wrote:
>
> > +	time_t samba_gitcommitdate;
>
> And:
>
> > +   SIVAL(pdata,28,extended_info.samba_gitcommitdate);
> > +   memcpy(pdata+32,extended_info.samba_version_string,32);
>
> Note that you are dropping bits on a system w/64-bit time_t, and that this has the 2038 problem.

Right.  I changed samba_gitcommitdate from time_t to NTTIME and shortened
samba_version_string to 28 bytes.  New patch below.

Thanks,
Corinna
(This used to be commit 28aa1c199d)
2008-01-22 12:39:47 +01:00
Volker Lendecke
a4c2b04a2b Hide streams from the EA API
(This used to be commit e9bb3d5067)
2008-01-22 12:29:02 +01:00
Volker Lendecke
1069cfe4ad Add streams support
This is the core of the streams support. The main change is that in
files_struct there is now a base_fsp pointer that holds the main file open
while a stream is open. This is necessary to get the rather strange delete
semantics right: You can't delete the main file while a stream is open without
FILE_SHARE_DELETE, and while a stream is open a successful unlink of the main
file leads to DELETE_PENDING for all further access on the main file or any
stream.
(This used to be commit 6022873cc1)
2008-01-19 23:25:36 +01:00
Volker Lendecke
3d3d6e7020 Add the "allinfo" command to smbclient
Modeled after the Samba4 allinfo command
(This used to be commit 3fa0cf3fe5)
2008-01-18 11:08:17 +01:00
Günther Deschner
a92eb76688 Finally enable pidl generated SAMR & NETLOGON headers and clients.
Guenther
(This used to be commit f7100156a7)
2008-01-17 16:54:46 +01:00
Günther Deschner
101f275b98 Use pidl generated data from misc.idl.
Guenther
(This used to be commit 5d8e5cbc3b)
2008-01-17 16:54:46 +01:00
Günther Deschner
2ae6feb577 Include libnet_join.h in the right places.
Guenther
(This used to be commit 586d6cef52)
2008-01-15 15:44:04 +01:00
Jeremy Allison
9254bb4ef1 Refactor the crypto code after a very helpful conversation
with Volker. Mostly making sure we have data on the incoming
packet type, not stored in the smb header.
Jeremy.
(This used to be commit c4e5a50504)
2008-01-04 12:56:23 -08:00
Günther Deschner
9b5ec6ba03 Happy new year !
Guenther
(This used to be commit 9a58cd5795)
2008-01-02 12:56:24 +01:00