Volker Lendecke [Wed, 14 Jan 2009 15:06:10 +0000 (16:06 +0100)]
Simplify rpc_read a bit
rpc_read always reads the whole bytes it was asked to read. So it is not really
necessary for it to update the current_pdu_offset, for clarity this can better
be done in the caller.
Günther Deschner [Tue, 13 Jan 2009 12:14:36 +0000 (13:14 +0100)]
eventlog: more eventlog record idl fixes.
- treat eventlogEventTypes as an enum.
- do not align the full eventlog entry.
- set range on number of strings according to docs.
- make a little more obvious what the reserved field stands for.
Torgeir Lerkerod [Tue, 13 Jan 2009 21:15:37 +0000 (22:15 +0100)]
Fixed problemed showed on a number of systems on the buildfarm.
Problem shows up as perl error related to config.pm in reality
this was related to the ECHO_C variable. Added test to skip that
variable as no perl module is using it.
Torgeir
Signed-off-by: Torgeir Lerkerod <Torgeir.Lerkerod@gmail.com> Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Günther Deschner [Mon, 12 Jan 2009 12:45:38 +0000 (13:45 +0100)]
eventlog: some fixes for eventlog_Record struct.
* make reserved field always have value 0x654c664C ("eLfL").
* add missing sid entry
* add padding and 2nd size counter.
* use time_t in eventlog_Record.
s3:libsmb: handle the smb signing states the same in the krb5 and ntlmssp cases
SMB signing works the same regardless of the used auth mech.
We need to start with the temp signing ("BSRSPYL ")
and the session setup response with NT_STATUS_OK
is the first signed packet.
Now we set the krb5 session key if we got the NT_STATUS_OK
from the server and then recheck the packet.
All this is needed to make the fallback from krb5 to
ntlmssp possible. This commit also resets the cli->vuid
value to 0, if the krb5 auth didn't succeed. Otherwise
the server handles NTLMSSP packets as krb5 packets.
The restructuring of the SMB signing code is needed to
make sure the krb5 code only starts the signing engine
on success. Otherwise the NTLMSSP fallback could not initialize
the signing engine (again).
Tim Prouty [Sat, 3 Jan 2009 01:35:04 +0000 (17:35 -0800)]
s3: Differentiate between posix files with colons and actual streams
It is possible for a posix file created locally or over nfs to have a
":" in the name. Since ":" is a reserved character in windows,
filenames containing a colon must be mangled in a directory listing.
Right now files containing colons will not even be displayed in
directory listings if streams modules are in use. During the
directory listing the file will be detected as a stream because of the
colon, but the streams module will fail to find the stream since it
doesn't exist. This fix adds a step to is_ntfs_stream_name that stats
the filename to differentiate between actual streams and files
containing colons.
While this is an improvement, it isn't perfect. Consider the case
where there is a file on disk called "a.txt:s1" and also a file called
"a.txt" that has a stream called "s1". This patch will always
preference "a.txt:s1" over a.txt's s1 stream.
The real issue is that at the vfs level, the vfs modules have no way
to tell between a demangled name with a colon and an actual stream. A
more invasive, but better, long-term fix would be to add all paths
that come over the wire into a struct containing metadata about the
path. This metadata could include a flag to indicate whether the path
came over the wire with a colon ":" (guaranteeing that the client is
requesting a stream). Passing this struct down to the lower levels,
including all path-based vfs calls, would allow the above case to be
handled correctly in all cases.
Karolin Seeger [Fri, 9 Jan 2009 15:52:12 +0000 (16:52 +0100)]
s3/net: Display error message if user does not exist.
net rpc rights grant: Verify if the username can be resolved to a SID and
display a proper error message if it does not. Otherwise users might think
setting privileges worked fine, but in fact it does not.
s4:debug: make setup_logging() a bit more compatible with samba3
In samba3 the 2nd argument is bool interactive.
E.g ndrdump uses true there which used to map to DEBUG_FILE
in samba4, it maps to DEBUG_STDOUT now, which is better.
In the end end samba3 should also use the samba4 version of
setup_logging()
s3:smbd: handle incoming smb requests via event handlers
We use a fd event and receive incoming smb requests
when the fd becomes readable. It's not completely
nonblocking yet, but it should behave like the old code.
We use timed events to trigger retries for deferred open calls.
Jeremy Allison [Thu, 8 Jan 2009 18:36:10 +0000 (10:36 -0800)]
Fix race condition in alarm lock processing noticed by Richard Sharpe <realrichardsharpe@gmail.com>.
"It seems to me that if the lock is already held by another process when we
enter this code, there is a race between the timeout and the granting. If
the lock is subsequently granted, the process releasing the lock will signal
the wait variable (or whatever) and our process will be scheduled. However,
if the timeout occurs before we are scheduled, the timeout will be delivered
first.
We will have the lock but will forget we have the lock, and never release
it."
Jeremy.