[SCM] Samba Shared Repository - branch v4-0-stable updated
Karolin Seeger
kseeger at samba.org
Tue Jul 2 01:16:58 MDT 2013
The branch, v4-0-stable has been updated
via 5e3a301 VERSION: Disable git snapshots for the 4.0.7 release.
via 67a77db WHATSNEW: Add release notes for Samba 4.0.7.
via cc13903 torture: Add tests for LDAP substring search with no strings provided
via 51f19c4 libcli/ldap: Cope with substring match with no chunks in ldap_push_filter
via 980ecbf ldb: bump version to allow a depencency on the substring crash fix
via 1650e8a ldb: Cope with substring match with no chunks in ldb_filter_from_tree
via df6574c ldb: Ensure not to segfault on a filter such as (mail=)
via b67c906 heimdal_build: Add missing dep on samba4kgetcred
via 4b25860 docs: Avoid mentioning a possibly misleading option.
via a46a6be tevent: Fix Coverity ID 989236 Operands don't affect result
via 45ba921 Bug 8997: change libreplace GPL source to LGPL
via 897bfd1 s4-dfs_server: check for netbios aliases in ad_get_referrals (bug #9947)
via 57a6c8f dns: Support larger queries when asking forwarder
via 81539da idl: Add support for parsing OPT records
via 9328284 When message-type is drvupgrade, MSG_DEBUG should be replaced with MSG_PRINTER_DRVUPGRADE.
via 865765c Check for WRITE_ACCESS on the file before overriding an EACCESS.
via e90f140 Ensure we don't try the open_file_fchmod() if we can't write to the file.
via 02a9d78 Remove indentation around code wrapped by unneeded CAN_WRITE.
via 7391cae Add early return in file_set_dosmode() on a read only share.
via d0ec11d BUG 9881: Check for system libtevent.
via 1d610ce s4:winbind: don't leak libnet_context into the main event context (bug #9929)
via 62e25dc Fix bug 9900: is_printer_published GUID retrieval
via 60bb8f9 printing: explicitly clear PUBLISHED attribute
via 6736784 dns: Delete dnsNode objects when they are empty
via 1a1e445 dns: Fix allocation of txt_record in txt record tests
via a2814d3 dns: more debug debug options in the tests
via 5a2d041 winbind4: Fix bug 9832 -- talloc use after free
via d4cd828 waf: build PIEs if supported by the compiler
via b4378f1 waf: build position independent executables
via 097ec58 waf: add --with[out]-pie configure arguments
via 0996e95 build: Add missing new line to replaced python shebang line. (Fix bug #9909)
via 2aee249 build: Install smbtar in waf build
via 06228ec build: Blacklist the release-4-0-0 provision as well
via 1100bf2 build: Do not set PATH in install_with_python now we set $PYTHON
via 7f88d81 build: Rework BSD_STYLE_STATVFS check to match autoconf build
via f27239b lib/replace: Set BROKEN_STRNLEN and BROKEN_STRNDUP on all AIX
via 85db5bf docs: Remove all references to testprns
via b54aed1 docs: Fix small errors in TOSHARG-Compiling
via 68c5915 docs: Remove TOSHARG-HighAvailability which is made obsolete by CTDB
via 5bbcf09 docs: Remove out of date and unmaintained Speed page from the HOWTO
via 07073fb dns: Add support for MX queries
via 46e82a2 More generic check for OpenBSD platform
via 9b1fac4 docs: mention AD prerequirements for using idmap_ad
via f6f3849 winbind/idmap_ad: be verbose about the user that we fail to map
via 27a3cab s3:lib/server_mutex: open mutex.tdb with CLEAR_IF_FIRST
via 671943a s3-rpc_server: Ensure we are root when starting and usiing gensec
via c497442 VERSION: Bump version number up to 4.0.7...
from 4800b9f VERSION: Disable git snapshots for the 4.0.6 release.
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v4-0-stable
- Log -----------------------------------------------------------------
-----------------------------------------------------------------------
Summary of changes:
VERSION | 2 +-
WHATSNEW.txt | 112 +++++-
buildtools/wafsamba/samba_autoconf.py | 4 +-
buildtools/wafsamba/wafsamba.py | 15 +-
dfs_server/dfs_server_ad.c | 35 ++
docs-xml/Samba3-HOWTO/TOSHARG-Compiling.xml | 6 +-
docs-xml/Samba3-HOWTO/TOSHARG-HighAvailability.xml | 500 --------------------
docs-xml/Samba3-HOWTO/TOSHARG-Speed.xml | 327 -------------
docs-xml/Samba3-HOWTO/index.xml | 4 -
docs-xml/manpages/idmap_ad.8.xml | 9 +-
docs-xml/manpages/nmbd.8.xml | 1 -
docs-xml/manpages/smb.conf.5.xml | 1 -
docs-xml/manpages/smbd.8.xml | 1 -
docs-xml/smbdotconf/domain/allowdnsupdates.xml | 4 +-
docs-xml/using_samba/appd.xml | 18 -
docs-xml/using_samba/ch01.xml | 6 -
docs-xml/using_samba/ch07.xml | 8 -
examples/tridge/smb.conf | 8 -
install_with_python.sh | 2 -
lib/ldb/ABI/{ldb-1.1.14.sigs => ldb-1.1.16.sigs} | 0
...ldb-util-1.1.10.sigs => pyldb-util-1.1.16.sigs} | 0
lib/ldb/common/ldb_match.c | 5 +
lib/ldb/common/ldb_parse.c | 2 +-
lib/ldb/wscript | 4 +-
lib/replace/getifaddrs.c | 28 +-
lib/replace/socket.c | 22 +-
lib/replace/test/getifaddrs.c | 24 +-
lib/replace/wscript | 13 +
lib/tevent/tevent_poll.c | 2 +-
lib/util/wscript_configure | 22 +-
libcli/ldap/ldap_message.c | 41 +-
librpc/idl/dns.idl | 8 +
python/samba/tests/dns.py | 206 ++++++++-
source3/Makefile.in | 208 +++++----
source3/configure.in | 42 ++-
source3/include/nt_printing.h | 6 +-
source3/lib/server_mutex.c | 5 +-
source3/printing/nt_printing_ads.c | 131 ++++--
source3/rpc_server/dcesrv_auth_generic.c | 38 ++-
source3/rpc_server/spoolss/srv_spoolss_nt.c | 40 ++-
source3/script/wscript_build | 7 +
source3/smbd/dosmode.c | 57 ++-
source3/smbd/server_reload.c | 2 +-
source3/utils/smbcontrol.c | 2 +-
source3/winbindd/idmap_ad.c | 5 +-
source3/wscript_build | 1 +
source4/dns_server/dns_query.c | 21 +
source4/dns_server/dns_server.c | 2 +
source4/dns_server/dns_server.h | 4 +
source4/dns_server/dns_utils.c | 29 ++-
source4/heimdal_build/wscript_build | 2 +-
source4/torture/ldap/basic.c | 110 +++++
source4/winbind/wb_init_domain.c | 2 +
source4/winbind/wb_server.c | 2 +-
wscript | 21 +-
55 files changed, 1017 insertions(+), 1160 deletions(-)
delete mode 100644 docs-xml/Samba3-HOWTO/TOSHARG-HighAvailability.xml
delete mode 100644 docs-xml/Samba3-HOWTO/TOSHARG-Speed.xml
copy lib/ldb/ABI/{ldb-1.1.14.sigs => ldb-1.1.16.sigs} (100%)
copy lib/ldb/ABI/{pyldb-util-1.1.10.sigs => pyldb-util-1.1.16.sigs} (100%)
create mode 100644 source3/script/wscript_build
Changeset truncated at 500 lines:
diff --git a/VERSION b/VERSION
index 3ed42f6..e98b7e8 100644
--- a/VERSION
+++ b/VERSION
@@ -25,7 +25,7 @@
########################################################
SAMBA_VERSION_MAJOR=4
SAMBA_VERSION_MINOR=0
-SAMBA_VERSION_RELEASE=6
+SAMBA_VERSION_RELEASE=7
########################################################
# If a official release has a serious bug #
diff --git a/WHATSNEW.txt b/WHATSNEW.txt
index c8f08da..6ab15c8 100644
--- a/WHATSNEW.txt
+++ b/WHATSNEW.txt
@@ -1,4 +1,112 @@
=============================
+ Release Notes for Samba 4.0.7
+ July 2, 2013
+ =============================
+
+
+This is is the latest stable release of Samba 4.0.
+
+Major enhancements in Samba 4.0.7 include:
+
+o Fix a core dump with invalid lock order while opening/editing
+ or copying MS files (bug #9794).
+o Fix crash bug from search of mail= (bug #9967).
+o winbind4: talloc use after free (bug #9832).
+
+
+Changes since 4.0.6:
+--------------------
+
+o Michael Adam <obnox at samba.org>
+ * BUG 9909: build: Add missing new line to replaced python shebang line.
+
+
+o Jeremy Allison <jra at samba.org>
+ * BUG 9794: Fix a core dump with invalid lock order while opening/editing
+ or copying MS files.
+
+
+o Andrew Bartlett <abartlet at samba.org>
+ * BUG 9465: s3-rpc_server: Ensure we are root when starting and using
+ gensec.
+ * BUG 9906: Doc fixes for 4.0.
+ * BUG 9907: Build fixes for 4.0 found during autoconf or debian packaging
+ work.
+ * BUG 9967: Fix crash bug from search of mail=.
+ * BUG 9968: Fix build with system Heimdal of samba4kgetcred.
+
+
+o Björn Baumbach <bb at sernet.de>
+ * BUG 9947: Check for netbios aliases in ad_get_referrals.
+
+
+o Kai Blin <kai at samba.org>
+ * BUG 9485: Add support for MX queries.
+ * BUG 9559: dns: Delete dnsNode objects when they are empty.
+ * BUG 9632: dns: Support larger queries when asking forwarder.
+
+
+o David Disseldorp <ddiss at samba.org>
+ * BUG 8997: Change libreplace GPL source to LGPL.
+ * BUG 9900: is_printer_published GUID retrieval.
+ * BUG 9910: PIE builds not supported.
+
+
+o Peng Haitao <penght at cn.fujitsu.com>
+ * BUG 9941: Fix a bug of drvupgrade of smbcontrol.
+
+
+o Björn Jacke <bj at sernet.de>
+ * BUG 9880: Use of wrong RFC2307 primary group field.
+
+
+o Volker Lendecke <vl at samba.org>
+ * BUG 9832: winbind4: talloc use after free.
+ * BUG 9953: Fix tevent_poll on 32-bit machines (Coverity ID 989236).
+
+
+o Stefan Metzmacher <metze at samba.org>
+ * BUG 9805: s3:lib/server_mutex: Open mutex.tdb with CLEAR_IF_FIRST.
+ * BUG 9929: s4:winbind: Don't leak libnet_context into the main event
+ context.
+
+
+o Andreas Schneider <asn at samba.org>
+ * BUG 9881: Check for system libtevent.
+
+
+o Michael Wood <esiotrot at gmail.com>
+ * BUG 9964: docs: Avoid mentioning a possibly misleading option.
+
+
+o Vadim Zhukov <persgray at gmail.com>
+ * BUG 9888: More generic check for OpenBSD platform.
+
+
+######################################################################
+Reporting bugs & Development Discussion
+#######################################
+
+Please discuss this release on the samba-technical mailing list or by
+joining the #samba-technical IRC channel on irc.freenode.net.
+
+If you do report problems then please try to send high quality
+feedback. If you don't provide vital information to help us track down
+the problem then you will probably be ignored. All bug reports should
+be filed under the Samba 4.0 product in the project's Bugzilla
+database (https://bugzilla.samba.org/).
+
+
+======================================================================
+== Our Code, Our Bugs, Our Responsibility.
+== The Samba Team
+======================================================================
+
+
+Release notes for older releases follow:
+----------------------------------------
+
+ =============================
Release Notes for Samba 4.0.6
May 21, 2013
=============================
@@ -96,8 +204,8 @@ database (https://bugzilla.samba.org/).
======================================================================
-Release notes for older releases follow:
-----------------------------------------
+----------------------------------------------------------------------
+
=============================
Release Notes for Samba 4.0.5
diff --git a/buildtools/wafsamba/samba_autoconf.py b/buildtools/wafsamba/samba_autoconf.py
index 65c66f3..fe110bd 100644
--- a/buildtools/wafsamba/samba_autoconf.py
+++ b/buildtools/wafsamba/samba_autoconf.py
@@ -776,9 +776,9 @@ def SETUP_CONFIGURE_CACHE(conf, enable):
def SAMBA_CHECK_UNDEFINED_SYMBOL_FLAGS(conf):
# we don't want any libraries or modules to rely on runtime
# resolution of symbols
- if sys.platform != "openbsd4" and sys.platform != "openbsd5":
+ if not sys.platform.startswith("openbsd"):
conf.env.undefined_ldflags = conf.ADD_LDFLAGS('-Wl,-no-undefined', testflags=True)
- if sys.platform != "openbsd4" and sys.platform != "openbsd5" and conf.env.undefined_ignore_ldflags == []:
+ if not sys.platform.startswith("openbsd") and conf.env.undefined_ignore_ldflags == []:
if conf.CHECK_LDFLAGS(['-undefined', 'dynamic_lookup']):
conf.env.undefined_ignore_ldflags = ['-undefined', 'dynamic_lookup']
diff --git a/buildtools/wafsamba/wafsamba.py b/buildtools/wafsamba/wafsamba.py
index 3559cc1..47393ad 100644
--- a/buildtools/wafsamba/wafsamba.py
+++ b/buildtools/wafsamba/wafsamba.py
@@ -342,6 +342,13 @@ def SAMBA_BINARY(bld, binname, source,
else:
subsystem_group = group
+ # only specify PIE flags for binaries
+ pie_cflags = cflags
+ pie_ldflags = TO_LIST(ldflags)
+ if bld.env['ENABLE_PIE'] == True:
+ pie_cflags += ' -fPIE'
+ pie_ldflags.extend(TO_LIST('-pie'))
+
# first create a target for building the object files for this binary
# by separating in this way, we avoid recompiling the C files
# separately for the install binary and the build binary
@@ -349,7 +356,7 @@ def SAMBA_BINARY(bld, binname, source,
source = source,
deps = deps,
includes = includes,
- cflags = cflags,
+ cflags = pie_cflags,
group = subsystem_group,
autoproto = autoproto,
subsystem_name = subsystem_name,
@@ -379,7 +386,7 @@ def SAMBA_BINARY(bld, binname, source,
install_path = None,
samba_inst_path= install_path,
samba_install = install,
- samba_ldflags = TO_LIST(ldflags)
+ samba_ldflags = pie_ldflags
)
if manpages is not None and 'XSLTPROC_MANPAGES' in bld.env and bld.env['XSLTPROC_MANPAGES']:
@@ -699,9 +706,9 @@ sys.path.insert(1, "%s")""" % (task.env["PYTHONARCHDIR"], task.env["PYTHONDIR"])
shebang = None
if task.env["PYTHON"][0] == "/":
- replacement_shebang = "#!%s" % task.env["PYTHON"]
+ replacement_shebang = "#!%s\n" % task.env["PYTHON"]
else:
- replacement_shebang = "#!/usr/bin/env %s" % task.env["PYTHON"]
+ replacement_shebang = "#!/usr/bin/env %s\n" % task.env["PYTHON"]
installed_location=task.outputs[0].bldpath(task.env)
source_file = open(task.inputs[0].srcpath(task.env))
diff --git a/dfs_server/dfs_server_ad.c b/dfs_server/dfs_server_ad.c
index ceabe05..8fa143d 100644
--- a/dfs_server/dfs_server_ad.c
+++ b/dfs_server/dfs_server_ad.c
@@ -751,6 +751,7 @@ NTSTATUS dfs_server_ad_get_referrals(struct loadparm_context *lp_ctx,
const char *dns_domain;
const char *netbios_name;
const char *dns_name;
+ const char **netbios_aliases;
if (!lpcfg_host_msdfs(lp_ctx)) {
return NT_STATUS_FS_DRIVER_REQUIRED;
@@ -827,6 +828,40 @@ NTSTATUS dfs_server_ad_get_referrals(struct loadparm_context *lp_ctx,
return NT_STATUS_NOT_FOUND;
}
+ netbios_aliases = lpcfg_netbios_aliases(lp_ctx);
+ while (netbios_aliases && *netbios_aliases) {
+ const char *netbios_alias = *netbios_aliases;
+ char *dns_alias;
+ int cmp;
+
+ cmp = strcasecmp_m(server_name, netbios_alias);
+ if (cmp == 0) {
+ /*
+ * If it is not domain related do not
+ * handle it here.
+ */
+ return NT_STATUS_NOT_FOUND;
+ }
+
+ dns_alias = talloc_asprintf(r, "%s.%s",
+ netbios_alias,
+ dns_domain);
+ if (dns_alias == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ cmp = strcasecmp_m(server_name, dns_alias);
+ talloc_free(dns_alias);
+ if (cmp == 0) {
+ /*
+ * If it is not domain related do not
+ * handle it here.
+ */
+ return NT_STATUS_NOT_FOUND;
+ }
+ netbios_aliases++;
+ }
+
if ((strcasecmp_m(server_name, netbios_domain) != 0) &&
(strcasecmp_m(server_name, dns_domain) != 0)) {
/*
diff --git a/docs-xml/Samba3-HOWTO/TOSHARG-Compiling.xml b/docs-xml/Samba3-HOWTO/TOSHARG-Compiling.xml
index ac866a8..3a2b729 100644
--- a/docs-xml/Samba3-HOWTO/TOSHARG-Compiling.xml
+++ b/docs-xml/Samba3-HOWTO/TOSHARG-Compiling.xml
@@ -119,7 +119,7 @@ gpg: BAD signature from <quote>Samba Distribution Verification Key</quote>
<para>
<indexterm><primary>configure</primary></indexterm>
To build the binaries, run the program <userinput>./configure
- </userinput> in the top level director of the source tree. This should automatically
+ </userinput> in the top level directory of the source tree. This should automatically
configure Samba for your operating system. If you have unusual
needs, then you may wish to first run:
<screen>
@@ -177,7 +177,7 @@ gpg: BAD signature from <quote>Samba Distribution Verification Key</quote>
<para>
After you run configure, make sure that the
- <filename>bin/include/config.h</filename> it generates contain lines like this:
+ <filename>bin/default/include/config.h</filename> it generates contain lines like this:
<programlisting>
#define HAVE_KRB5 1
#define HAVE_LDAP 1
@@ -186,7 +186,7 @@ gpg: BAD signature from <quote>Samba Distribution Verification Key</quote>
<para>
If it does not, configure did not find your KRB5 libraries or
- your LDAP libraries. Look in <filename>config.log</filename> to figure
+ your LDAP libraries. Look in <filename>bin/config.log</filename> to figure
out why and fix it.
</para>
diff --git a/docs-xml/Samba3-HOWTO/TOSHARG-HighAvailability.xml b/docs-xml/Samba3-HOWTO/TOSHARG-HighAvailability.xml
deleted file mode 100644
index 1ce81d4..0000000
--- a/docs-xml/Samba3-HOWTO/TOSHARG-HighAvailability.xml
+++ /dev/null
@@ -1,500 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE chapter PUBLIC "-//Samba-Team//DTD DocBook V4.2-Based Variant V1.0//EN" "http://www.samba.org/samba/DTD/samba-doc">
-<chapter id="SambaHA">
-<chapterinfo>
- &author.jht;
- &author.jeremy;
-</chapterinfo>
-
-<title>High Availability</title>
-
-<sect1>
-<title>Features and Benefits</title>
-
-<para>
-<indexterm><primary>availability</primary></indexterm>
-<indexterm><primary>intolerance</primary></indexterm>
-<indexterm><primary>vital task</primary></indexterm>
-Network administrators are often concerned about the availability of file and print
-services. Network users are inclined toward intolerance of the services they depend
-on to perform vital task responsibilities.
-</para>
-
-<para>
-A sign in a computer room served to remind staff of their responsibilities. It read:
-</para>
-
-<blockquote>
-<para>
-<indexterm><primary>fail</primary></indexterm>
-<indexterm><primary>managed by humans</primary></indexterm>
-<indexterm><primary>economically wise</primary></indexterm>
-<indexterm><primary>anticipate failure</primary></indexterm>
-All humans fail, in both great and small ways we fail continually. Machines fail too.
-Computers are machines that are managed by humans, the fallout from failure
-can be spectacular. Your responsibility is to deal with failure, to anticipate it
-and to eliminate it as far as is humanly and economically wise to achieve.
-Are your actions part of the problem or part of the solution?
-</para>
-</blockquote>
-
-<para>
-If we are to deal with failure in a planned and productive manner, then first we must
-understand the problem. That is the purpose of this chapter.
-</para>
-
-<para>
-<indexterm><primary>high availability</primary></indexterm>
-<indexterm><primary>CIFS/SMB</primary></indexterm>
-<indexterm><primary>state of knowledge</primary></indexterm>
-Parenthetically, in the following discussion there are seeds of information on how to
-provision a network infrastructure against failure. Our purpose here is not to provide
-a lengthy dissertation on the subject of high availability. Additionally, we have made
-a conscious decision to not provide detailed working examples of high availability
-solutions; instead we present an overview of the issues in the hope that someone will
-rise to the challenge of providing a detailed document that is focused purely on
-presentation of the current state of knowledge and practice in high availability as it
-applies to the deployment of Samba and other CIFS/SMB technologies.
-</para>
-
-</sect1>
-
-<sect1>
-<title>Technical Discussion</title>
-
-<para>
-<indexterm><primary>SambaXP conference</primary></indexterm>
-<indexterm><primary>Germany</primary></indexterm>
-<indexterm><primary>inspired structure</primary></indexterm>
-The following summary was part of a presentation by Jeremy Allison at the SambaXP 2003
-conference that was held at Goettingen, Germany, in April 2003. Material has been added
-from other sources, but it was Jeremy who inspired the structure that follows.
-</para>
-
- <sect2>
- <title>The Ultimate Goal</title>
-
- <para>
-<indexterm><primary>clustering technologies</primary></indexterm>
-<indexterm><primary>affordable power</primary></indexterm>
-<indexterm><primary>unstoppable services</primary></indexterm>
- All clustering technologies aim to achieve one or more of the following:
- </para>
-
- <itemizedlist>
- <listitem><para>Obtain the maximum affordable computational power.</para></listitem>
- <listitem><para>Obtain faster program execution.</para></listitem>
- <listitem><para>Deliver unstoppable services.</para></listitem>
- <listitem><para>Avert points of failure.</para></listitem>
- <listitem><para>Exact most effective utilization of resources.</para></listitem>
- </itemizedlist>
-
- <para>
- A clustered file server ideally has the following properties:
-<indexterm><primary>clustered file server</primary></indexterm>
-<indexterm><primary>connect transparently</primary></indexterm>
-<indexterm><primary>transparently reconnected</primary></indexterm>
-<indexterm><primary>distributed file system</primary></indexterm>
- </para>
-
- <itemizedlist>
- <listitem><para>All clients can connect transparently to any server.</para></listitem>
- <listitem><para>A server can fail and clients are transparently reconnected to another server.</para></listitem>
- <listitem><para>All servers serve out the same set of files.</para></listitem>
- <listitem><para>All file changes are immediately seen on all servers.</para>
- <itemizedlist><listitem><para>Requires a distributed file system.</para></listitem></itemizedlist></listitem>
- <listitem><para>Infinite ability to scale by adding more servers or disks.</para></listitem>
- </itemizedlist>
-
- </sect2>
-
- <sect2>
- <title>Why Is This So Hard?</title>
-
- <para>
- In short, the problem is one of <emphasis>state</emphasis>.
- </para>
-
- <itemizedlist>
- <listitem>
- <para>
-<indexterm><primary>state information</primary></indexterm>
- All TCP/IP connections are dependent on state information.
- </para>
- <para>
-<indexterm><primary>TCP failover</primary></indexterm>
- The TCP connection involves a packet sequence number. This
- sequence number would need to be dynamically updated on all
- machines in the cluster to effect seamless TCP failover.
- </para>
- </listitem>
- <listitem>
- <para>
-<indexterm><primary>CIFS/SMB</primary></indexterm>
-<indexterm><primary>TCP</primary></indexterm>
- CIFS/SMB (the Windows networking protocols) uses TCP connections.
- </para>
- <para>
- This means that from a basic design perspective, failover is not
- seriously considered.
- <itemizedlist>
- <listitem><para>
- All current SMB clusters are failover solutions
- &smbmdash; they rely on the clients to reconnect. They provide server
- failover, but clients can lose information due to a server failure.
-<indexterm><primary>server failure</primary></indexterm>
- </para></listitem>
- </itemizedlist>
- </para>
- </listitem>
- <listitem>
- <para>
- Servers keep state information about client connections.
- <itemizedlist>
-<indexterm><primary>state</primary></indexterm>
- <listitem><para>CIFS/SMB involves a lot of state.</para></listitem>
- <listitem><para>Every file open must be compared with other open files
- to check share modes.</para></listitem>
- </itemizedlist>
- </para>
- </listitem>
- </itemizedlist>
-
- <sect3>
- <title>The Front-End Challenge</title>
-
- <para>
-<indexterm><primary>cluster servers</primary></indexterm>
-<indexterm><primary>single server</primary></indexterm>
-<indexterm><primary>TCP data streams</primary></indexterm>
-<indexterm><primary>front-end virtual server</primary></indexterm>
-<indexterm><primary>virtual server</primary></indexterm>
-<indexterm><primary>de-multiplex</primary></indexterm>
-<indexterm><primary>SMB</primary></indexterm>
- To make it possible for a cluster of file servers to appear as a single server that has one
- name and one IP address, the incoming TCP data streams from clients must be processed by the
- front-end virtual server. This server must de-multiplex the incoming packets at the SMB protocol
- layer level and then feed the SMB packet to different servers in the cluster.
- </para>
-
- <para>
-<indexterm><primary>IPC$ connections</primary></indexterm>
-<indexterm><primary>RPC calls</primary></indexterm>
- One could split all IPC$ connections and RPC calls to one server to handle printing and user
- lookup requirements. RPC printing handles are shared between different IPC4 sessions &smbmdash; it is
- hard to split this across clustered servers!
- </para>
-
- <para>
- Conceptually speaking, all other servers would then provide only file services. This is a simpler
- problem to concentrate on.
- </para>
-
- </sect3>
-
- <sect3>
- <title>Demultiplexing SMB Requests</title>
-
- <para>
-<indexterm><primary>SMB requests</primary></indexterm>
-<indexterm><primary>SMB state information</primary></indexterm>
-<indexterm><primary>front-end virtual server</primary></indexterm>
-<indexterm><primary>complicated problem</primary></indexterm>
- De-multiplexing of SMB requests requires knowledge of SMB state information,
- all of which must be held by the front-end <emphasis>virtual</emphasis> server.
- This is a perplexing and complicated problem to solve.
--
Samba Shared Repository
More information about the samba-cvs
mailing list