Commit cc848c90 authored by Mathieu Parent's avatar Mathieu Parent

Merge tag 'upstream/4.9.5+dfsg'

Upstream version 4.9.5+dfsg
parents 2a1daf2e 97f6bd89
......@@ -25,7 +25,7 @@
########################################################
SAMBA_VERSION_MAJOR=4
SAMBA_VERSION_MINOR=9
SAMBA_VERSION_RELEASE=4
SAMBA_VERSION_RELEASE=5
########################################################
# If a official release has a serious bug #
......
=============================
Release Notes for Samba 4.9.5
March 12, 2019
=============================
Changes since 4.9.4:
--------------------
o Andrew Bartlett <abartlet@samba.org>
* BUG 13714: audit_logging: Remove debug log header and JSON Authentication:
prefix.
* BUG 13760: Fix upgrade from 4.7 (or earlier) to 4.9.
o Jeremy Allison <jra@samba.org>
* BUG 11495: s3: lib: nmbname: Ensure we limit the NetBIOS name correctly.
CID: 1433607.
* BUG 13690: smbd: uid: Don't crash if 'force group' is added to an existing
share connection.
* BUG 13770: s3: VFS: vfs_fruit. Fix the NetAtalk deny mode compatibility
code.
* BUG 13803: s3: SMB1 POSIX mkdir does case insensitive name lookup.
o Christian Ambach <ambi@samba.org>
* BUG 13199: s3:utils/smbget fix recursive download with empty source
directories.
o Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
* BUG 13716: samba-tool drs showrepl: Do not crash if no dnsHostName found.
o Tim Beale <timbeale@catalyst.net.nz>
* BUG 13736: s3:libsmb: cli_smb2_list() can sometimes fail initially on a
connection.
* BUG 13747: join: Throw CommandError instead of Exception for simple errors.
* BUG 13762: ldb: Avoid inefficient one-level searches.
o Ralph Boehme <slow@samba.org>
* BUG 13736: s3: libsmb: use smb2cli_conn_max_trans_size() in
cli_smb2_list().
* BUG 13776: tldap: Avoid use after free errors.
* BUG 13802: Fix idmap xid2sid cache churn.
* BUG 13812: access_check_max_allowed() doesn't process "Owner Rights" ACEs.
o Günther Deschner <gd@samba.org>
* BUG 13720: s3-smbd: Avoid assuming fsp is always intact after close_file
call.
* BUG 13725: s3-vfs-fruit: Add close call.
* BUG 13746: s3-smbd: Use fruit:model string for mDNS registration.
* BUG 13774: s3-vfs: add glusterfs_fuse vfs module.
o David Disseldorp <ddiss@samba.org>
* BUG 13766: printing: Check lp_load_printers() prior to pcap cache update.
* BUG 13807: vfs_ceph: vfs_ceph strict_allocate_ftruncate calls (local FS)
ftruncate and fallocate.
o Philipp Gesang <philipp.gesang@intra2net.com>
* BUG 13737: lib/audit_logging: Actually create talloc.
o Joe Guo <joeg@catalyst.net.nz>
* BUG 13728: netcmd/user: python[3]-gpgme unsupported and replaced by
python[3]-gpg.
o Aaron Haslett <aaronhaslett@catalyst.net.nz>
* BUG 13738: dns: Changing onelevel search for wildcard to subtree.
o Björn Jacke <bj@sernet.de>
* BUG 13721: samba-tool: Don't print backtrace on simple DNS errors.
* BUG 13759: sambaundoguididx: Use the right escaped oder unescaped sam ldb
files.
o Volker Lendecke <vl@samba.org>
* BUG 13742: ctdb: Print locks latency in machinereadable stats.
* BUG 13786: messages_dgm: Messaging gets stuck when pids are recycled.
o Gary Lockyer <gary@catalyst.net.nz>
* BUG 13715: audit_logging: auth_json_audit required auth_json.
* BUG 13765: man pages: Document prefork process model.
* BUG 13773: CVE-2019-3824 ldb: Release ldb 1.4.6.
o Stefan Metzmacher <metze@samba.org>
* BUG 13697: s3:auth: ignore create_builtin_guests() failing without a valid
idmap configuration.
* BUG 13722: s3:auth_winbind: Ignore a missing winbindd as NT4 PDC/BDC
without trusts.
* BUG 13723: s3:auth_winbind: return NT_STATUS_NO_LOGON_SERVERS if winbindd
is not available.
* BUG 13752: s4:server: Add support for 'smbcontrol samba shutdown' and
'smbcontrol <pid> debug/debuglevel'.
o Noel Power <noel.power@suse.com>
* BUG 13616: Python: Ensure ldb.Dn can doesn't rencoded str with py2.
o Anoop C S <anoopcs@redhat.com>
* BUG 13330: vfs_glusterfs: Adapt to changes in libgfapi signatures.
* BUG 13774: s3-vfs: Use ENOATTR in errno comparison for getxattr.
o Jiří Šašek <jiri.sasek@oracle.com>
* BUG 13704: notifyd: Fix SIGBUS on sparc.
o Christof Schmitt <cs@samba.org>
* BUG 13787: waf: Check for libnscd.
o Andreas Schneider <asn@samba.org>
* BUG 13770: s3:vfs: Correctly check if OFD locks should be enabled or not.
o Martin Schwenke <martin@meltin.net>
* BUG 13717: lib/util: Count a trailing line that doesn't end in a newline.
* BUG 13800: Recovery lock bug fixes.
o Justin Stephenson <jstephen@redhat.com>
* BUG 13726: s3: net: Do not set NET_FLAGS_ANONYMOUS with -k.
* BUG 13727: s3:libsmb: Honor disable_netbios option in smbsock_connect_send.
o Ralph Wuerthner <ralph.wuerthner@de.ibm.com>
* BUG 13741: vfs_fileid: Fix get_connectpath_ino.
* BUG 13744: vfs_fileid: Fix fsname_norootdir algorithm.
#######################################
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.1 and newer" 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.9.4
December 20, 2018
......@@ -74,8 +215,8 @@ database (https://bugzilla.samba.org/).
======================================================================
Release notes for older releases follow:
----------------------------------------
----------------------------------------------------------------------
=============================
Release Notes for Samba 4.9.3
......
This diff is collapsed.
......@@ -11,7 +11,12 @@
# log level = NOTICE
[cluster]
# Shared recovery lock file to avoid split brain. No default.
# Do NOT run CTDB without a recovery lock file unless you know exactly
# what you are doing.
# recovery lock = /shared/recovery.lock
# Shared recovery lock file to avoid split brain. Daemon
# default is no recovery lock. Do NOT run CTDB without a
# recovery lock file unless you know exactly what you are
# doing.
#
# Please see the RECOVERY LOCK section in ctdb(7) for more
# details.
#
# recovery lock = !/bin/false RECOVERY LOCK NOT CONFIGURED
......@@ -2,12 +2,12 @@
.\" Title: ctdb-etcd
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 12/20/2018
.\" Date: 03/12/2019
.\" Manual: CTDB - clustered TDB database
.\" Source: ctdb
.\" Language: English
.\"
.TH "CTDB\-ETCD" "7" "12/20/2018" "ctdb" "CTDB \- clustered TDB database"
.TH "CTDB\-ETCD" "7" "03/12/2019" "ctdb" "CTDB \- clustered TDB database"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
......
......@@ -2,12 +2,12 @@
.\" Title: ctdb-script.options
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 12/20/2018
.\" Date: 03/12/2019
.\" Manual: CTDB - clustered TDB database
.\" Source: ctdb
.\" Language: English
.\"
.TH "CTDB\-SCRIPT\&.OPTIO" "5" "12/20/2018" "ctdb" "CTDB \- clustered TDB database"
.TH "CTDB\-SCRIPT\&.OPTIO" "5" "03/12/2019" "ctdb" "CTDB \- clustered TDB database"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
......
......@@ -2,12 +2,12 @@
.\" Title: ctdb-statistics
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 12/20/2018
.\" Date: 03/12/2019
.\" Manual: CTDB - clustered TDB database
.\" Source: ctdb
.\" Language: English
.\"
.TH "CTDB\-STATISTICS" "7" "12/20/2018" "ctdb" "CTDB \- clustered TDB database"
.TH "CTDB\-STATISTICS" "7" "03/12/2019" "ctdb" "CTDB \- clustered TDB database"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
......
......@@ -2,12 +2,12 @@
.\" Title: ctdb-tunables
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 12/20/2018
.\" Date: 03/12/2019
.\" Manual: CTDB - clustered TDB database
.\" Source: ctdb
.\" Language: English
.\"
.TH "CTDB\-TUNABLES" "7" "12/20/2018" "ctdb" "CTDB \- clustered TDB database"
.TH "CTDB\-TUNABLES" "7" "03/12/2019" "ctdb" "CTDB \- clustered TDB database"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
......
......@@ -2,12 +2,12 @@
.\" Title: ctdb
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 12/20/2018
.\" Date: 03/12/2019
.\" Manual: CTDB - clustered TDB database
.\" Source: ctdb
.\" Language: English
.\"
.TH "CTDB" "1" "12/20/2018" "ctdb" "CTDB \- clustered TDB database"
.TH "CTDB" "1" "03/12/2019" "ctdb" "CTDB \- clustered TDB database"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
......
......@@ -2,12 +2,12 @@
.\" Title: ctdb
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 12/20/2018
.\" Date: 03/12/2019
.\" Manual: CTDB - clustered TDB database
.\" Source: ctdb
.\" Language: English
.\"
.TH "CTDB" "7" "12/20/2018" "ctdb" "CTDB \- clustered TDB database"
.TH "CTDB" "7" "03/12/2019" "ctdb" "CTDB \- clustered TDB database"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
......
......@@ -2,12 +2,12 @@
.\" Title: ctdb.conf
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 12/20/2018
.\" Date: 03/12/2019
.\" Manual: CTDB - clustered TDB database
.\" Source: ctdb
.\" Language: English
.\"
.TH "CTDB\&.CONF" "5" "12/20/2018" "ctdb" "CTDB \- clustered TDB database"
.TH "CTDB\&.CONF" "5" "03/12/2019" "ctdb" "CTDB \- clustered TDB database"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
......
......@@ -2,12 +2,12 @@
.\" Title: ctdb.sysconfig
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 12/20/2018
.\" Date: 03/12/2019
.\" Manual: CTDB - clustered TDB database
.\" Source: ctdb
.\" Language: English
.\"
.TH "CTDB\&.SYSCONFIG" "5" "12/20/2018" "ctdb" "CTDB \- clustered TDB database"
.TH "CTDB\&.SYSCONFIG" "5" "03/12/2019" "ctdb" "CTDB \- clustered TDB database"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
......
......@@ -2,12 +2,12 @@
.\" Title: ctdb_diagnostics
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 12/20/2018
.\" Date: 03/12/2019
.\" Manual: CTDB - clustered TDB database
.\" Source: ctdb
.\" Language: English
.\"
.TH "CTDB_DIAGNOSTICS" "1" "12/20/2018" "ctdb" "CTDB \- clustered TDB database"
.TH "CTDB_DIAGNOSTICS" "1" "03/12/2019" "ctdb" "CTDB \- clustered TDB database"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
......
......@@ -2,12 +2,12 @@
.\" Title: Ceph RADOS Mutex
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 12/20/2018
.\" Date: 03/12/2019
.\" Manual: CTDB - clustered TDB database
.\" Source: ctdb
.\" Language: English
.\"
.TH "CEPH RADOS MUTEX" "7" "12/20/2018" "ctdb" "CTDB \- clustered TDB database"
.TH "CEPH RADOS MUTEX" "7" "03/12/2019" "ctdb" "CTDB \- clustered TDB database"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
......
......@@ -2,12 +2,12 @@
.\" Title: ctdbd
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 12/20/2018
.\" Date: 03/12/2019
.\" Manual: CTDB - clustered TDB database
.\" Source: ctdb
.\" Language: English
.\"
.TH "CTDBD" "1" "12/20/2018" "ctdb" "CTDB \- clustered TDB database"
.TH "CTDBD" "1" "03/12/2019" "ctdb" "CTDB \- clustered TDB database"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
......
......@@ -2,12 +2,12 @@
.\" Title: ctdbd_wrapper
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 12/20/2018
.\" Date: 03/12/2019
.\" Manual: CTDB - clustered TDB database
.\" Source: ctdb
.\" Language: English
.\"
.TH "CTDBD_WRAPPER" "1" "12/20/2018" "ctdb" "CTDB \- clustered TDB database"
.TH "CTDBD_WRAPPER" "1" "03/12/2019" "ctdb" "CTDB \- clustered TDB database"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
......
......@@ -2,12 +2,12 @@
.\" Title: ltdbtool
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 12/20/2018
.\" Date: 03/12/2019
.\" Manual: CTDB - clustered TDB database
.\" Source: ctdb
.\" Language: English
.\"
.TH "LTDBTOOL" "1" "12/20/2018" "ctdb" "CTDB \- clustered TDB database"
.TH "LTDBTOOL" "1" "03/12/2019" "ctdb" "CTDB \- clustered TDB database"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
......
......@@ -2,12 +2,12 @@
.\" Title: onnode
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 12/20/2018
.\" Date: 03/12/2019
.\" Manual: CTDB - clustered TDB database
.\" Source: ctdb
.\" Language: English
.\"
.TH "ONNODE" "1" "12/20/2018" "ctdb" "CTDB \- clustered TDB database"
.TH "ONNODE" "1" "03/12/2019" "ctdb" "CTDB \- clustered TDB database"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
......
......@@ -2,12 +2,12 @@
.\" Title: ping_pong
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 12/20/2018
.\" Date: 03/12/2019
.\" Manual: CTDB - clustered TDB database
.\" Source: ctdb
.\" Language: English
.\"
.TH "PING_PONG" "1" "12/20/2018" "ctdb" "CTDB \- clustered TDB database"
.TH "PING_PONG" "1" "03/12/2019" "ctdb" "CTDB \- clustered TDB database"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
......
......@@ -118,72 +118,101 @@ static void cluster_mutex_handler(struct tevent_context *ev,
static char cluster_mutex_helper[PATH_MAX+1] = "";
static bool cluster_mutex_helper_args(TALLOC_CTX *mem_ctx,
const char *argstring, char ***argv)
static bool cluster_mutex_helper_args_file(TALLOC_CTX *mem_ctx,
const char *argstring,
char ***argv)
{
int nargs, i, ret, n;
bool is_command = false;
bool ok;
char **args = NULL;
char *strv = NULL;
char *t = NULL;
if (argstring != NULL && argstring[0] == '!') {
/* This is actually a full command */
is_command = true;
t = discard_const(&argstring[1]);
} else {
is_command = false;
t = discard_const(argstring);
ok = ctdb_set_helper("cluster mutex helper",
cluster_mutex_helper,
sizeof(cluster_mutex_helper),
"CTDB_CLUSTER_MUTEX_HELPER",
CTDB_HELPER_BINDIR,
"ctdb_mutex_fcntl_helper");
if (! ok) {
DBG_ERR("ctdb exiting with error: "
"Unable to set cluster mutex helper\n");
exit(1);
}
ret = strv_split(mem_ctx, &strv, t, " \t");
if (ret != 0) {
DEBUG(DEBUG_ERR,
("Unable to parse mutex helper string \"%s\" (%s)\n",
argstring, strerror(ret)));
/* Array includes default helper, file and NULL */
args = talloc_array(mem_ctx, char *, 3);
if (args == NULL) {
DBG_ERR("Memory allocation error\n");
return false;
}
n = strv_count(strv);
args = talloc_array(mem_ctx, char *, n + (is_command ? 1 : 2));
args[0] = cluster_mutex_helper;
if (args == NULL) {
DEBUG(DEBUG_ERR,(__location__ " out of memory\n"));
args[1] = talloc_strdup(args, argstring);
if (args[1] == NULL) {
DBG_ERR("Memory allocation error\n");
return false;
}
nargs = 0;
if (! is_command) {
if (!ctdb_set_helper("cluster mutex helper",
cluster_mutex_helper,
sizeof(cluster_mutex_helper),
"CTDB_CLUSTER_MUTEX_HELPER",
CTDB_HELPER_BINDIR,
"ctdb_mutex_fcntl_helper")) {
DEBUG(DEBUG_ERR,("ctdb exiting with error: %s\n",
__location__
" Unable to set cluster mutex helper\n"));
exit(1);
}
args[2] = NULL;
*argv = args;
return true;
}
args[nargs++] = cluster_mutex_helper;
static bool cluster_mutex_helper_args_cmd(TALLOC_CTX *mem_ctx,
const char *argstring,
char ***argv)
{
int i, ret, n;
char **args = NULL;
char *strv = NULL;
char *t = NULL;
ret = strv_split(mem_ctx, &strv, argstring, " \t");
if (ret != 0) {
D_ERR("Unable to parse mutex helper command \"%s\" (%s)\n",
argstring,
strerror(ret));
return false;
}
n = strv_count(strv);
/* Extra slot for NULL */
args = talloc_array(mem_ctx, char *, n + 1);
if (args == NULL) {
DBG_ERR("Memory allocation error\n");
return false;
}
talloc_steal(args, strv);
t = NULL;
for (i = 0; i < n; i++) {
/* Don't copy, just keep cmd_args around */
for (i = 0 ; i < n; i++) {
t = strv_next(strv, t);
args[nargs++] = t;
args[i] = t;
}
/* Make sure last argument is NULL */
args[nargs] = NULL;
args[n] = NULL;
*argv = args;
return true;
}
static bool cluster_mutex_helper_args(TALLOC_CTX *mem_ctx,
const char *argstring,
char ***argv)
{
bool ok;
if (argstring != NULL && argstring[0] == '!') {
ok = cluster_mutex_helper_args_cmd(mem_ctx, &argstring[1], argv);
} else {
ok = cluster_mutex_helper_args_file(mem_ctx, argstring, argv);
}
return ok;
}
struct ctdb_cluster_mutex_handle *
ctdb_cluster_mutex(TALLOC_CTX *mem_ctx,
struct ctdb_context *ctdb,
......
......@@ -888,6 +888,7 @@ struct ctdb_recovery_lock_handle {
bool locked;
double latency;
struct ctdb_cluster_mutex_handle *h;
struct ctdb_recoverd *rec;
};
static void take_reclock_handler(char status,
......@@ -897,22 +898,45 @@ static void take_reclock_handler(char status,
struct ctdb_recovery_lock_handle *s =
(struct ctdb_recovery_lock_handle *) private_data;
s->locked = (status == '0') ;
/*
* If unsuccessful then ensure the process has exited and that
* the file descriptor event handler has been cancelled
*/
if (! s->locked) {
TALLOC_FREE(s->h);
}
switch (status) {
case '0':
s->latency = latency;
break;
case '1':
DEBUG(DEBUG_ERR,
("Unable to take recovery lock - contention\n"));
D_ERR("Unable to take recovery lock - contention\n");
break;
case '2':
D_ERR("Unable to take recovery lock - timeout\n");
break;
default:
DEBUG(DEBUG_ERR, ("ERROR: when taking recovery lock\n"));
D_ERR("Unable to take recover lock - unknown error\n");
{
struct ctdb_recoverd *rec = s->rec;
struct ctdb_context *ctdb = rec->ctdb;
uint32_t pnn = ctdb_get_pnn(ctdb);
D_ERR("Banning this node\n");
ctdb_ban_node(rec,
pnn,
ctdb->tunable.recovery_ban_period);
}
}
s->done = true;
s->locked = (status == '0') ;
}
static bool ctdb_recovery_lock(struct ctdb_recoverd *rec);
......@@ -943,10 +967,12 @@ static bool ctdb_recovery_lock(struct ctdb_recoverd *rec)
return false;
};
s->rec = rec;
h = ctdb_cluster_mutex(s,
ctdb,
ctdb->recovery_lock,
0,
120,
take_reclock_handler,
s,
lost_reclock_handler,
......
......@@ -1233,6 +1233,11 @@ static void print_statistics_machine(struct ctdb_statistics *s,
printf("%.6f%s", LATENCY_AVG(s->call_latency), options.sep);
printf("%.6f%s", s->call_latency.max, options.sep);
printf("%u%s", s->locks.latency.num, options.sep);
printf("%.6f%s", s->locks.latency.min, options.sep);
printf("%.6f%s", LATENCY_AVG(s->locks.latency), options.sep);
printf("%.6f%s", s->locks.latency.max, options.sep);
printf("%d%s", s->childwrite_latency.num, options.sep);
printf("%.6f%s", s->childwrite_latency.min, options.sep);
printf("%.6f%s", LATENCY_AVG(s->childwrite_latency), options.sep);
......
......@@ -166,7 +166,7 @@
<manvolnum>1</manvolnum></citerefentry></term>
<listitem><para><command>smbcontrol</command> is a utility
that can change the behaviour of running
<command>smbd</command>, <command>nmbd</command> and
<command>samba</command>, <command>smbd</command>, <command>nmbd</command> and
<command>winbindd</command> daemons.
</para></listitem>
</varlistentry>
......
......@@ -101,14 +101,39 @@
</varlistentry>
<varlistentry>
<term>-M model</term>
<term>-M|--model</term>