Commit e2df0615 authored by bubulle's avatar bubulle

Load samba-3.4.0 into branches/samba/upstream.

git-svn-id: svn:// fc4039ab-9d04-0410-8cac-899223bdd6b0
parent 130ad4cd

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

This diff is collapsed.
......@@ -26,8 +26,8 @@ libmsrpc Chris Nichols <>
libsmbclient Derrell Lipman <>
pdb_*sql Wilco Baan Hofman <>
Florian Effenberger <>
pdb_*sql Collen Blijenberg <>
Herwin Weststrate <>
## Coding conventions in the Samba 3 tree
Coding conventions in the Samba tree
.. contents::
Quick Start
......@@ -14,15 +15,13 @@ style should never outweigh coding itself and so the the guidelines
described here are hopefully easy enough to follow as they are very
common and supported by tools and editors.
The basic style, also mentioned in the SAMBA_4_0/prog_guide.txt is the
Linux kernel coding style (See Documentation/CodingStyle in the kernel
source tree). The closely matches what most Samba developers use already
The basic style, also mentioned in prog_guide4.txt, is the Linux kernel coding
style (See Documentation/CodingStyle in the kernel source tree). This closely
matches what most Samba developers use already anyways.
But to save you the trouble of reading the Linux kernel style guide, here
are the highlights.
* Maximum Line Width is 80 Characters
The reason is not for people with low-res screens but rather sticking
to 80 columns prevents you from easily nesting more than one level of
......@@ -59,14 +58,14 @@ Vi
(Thanks to SATOH Fumiyasu <> for these hints):
For the basic vi editor including with all variants of *nix, add the
For the basic vi editor including with all variants of \*nix, add the
following to $HOME/.exrc:
set tabstop=8
set shiftwidth=8
For Vim, the following settings in $HOME/.vimrc will also deal with
displaying trailing whitespace:
displaying trailing whitespace::
if has("syntax") && (&t_Co > 2 || has("gui_running"))
syntax on
......@@ -91,7 +90,7 @@ FAQ & Statement Reference
Comments should always use the standard C syntax. I.e. /* ... */. C++
Comments should always use the standard C syntax. C++
style comments are not currently allowed.
......@@ -145,7 +144,7 @@ The exception to the ending rule is when the closing brace is followed by
another language keyword such as else or the closing while in a do..while
Good examples:
Good examples::
if (x == 1) {
......@@ -162,7 +161,7 @@ Good examples:
printf("also good\n");
} while (1);
Bad examples:
Bad examples::
while (1)
......@@ -173,33 +172,33 @@ Goto
While many people have been academically taught that goto's are fundamentally
evil, then can greatly enhance readability and reduce memory leaks when used
evil, they can greatly enhance readability and reduce memory leaks when used
as the single exit point from a function. But in no Samba world what so ever
is a goto outside of a function or block of code a good idea.
Good Examples:
int function foo(int y)
int *z = NULL;
int ret = 0;
Good Examples::
if ( y < 10 ) {
z = malloc(sizeof(int)*y);
if (!z) {
ret = 1;
goto done;
int function foo(int y)
int *z = NULL;
int ret = 0;
if ( y < 10 ) {
z = malloc(sizeof(int)*y);
if (!z) {
ret = 1;
goto done;
print("Allocated %d elements.\n", y);
print("Allocated %d elements.\n", y);
if (z)
if (z)
return ret;
return ret;
Checking Pointer Values
......@@ -207,13 +206,13 @@ Checking Pointer Values
When invoking functions that return pointer values, either of the following
are acceptable. Use you best judgement and choose the more readable option.
Remember that many other people will review it.
Remember that many other people will review it.::
if ((x = malloc(sizeof(short)*10)) == NULL ) {
fprintf(stderr, "Unable to alloc memory!\n");
x = malloc(sizeof(short)*10);
if (!x) {
This diff is collapsed.
What's new in Samba 4 alpha7
Samba 4 is the ambitious next version of the Samba suite that is being
developed in parallel to the stable 3.0 series. The main emphasis in
this branch is support for the Active Directory logon protocols used
by Windows 2000 and above.
Samba4 alpha7 follows on from the alpha release series we have been
publishing since September 2007
Samba4 alpha7 is not a final Samba release. That is more a reference
to Samba4's lack of the features we expect you will need than a
statement of code quality, but clearly it hasn't seen a broad
deployment yet. If you were to upgrade Samba3 (or indeed Windows) to
Samba4, you would find many things work, but that other key features
you may have relied on simply are not there yet.
For example, while Samba 3.0 is an excellent member of a Active
Directory domain, Samba4 is happier as a domain controller, and it is
in this role where it has seen deployment into production.
Samba4 is subjected to an awesome battery of tests on an
automated basis, we have found Samba4 to be very stable in it's
behaviour. We have to recommend against upgrading production servers
from Samba 3 to Samba 4 at this stage, because there may be the features on
which you may rely that are not present, or the mapping of
your configuration and user database may not be complete.
If you are upgrading, or looking to develop, test or deploy Samba4, you should
backup all configuration and data.
Samba4 supports the server-side of the Active Directory logon environment
used by Windows 2000 and later, so we can do full domain join
and domain logon operations with these clients.
Our Domain Controller (DC) implementation includes our own built-in
LDAP server and Kerberos Key Distribution Center (KDC) as well as the
Samba3-like logon services provided over CIFS. We correctly generate
the infamous Kerberos PAC, and include it with the Kerberos tickets we
The new VFS features in Samba 4 adapts the filesystem on the server to
match the Windows client semantics, allowing Samba 4 to better match
windows behaviour and application expectations. This includes file
annotation information (in streams) and NT ACLs in particular. The
VFS is backed with an extensive automated test suite.
A new scripting interface has been added to Samba 4, allowing
Python programs to interface to Samba's internals.
The Samba 4 architecture is based around an LDAP-like database that
can use a range of modular backends. One of the backends supports
standards compliant LDAP servers (including OpenLDAP), and we are
working on modules to map between AD-like behaviours and this backend.
We are aiming for Samba 4 to be powerful frontend to large
In the time since Samba4 alpha6 was released in Janurary 2009, Samba has
continued to evolve, but you may particularly notice these areas
(in no particular order):
Multi Master Replication (MMR) configuration can now be generated
for the OpenLDAP-Backend.
OpenLDAP-Online-Configuration (olc) can now be generated for the
OpenLDAP-Backend. (OpenLDAP-Versions >=2.4.15 required).
Support for Windows 7 beta as a member of the Samba4 domain
Issues with the nesting of LDB transactions have been fixed
A number of internal libraries (tevent, auth in particular has been
updated for easier use outside Samba4
spoolss IDL updates to bring Samba3 to use PIDL code, and to merge
the corrected IDL back into Samba4
Fixes to allow use of C++ compilers and to increase portability
Fixed TLS (SSL) support with modern versions of GnuTLS
These are just some of the highlights of the work done in the past
month. More details can be found in our GIT history.
Those familiar with Samba 3 can find a list of user-visible changes
since that release series in the NEWS file.
- Domain member support is in it's infancy, and is not comparable to
the support found in Samba3.
- There is no printing support in the current release.
- There is no NetBIOS browsing support in the current release
- The Samba4 port of the CTDB clustering support is not yet complete
- Clock Synchronisation is critical. Many 'wrong password' errors are
actually due to Kerberos objecting to a clock skew between client
and server. (The NTP work in the previous alphas are partly to assist
with this problem).
- Samba4 alpha7 is currently only portable to recent Linux
distributions. Work to return support for other Unix varients is
expected during the next alpha cycles
A short guide to setting up Samba 4 can be found in the howto.txt file
in root of the tarball.
Bugs can be filed at but please be aware
that many features are simply not expected to work at this stage.
The Samba Wiki at should detail some of these
development plans.
Development and general discussion about Samba 4 happens mainly on
the #samba-technical IRC channel (on and
the samba-technical mailing list (see for
......@@ -334,8 +334,8 @@