Volker Lendecke [Sun, 18 Jan 2009 12:15:23 +0000 (13:15 +0100)]
Fix some real bugs found by "type-punned" gcc warnings
Type-casting does not the right thing if used the way it used to be. The
function arguments have not been uint32_t's, but the type cast made the calling
routine believe so. Not good...
The assignment xxx=account_policy_temp does however type-convert properly,
potentially cutting off the top-bits.
Derrell Lipman [Sat, 17 Jan 2009 18:33:25 +0000 (13:33 -0500)]
Determine case sensitivity based on file system attributes.
- Most of the time, we can determine from the file system we're connecting to
whether it supports case sensitivity. In those cases, we now set the
internal case sensitivity flag automatically. For those cases where the
request to retrieve file system attributes fails, we'll use the
user-specified option value.
Derrell Lipman [Sat, 17 Jan 2009 01:26:46 +0000 (20:26 -0500)]
[Bug 6022] smbc_urlencode and smbc_urldecode were not exported
- Since the revamp of libsmbclient, there has still been an external
declaration for smbc_urlencode and smbc_urldecode in libsmbclient.h, yet
those functions were renamed and made private. The two choices were to
remove the function names from libsmbclient.h or to make them public
again. The reported requested that they be public. This commit makes it so.
Derrell Lipman [Fri, 16 Jan 2009 21:41:36 +0000 (16:41 -0500)]
Treat file names in POSIX-like case-sensitive fashion by default
*** THIS COMMIT CAUSES A CHANGE OF DEFAULT BEHAVIOR IN libsmbclient!!! ***
- libsmbclient now calls cli_set_case_sensitive() for a new CLI. By default,
it requests case-sensitive, but the old behavior of case-insensitive can be
requested with smbc_setOptionCaseSensitive(context, False);
The change of behavior is considered a bug fix, as it was previously
possible to accidentally overwrite a file that had the same case-insensitive
name but a different case-sensitive name as a previously-existing file,
while creating a new file.
ads_connect: Return immediately on a failed GC connection.
ads_connect_gc() feeds an explicit server to ads_connect(). However, if the
resulting connection fails, the latter function was attempting to find a DC
on its own and continuing the connection. This resulting in GC searches being
sent over a connection using port 389 which would fail when using the base
search suffix outside of the domain naming context.
The fix is to fail immediately in ads_connect() since the GC lookup ordering
is handled already in ads_connect_gc().
We need to use CTDB_CONTROL_TCP_CLIENT instead of CTDB_CONTROL_TCP_ADD.
CTDB_CONTROL_TCP_CLIENT has support for 2 modes in newer ctdb versions:
- with struct ctdb_control_tcp it only supports ipv4.
- with struct ctdb_control_tcp_addr it supports ipv4 and ipv6.
You need new header files which defines struct ctdb_control_tcp_addr,
but at runtime it should be fine to work against older
ctdb versions (<= 1.0.68).
Volker Lendecke [Mon, 10 Nov 2008 09:01:26 +0000 (10:01 +0100)]
Add a new implementation of chain_reply
This the global variable "orig_inbuf" in the old chain_reply code. This global
variable was one of the reasons why we had the silly restriction to not allow
async requests within a request chain.
Jeremy Allison [Thu, 15 Jan 2009 23:52:41 +0000 (15:52 -0800)]
Allow reinit_after_fork to be called safely from within swat and other binaries that don't have
an event context or a msg context. Fixes crash bug in swat.
Jeremy.
Tim Prouty [Thu, 15 Jan 2009 18:51:57 +0000 (10:51 -0800)]
pidl: Add max property to be used instead of range for unsigned types.
Compilers complain about ranges starting at 0 for unsigned types,
since an unsigned type is never less than 0. The max property
implicitly makes 0 the lower bound when used with unsigned types.
Michael Adam [Thu, 15 Jan 2009 21:27:52 +0000 (22:27 +0100)]
s3: make better use of ccache by not including version.h in every C-file.
version.h changes rather frequently. Since it is included via includes.h,
this means each C file will be a cache miss. This applies to the following
situations:
* When building a new package with a new Samba version
* building in a git branch after calling mkversion.sh
after a new commit (i.e. virtually always)
This patch improves the situation in the following way:
* remove inlude "version.h" from includes.h
* Use samba_version_string() instead of SAMBA_VERSION_STRING
in files that use no other macro from version.h instead of
SAMBA_VERSION_STRING.
* explicitly include "version.h" in those files that use more
macros from "version.h" than just SAMBA_VERSION_STRING.
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).