[SCM] Samba Shared Repository - branch v4-4-stable updated
Karolin Seeger
kseeger at samba.org
Tue Feb 23 11:41:42 UTC 2016
The branch, v4-4-stable has been updated
via ff77a11 VERSION: Disable git snapshots for the Samba 4.4.0rc3 release.
via 84348b2 WHATSNEW: Add release notes for Samba 4.4.0rc3.
via a2aea37 Real memeory leak(buildup) issue in loadparm.
via 956289e libcli: Fix debug message, print sid string for new_ace trustee.
via d605d6d docs: Add manpage for cifsdd
via db13d6a s4-client: Fix cifsdd arg parsing for skip
via fce2c82 docs: Add example for domain logins to smbspool man page.
via a5f6056 script/release.sh: generate announce.${tagname}.patch.txt in announcement_samba_rc()
via 3e92dce script/release.sh: improve error messages if the tag verification fails
via 1a70742 s3-waf: Install smbspool_krb5_wrapper in LIBEXECDIR
via 389c89c ctdb: Install helpers under libexecdir
via 3a4be07 ctdb-scripts: Drop use of "smbcontrol winbindd ip-dropped ..."
via 4f637ba lib/tsocket: workaround sockets not supporting FIONREAD
via 6774af1 param: Fix str_list_v3 to accept ; again
via b65697f lib:socket: fix CID 1350009 - illegal memory accesses (BUFFER_SIZE_WARNING)
via 08b1ff8 s3:utils/smbget set default blocksize
via 5ca7624 s3:utils/smbget add a error message on allocation error
via 558663a lib/socket: Fix improper use of default interface speed
via 903b13e loadparm: Fix memory leak issue.
via 2c91eb7 Revert "ctdb-daemon: Check packet generation against database generation"
via f3bca17 s3: smbd: posix_acls: Fix check for setting u:g:o entry on a filesystem with no ACL support.
via 0221677 s3:smbd:open: Skip redundant call to file_set_dosmode when creating a new file.
via c358f3c smbd: Fix CID 1351216 Dereference null return value
via ed8a55f smbd: Fix CID 1351215 Improper use of negative value
via 6c2a3e2 lib:socket: fix CID 1350010 - integer OVERFLOW_BEFORE_WIDEN
via 0a0276b VERSION: Bump version up to 4.4.0rc3...
from 186206f VERSION: Disable git snapshots for the Samba 4.4.0rc2 release.
https://git.samba.org/?p=samba.git;a=shortlog;h=v4-4-stable
- Log -----------------------------------------------------------------
-----------------------------------------------------------------------
Summary of changes:
VERSION | 2 +-
WHATSNEW.txt | 52 +++++++++++++++-
ctdb/config/events.d/11.natgw | 6 +-
ctdb/config/events.d/49.winbind | 7 ---
ctdb/config/functions | 4 ++
ctdb/config/statd-callout | 9 +--
ctdb/packaging/RPM/ctdb.spec.in | 11 ++--
ctdb/server/ctdb_call.c | 59 ++++--------------
ctdb/server/ctdb_server.c | 21 +++++--
ctdb/tests/eventscripts/scripts/local.sh | 1 +
ctdb/wscript | 19 +++---
docs-xml/manpages/cifsdd.8.xml | 101 +++++++++++++++++++++++++++++++
docs-xml/manpages/smbspool.8.xml | 5 ++
docs-xml/wscript_build | 1 +
lib/socket/interfaces.c | 9 ++-
lib/tsocket/tsocket_bsd.c | 62 ++++++++++++++++++-
lib/util/util_strlist.c | 18 +++++-
libcli/security/secdesc.c | 2 +-
script/release.sh | 44 +++++++++++++-
source3/param/loadparm.c | 40 ++++++++----
source3/smbd/open.c | 4 +-
source3/smbd/posix_acls.c | 39 +++++++++++-
source3/smbd/smbXsrv_client.c | 15 ++++-
source3/utils/smbget.c | 4 +-
source3/wscript_build | 1 +
source4/client/cifsdd.c | 2 +-
26 files changed, 426 insertions(+), 112 deletions(-)
create mode 100644 docs-xml/manpages/cifsdd.8.xml
Changeset truncated at 500 lines:
diff --git a/VERSION b/VERSION
index f254fd5..4cd96cc 100644
--- a/VERSION
+++ b/VERSION
@@ -87,7 +87,7 @@ SAMBA_VERSION_PRE_RELEASE=
# e.g. SAMBA_VERSION_RC_RELEASE=1 #
# -> "3.0.0rc1" #
########################################################
-SAMBA_VERSION_RC_RELEASE=2
+SAMBA_VERSION_RC_RELEASE=3
########################################################
# To mark SVN snapshots this should be set to 'yes' #
diff --git a/WHATSNEW.txt b/WHATSNEW.txt
index 3805f5f..721eb9c 100644
--- a/WHATSNEW.txt
+++ b/WHATSNEW.txt
@@ -1,7 +1,7 @@
Release Announcements
=====================
-This is the second release candidate of Samba 4.4. This is *not*
+This is the third release candidate of Samba 4.4. This is *not*
intended for production environments and is designed for testing
purposes only. Please report any defects via the Samba bug reporting
system at https://bugzilla.samba.org/.
@@ -235,6 +235,54 @@ KNOWN ISSUES
Currently none.
+CHANGES SINCE 4.4.0rc2
+======================
+
+o Michael Adam <obnox at samba.org>
+ * BUG 11723: lib:socket: Fix CID 1350010: Integer OVERFLOW_BEFORE_WIDEN.
+ * BUG 11735: lib:socket: Fix CID 1350009: Fix illegal memory accesses
+ (BUFFER_SIZE_WARNING).
+
+o Jeremy Allison <jra at samba.org>
+ * BUG 10489: s3: smbd: posix_acls: Fix check for setting u:g:o entry on a
+ filesystem with no ACL support.
+
+o Christian Ambach <ambi at samba.org>
+ * BUG 11700: s3:utils/smbget: Set default blocksize.
+
+o Anoop C S <anoopcs at redhat.com>
+ * BUG 11734: lib/socket: Fix improper use of default interface speed.
+
+o Ralph Boehme <slow at samba.org>
+ * BUG 11714: lib/tsocket: Work around sockets not supporting FIONREAD.
+
+o Volker Lendecke <vl at samba.org>
+ * BUG 11724: smbd: Fix CID 1351215 Improper use of negative value.
+ * BUG 11725: smbd: Fix CID 1351216 Dereference null return value.
+ * BUG 11732: param: Fix str_list_v3 to accept ; again.
+
+o Noel Power <noel.power at suse.com>
+ * BUG 11738: libcli: Fix debug message, print sid string for new_ace trustee.
+
+o Jose A. Rivera <jarrpa at samba.org>
+ * BUG 11727: s3:smbd:open: Skip redundant call to file_set_dosmode when
+ creating a new file.
+
+o Andreas Schneider <asn at samba.org>
+ * BUG 11730: docs: Add manpage for cifsdd.
+ * BUG 11739: Fix installation path of Samba helper binaries.
+
+o Berend De Schouwer <berend.de.schouwer at gmail.com>
+ * BUG 11643: docs: Add example for domain logins to smbspool man page.
+
+o Martin Schwenke <martin at meltin.net>
+ * BUG 11719: ctdb-scripts: Drop use of "smbcontrol winbindd ip-dropped ..."
+
+o Hemanth Thummala <hemanth.thummala at nutanix.com>
+ * BUG 11708: loadparm: Fix memory leak issue.
+ * BUG 11740: Fix memory leak in loadparm.
+
+
CHANGES SINCE 4.4.0rc1
======================
@@ -245,7 +293,7 @@ o Jeremy Allison <jra at samba.org>
* BUG 11703: s3: smbd: Fix timestamp rounding inside SMB2 create.
o Christian Ambach <ambi at samba.org>
- * BUG 11700: Streamline 'smbget' options with the rest of the Samba utils.
+ * BUG 11700: Streamline 'smbget' options with the rest of the Samba utils.
o Günther Deschner <gd at samba.org>
* BUG 11696: ctdb: Do not provide a useless pkgconfig file for ctdb.
diff --git a/ctdb/config/events.d/11.natgw b/ctdb/config/events.d/11.natgw
index 2b30eeb..25cf27f 100755
--- a/ctdb/config/events.d/11.natgw
+++ b/ctdb/config/events.d/11.natgw
@@ -164,15 +164,11 @@ natgw_set_slave ()
_net="${_net_gw%@*}"
ip route add "$_net" via "$_natgwip" metric 10
done
-
- # Make sure winbindd does not stay bound to this address if we are
- # no longer NATGW master
- smbcontrol winbindd ip-dropped $CTDB_NATGW_PUBLIC_IP >/dev/null 2>&1
}
natgw_ensure_master ()
{
- set -- $(ctdb_natgw master)
+ set -- $("${CTDB_HELPER_BINDIR}/ctdb_natgw" master)
natgwmaster="${1:--1}" # Default is -1 if natgwlist fails
natgwip="$2"
diff --git a/ctdb/config/events.d/49.winbind b/ctdb/config/events.d/49.winbind
index dee3c90..a1ea787 100755
--- a/ctdb/config/events.d/49.winbind
+++ b/ctdb/config/events.d/49.winbind
@@ -55,13 +55,6 @@ case "$1" in
ctdb_check_command wbinfo -p
;;
- takeip|releaseip)
- iface=$2
- ip=$3
- maskbits=$4
-
- smbcontrol winbindd ip-dropped $ip >/dev/null 2>/dev/null
- ;;
*)
ctdb_standard_event_handler "$@"
;;
diff --git a/ctdb/config/functions b/ctdb/config/functions
index b714c63..eab5563 100755
--- a/ctdb/config/functions
+++ b/ctdb/config/functions
@@ -20,6 +20,10 @@ if [ -z "$CTDB_SYS_ETCDIR" ] ; then
CTDB_SYS_ETCDIR="/etc"
fi
+if [ -z "$CTDB_HELPER_BINDIR" ] ; then
+ CTDB_HELPER_BINDIR="/usr/local/libexec/ctdb"
+fi
+
#######################################
# pull in a system config file, if any
diff --git a/ctdb/config/statd-callout b/ctdb/config/statd-callout
index f56e50f..a923d8a 100755
--- a/ctdb/config/statd-callout
+++ b/ctdb/config/statd-callout
@@ -168,6 +168,7 @@ case "$1" in
statd_state=$(ctdb catdb ctdb.tdb | sed -n "$sed_expr" | sort)
[ -n "$statd_state" ] || exit 0
+ smnotify="${CTDB_HELPER_BINDIR}/smnotify"
prev=""
echo "$statd_state" | {
# This all needs to be in the same command group at the
@@ -186,12 +187,12 @@ case "$1" in
# Reset stateval for each serverip
[ "$sip" = "$prev" ] || stateval="$state_even"
# Send notifies for server shutdown
- smnotify --client=$cip --ip=$sip --server=$sip --stateval=$stateval
- smnotify --client=$cip --ip=$sip --server=$NFS_HOSTNAME --stateval=$stateval
+ "$smnotify" --client=$cip --ip=$sip --server=$sip --stateval=$stateval
+ "$smnotify" --client=$cip --ip=$sip --server=$NFS_HOSTNAME --stateval=$stateval
# Send notifies for server startup
stateval=$(($stateval + 1))
- smnotify --client=$cip --ip=$sip --server=$sip --stateval=$stateval
- smnotify --client=$cip --ip=$sip --server=$NFS_HOSTNAME --stateval=$stateval
+ "$smnotify" --client=$cip --ip=$sip --server=$sip --stateval=$stateval
+ "$smnotify" --client=$cip --ip=$sip --server=$NFS_HOSTNAME --stateval=$stateval
done
echo "$items" | ctdb ptrans "ctdb.tdb"
diff --git a/ctdb/packaging/RPM/ctdb.spec.in b/ctdb/packaging/RPM/ctdb.spec.in
index 420ec52..1547dfb 100644
--- a/ctdb/packaging/RPM/ctdb.spec.in
+++ b/ctdb/packaging/RPM/ctdb.spec.in
@@ -195,15 +195,16 @@ rm -rf $RPM_BUILD_ROOT
%{_sbindir}/ctdbd
%{_sbindir}/ctdbd_wrapper
%{_bindir}/ctdb
-%{_bindir}/ctdb_lock_helper
-%{_bindir}/ctdb_event_helper
-%{_bindir}/ctdb_recovery_helper
-%{_bindir}/smnotify
%{_bindir}/ping_pong
%{_bindir}/ltdbtool
%{_bindir}/ctdb_diagnostics
%{_bindir}/onnode
-%{_bindir}/ctdb_natgw
+%dir %{_libexecdir}/ctdb
+%{_libexecdir}/ctdb/ctdb_lock_helper
+%{_libexecdir}/ctdb/ctdb_event_helper
+%{_libexecdir}/ctdb/ctdb_recovery_helper
+%{_libexecdir}/ctdb/ctdb_natgw
+%{_libexecdir}/ctdb/smnotify
%dir %{_libdir}
%{_libdir}/ctdb/lib*
%{_libdir}/libtevent-unix-util.so.0*
diff --git a/ctdb/server/ctdb_call.c b/ctdb/server/ctdb_call.c
index db9fb6a..b61754e 100644
--- a/ctdb/server/ctdb_call.c
+++ b/ctdb/server/ctdb_call.c
@@ -586,23 +586,6 @@ void ctdb_request_dmaster(struct ctdb_context *ctdb, struct ctdb_req_header *hdr
size_t len;
int ret;
- ctdb_db = find_ctdb_db(ctdb, c->db_id);
- if (!ctdb_db) {
- ctdb_send_error(ctdb, hdr, -1,
- "Unknown database in request. db_id==0x%08x",
- c->db_id);
- return;
- }
-
- if (hdr->generation != ctdb_db->generation) {
- DEBUG(DEBUG_DEBUG,
- ("ctdb operation %u request %u from node %u to %u had an"
- " invalid generation:%u while our generation is:%u\n",
- hdr->operation, hdr->reqid, hdr->srcnode, hdr->destnode,
- hdr->generation, ctdb_db->generation));
- return;
- }
-
key.dptr = c->data;
key.dsize = c->keylen;
data.dptr = c->data + c->keylen;
@@ -614,6 +597,14 @@ void ctdb_request_dmaster(struct ctdb_context *ctdb, struct ctdb_req_header *hdr
sizeof(record_flags));
}
+ ctdb_db = find_ctdb_db(ctdb, c->db_id);
+ if (!ctdb_db) {
+ ctdb_send_error(ctdb, hdr, -1,
+ "Unknown database in request. db_id==0x%08x",
+ c->db_id);
+ return;
+ }
+
dmaster_defer_setup(ctdb_db, hdr, key);
/* fetch the current record */
@@ -642,7 +633,7 @@ void ctdb_request_dmaster(struct ctdb_context *ctdb, struct ctdb_req_header *hdr
if (header.dmaster != hdr->srcnode) {
DEBUG(DEBUG_ALERT,("pnn %u dmaster request for new-dmaster %u from non-master %u real-dmaster=%u key %08x dbid 0x%08x gen=%u curgen=%u c->rsn=%llu header.rsn=%llu reqid=%u keyval=0x%08x\n",
ctdb->pnn, c->dmaster, hdr->srcnode, header.dmaster, ctdb_hash(&key),
- ctdb_db->db_id, hdr->generation, ctdb_db->generation,
+ ctdb_db->db_id, hdr->generation, ctdb->vnn_map->generation,
(unsigned long long)c->rsn, (unsigned long long)header.rsn, c->hdr.reqid,
(key.dsize >= 4)?(*(uint32_t *)key.dptr):0));
if (header.rsn != 0 || header.dmaster != ctdb->pnn) {
@@ -657,7 +648,7 @@ void ctdb_request_dmaster(struct ctdb_context *ctdb, struct ctdb_req_header *hdr
if (header.rsn > c->rsn) {
DEBUG(DEBUG_ALERT,("pnn %u dmaster request with older RSN new-dmaster %u from %u real-dmaster=%u key %08x dbid 0x%08x gen=%u curgen=%u c->rsn=%llu header.rsn=%llu reqid=%u\n",
ctdb->pnn, c->dmaster, hdr->srcnode, header.dmaster, ctdb_hash(&key),
- ctdb_db->db_id, hdr->generation, ctdb_db->generation,
+ ctdb_db->db_id, hdr->generation, ctdb->vnn_map->generation,
(unsigned long long)c->rsn, (unsigned long long)header.rsn, c->hdr.reqid));
}
@@ -902,6 +893,7 @@ void ctdb_request_call(struct ctdb_context *ctdb, struct ctdb_req_header *hdr)
return;
}
+
ctdb_db = find_ctdb_db(ctdb, c->db_id);
if (!ctdb_db) {
ctdb_send_error(ctdb, hdr, -1,
@@ -910,15 +902,6 @@ void ctdb_request_call(struct ctdb_context *ctdb, struct ctdb_req_header *hdr)
return;
}
- if (hdr->generation != ctdb_db->generation) {
- DEBUG(DEBUG_DEBUG,
- ("ctdb operation %u request %u from node %u to %u had an"
- " invalid generation:%u while our generation is:%u\n",
- hdr->operation, hdr->reqid, hdr->srcnode, hdr->destnode,
- hdr->generation, ctdb_db->generation));
- return;
- }
-
call = talloc(hdr, struct ctdb_call);
CTDB_NO_MEMORY_FATAL(ctdb, call);
@@ -1193,15 +1176,6 @@ void ctdb_reply_call(struct ctdb_context *ctdb, struct ctdb_req_header *hdr)
return;
}
- if (hdr->generation != state->generation) {
- DEBUG(DEBUG_DEBUG,
- ("ctdb operation %u request %u from node %u to %u had an"
- " invalid generation:%u while our generation is:%u\n",
- hdr->operation, hdr->reqid, hdr->srcnode, hdr->destnode,
- hdr->generation, state->generation));
- return;
- }
-
/* read only delegation processing */
/* If we got a FETCH_WITH_HEADER we should check if this is a ro
@@ -1296,16 +1270,7 @@ void ctdb_reply_dmaster(struct ctdb_context *ctdb, struct ctdb_req_header *hdr)
DEBUG(DEBUG_ERR,("Unknown db_id 0x%x in ctdb_reply_dmaster\n", c->db_id));
return;
}
-
- if (hdr->generation != ctdb_db->generation) {
- DEBUG(DEBUG_DEBUG,
- ("ctdb operation %u request %u from node %u to %u had an"
- " invalid generation:%u while our generation is:%u\n",
- hdr->operation, hdr->reqid, hdr->srcnode, hdr->destnode,
- hdr->generation, ctdb_db->generation));
- return;
- }
-
+
key.dptr = c->data;
key.dsize = c->keylen;
data.dptr = &c->data[key.dsize];
diff --git a/ctdb/server/ctdb_server.c b/ctdb/server/ctdb_server.c
index b30ecaa..7d42c38 100644
--- a/ctdb/server/ctdb_server.c
+++ b/ctdb/server/ctdb_server.c
@@ -225,11 +225,22 @@ void ctdb_input_pkt(struct ctdb_context *ctdb, struct ctdb_req_header *hdr)
goto done;
}
- /* Push the check for generation in the handlers for these
- * operations. Check database generation instead of global
- * generation. Since the database context is not available
- * here, push the check in the operations.
- */
+ /* for ctdb_call inter-node operations verify that the
+ remote node that sent us the call is running in the
+ same generation instance as this node
+ */
+ if (ctdb->vnn_map->generation != hdr->generation) {
+ DEBUG(DEBUG_DEBUG,(__location__ " ctdb operation %u"
+ " request %u"
+ " length %u from node %u to %u had an"
+ " invalid generation id:%u while our"
+ " generation id is:%u\n",
+ hdr->operation, hdr->reqid,
+ hdr->length,
+ hdr->srcnode, hdr->destnode,
+ hdr->generation, ctdb->vnn_map->generation));
+ goto done;
+ }
}
switch (hdr->operation) {
diff --git a/ctdb/tests/eventscripts/scripts/local.sh b/ctdb/tests/eventscripts/scripts/local.sh
index 82ebc09..fcb7519 100644
--- a/ctdb/tests/eventscripts/scripts/local.sh
+++ b/ctdb/tests/eventscripts/scripts/local.sh
@@ -13,6 +13,7 @@ if [ -d "${TEST_SUBDIR}/stubs" ] ; then
/*) : ;;
*) EVENTSCRIPTS_PATH="${PWD}/${EVENTSCRIPTS_PATH}" ;;
esac
+ export CTDB_HELPER_BINDIR="$EVENTSCRIPTS_PATH"
fi
export EVENTSCRIPTS_PATH
diff --git a/ctdb/wscript b/ctdb/wscript
index e1fad17..5739269 100755
--- a/ctdb/wscript
+++ b/ctdb/wscript
@@ -181,6 +181,7 @@ def configure(conf):
conf.env.CTDB_ETCDIR = os.path.join(conf.env.SYSCONFDIR, 'ctdb')
conf.env.CTDB_VARDIR = os.path.join(conf.env.LOCALSTATEDIR, 'lib/ctdb')
conf.env.CTDB_RUNDIR = os.path.join(conf.env.LOCALSTATEDIR, 'run/ctdb')
+ conf.env.CTDB_HELPER_BINDIR = os.path.join(conf.env.LIBEXECDIR, 'ctdb')
if Options.options.ctdb_logdir:
conf.env.CTDB_LOGDIR = Options.options.ctdb_logdir
@@ -199,7 +200,7 @@ def configure(conf):
-DCTDB_ETCDIR=\"%s\"
-DCTDB_VARDIR=\"%s\"
-DCTDB_RUNDIR=\"%s\"''' % (
- conf.env.CTDB_BINDIR,
+ conf.env.CTDB_HELPER_BINDIR,
conf.env.CTDB_LOGDIR,
conf.env.CTDB_ETCDIR,
conf.env.CTDB_VARDIR,
@@ -432,19 +433,19 @@ def build(bld):
source='server/ctdb_lock_helper.c',
deps='samba-util ctdb-system talloc tdb',
includes='include',
- install_path='${BINDIR}')
+ install_path='${CTDB_HELPER_BINDIR}')
bld.SAMBA_BINARY('ctdb_event_helper',
source='server/ctdb_event_helper.c',
includes='include',
deps='samba-util ctdb-system replace tdb',
- install_path='${BINDIR}')
+ install_path='${CTDB_HELPER_BINDIR}')
bld.SAMBA_BINARY('ctdb_recovery_helper',
source='server/ctdb_recovery_helper.c',
deps='''ctdb-client2 ctdb-protocol ctdb-util
samba-util replace tdb''',
- install_path='${BINDIR}')
+ install_path='${CTDB_HELPER_BINDIR}')
bld.SAMBA_GENERATOR('ctdb-smnotify-h',
source='utils/smnotify/smnotify.x',
@@ -468,7 +469,7 @@ def build(bld):
'smnotify.c gen_smnotify.c gen_xdr.c'),
deps='ctdb-smnotify-h ctdb-smnotify-c ctdb-smnotify-x popt',
includes='utils utils/smnotify',
- install_path='${BINDIR}')
+ install_path='${CTDB_HELPER_BINDIR}')
bld.SAMBA_BINARY('ping_pong',
source='utils/ping_pong/ping_pong.c',
@@ -500,8 +501,10 @@ def build(bld):
sed_expr3 = 's|/usr/local/var/log|%s|g' % (bld.env.CTDB_LOGDIR)
sed_expr4 = 's|/usr/local/var/run/ctdb|%s|g' % (bld.env.CTDB_RUNDIR)
sed_expr5 = 's|/usr/local/sbin|%s|g' % (bld.env.SBINDIR)
- sed_cmdline = '-e "%s" -e "%s" -e "%s" -e "%s" -e "%s"' % \
- (sed_expr1, sed_expr2, sed_expr3, sed_expr4, sed_expr5)
+ sed_expr6 = 's|/usr/local/libexec/ctdb|%s|g' % (bld.env.CTDB_HELPER_BINDIR)
+ sed_cmdline = '-e "%s" -e "%s" -e "%s" -e "%s" -e "%s" -e "%s"' % \
+ (sed_expr1, sed_expr2, sed_expr3, sed_expr4, sed_expr5,
+ sed_expr6)
for f in manpages:
x = '%s.xml' % (f)
@@ -540,7 +543,7 @@ def build(bld):
source='tools/ctdb_natgw',
target='ctdb_natgw',
rule='sed %s ${SRC} > ${TGT}' % (sed_cmdline))
- bld.INSTALL_FILES('${BINDIR}', 'ctdb_natgw',
+ bld.INSTALL_FILES('${CTDB_HELPER_BINDIR}', 'ctdb_natgw',
destname='ctdb_natgw', chmod=0755)
bld.SAMBA_GENERATOR('ctdbd-wrapper',
diff --git a/docs-xml/manpages/cifsdd.8.xml b/docs-xml/manpages/cifsdd.8.xml
new file mode 100644
index 0000000..572ed7b
--- /dev/null
+++ b/docs-xml/manpages/cifsdd.8.xml
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE refentry PUBLIC "-//Samba-Team//DTD DocBook V4.2-Based Variant V1.0//EN" "http://www.samba.org/samba/DTD/samba-doc">
+<refentry id="smbspool.8">
+
+<refmeta>
+ <refentrytitle>cifsdd</refentrytitle>
+ <manvolnum>8</manvolnum>
+ <refmiscinfo class="source">Samba</refmiscinfo>
+ <refmiscinfo class="manual">System Administration tools</refmiscinfo>
+ <refmiscinfo class="version">4.4</refmiscinfo>
+</refmeta>
+
+
+<refnamediv>
+ <refname>cifsdd</refname>
+ <refpurpose>convert and copy a file over SMB</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+ <cmdsynopsis>
+ <command>cifsdd</command>
+ <arg choice="opt">OPERAND</arg>...
+ </cmdsynopsis>
+ <cmdsynopsis>
+ <command>cifsdd</command>
+ <arg choice="plain">OPTION</arg>
+ </cmdsynopsis>
+</refsynopsisdiv>
+
+<refsect1>
+ <title>DESCRIPTION</title>
+
+ <para>This tool is part of the <citerefentry><refentrytitle>samba</refentrytitle>
+ <manvolnum>7</manvolnum></citerefentry> suite.</para>
+
+ <para>Copy a file, converting and formatting according to the operands.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>bs=BYTES</term>
+ <listitem><para>read and write up to BYTES bytes at a time (default: 4096)</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>ibs=BYTES</term>
+ <listitem><para>read up to BYTES bytes at a time (default: 4096)</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>obs=BYTES</term>
+ <listitem><para>write BYTES bytes at a time (default: 4096)</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>if=FILE</term>
+ <listitem><para>read from FILE instead of stdin</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>of=FILE</term>
--
Samba Shared Repository
More information about the samba-cvs
mailing list