[SCM] Samba Shared Repository - branch v4-4-test updated
Karolin Seeger
kseeger at samba.org
Wed Feb 3 14:09:07 UTC 2016
The branch, v4-4-test has been updated
via f2dc71c s3: smbd: Fix timestamp rounding inside SMB2 create.
via 9eed186 WHATSNEW: update with latest parameter updates for smbget
via 2978226 s3-utils/smbget: Update manpages for parameter changes
via a7046bc s3-utils/smbget: Fix user-/name password reading from rcfile
via 9d4cbe6 s3-utils/smbget: Fix reading the rcfile
via 1ebeb06 s3-utils/smbget: Fix option parsing and apply samba defaults
via 2aadb75 selftest: fix test_dfree_quota.sh
via 3029dc0 ctdb: do not provide a useless pkgconfig file for ctdb.
via 7da9c65 smbd: show correct disk size for different quota and dfree block sizes
from 1133650 VERSION: Bump version up to 4.4.0rc2...
https://git.samba.org/?p=samba.git;a=shortlog;h=v4-4-test
- Log -----------------------------------------------------------------
commit f2dc71c7853a6ff87763869d4b70c423e2b909a0
Author: Jeremy Allison <jra at samba.org>
Date: Thu Jan 28 16:35:13 2016 -0800
s3: smbd: Fix timestamp rounding inside SMB2 create.
Setting "dos filetime resolution = yes" should round
to 2 second increments. Fix missing path inside smbd.
Fix confirmed by reporter Hubert Gilch <hg at sepag.de>.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=11703
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Volker Lendecke <vl at samba.org>
Autobuild-User(master): Volker Lendecke <vl at samba.org>
Autobuild-Date(master): Fri Jan 29 10:41:01 CET 2016 on sn-devel-144
(cherry picked from commit 8024f532e6bcb6cbd8179817fafdd0f12929d629)
Autobuild-User(v4-4-test): Karolin Seeger <kseeger at samba.org>
Autobuild-Date(v4-4-test): Wed Feb 3 15:08:20 CET 2016 on sn-devel-144
commit 9eed1866217447fa07164a53bd099c0c06c0dc9b
Author: Christian Ambach <ambi at samba.org>
Date: Wed Jan 27 22:59:25 2016 +0100
WHATSNEW: update with latest parameter updates for smbget
BUG: https://bugzilla.samba.org/show_bug.cgi?id=11700
Signed-off-by: Christian Ambach <ambi at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
Autobuild-User(master): Andreas Schneider <asn at cryptomilk.org>
Autobuild-Date(master): Thu Jan 28 13:07:34 CET 2016 on sn-devel-144
(cherry picked from commit 9b5198f55234d55c24d265adf072932cfe086f63)
commit 297822600700a9cd2f33c2c4a819bab857953838
Author: Christian Ambach <ambi at samba.org>
Date: Wed Jan 27 22:37:36 2016 +0100
s3-utils/smbget: Update manpages for parameter changes
BUG: https://bugzilla.samba.org/show_bug.cgi?id=11700
Signed-off-by: Christian Ambach <ambi at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
(cherry picked from commit fbdde9c4651146412c61f03ce916032497f7a546)
commit a7046bcf122db4a7b544e614236015c1c27b1e16
Author: Christian Ambach <ambi at samba.org>
Date: Wed Jan 27 22:00:31 2016 +0100
s3-utils/smbget: Fix user-/name password reading from rcfile
BUG: https://bugzilla.samba.org/show_bug.cgi?id=11700
As the password option is gone, code needs to be able to read password
from user parameter when user%password syntax is used.
Signed-off-by: Christian Ambach <ambi at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
(cherry picked from commit cac1086ae12d10a6c424f947045d26badc96d751)
commit 9d4cbe61c3649ff95f0b6aa6e3a9fcd5bc4968aa
Author: Christian Ambach <ambi at samba.org>
Date: Wed Jan 27 21:56:10 2016 +0100
s3-utils/smbget: Fix reading the rcfile
BUG: https://bugzilla.samba.org/show_bug.cgi?id=11700
shortName in POPT_AUTOHELP is null, so the loop always stopped at this
item.
Signed-off-by: Christian Ambach <ambi at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
(cherry picked from commit bf1c1ad068a763108f9b8f79431de522783a4302)
commit 1ebeb0677911ab89113c02b5d13a6bb7d8009f52
Author: Andreas Schneider <asn at samba.org>
Date: Wed Oct 28 12:37:36 2015 +0100
s3-utils/smbget: Fix option parsing and apply samba defaults
BUG: https://bugzilla.samba.org/show_bug.cgi?id=11700
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Christian Ambach <ambi at samba.org>
(cherry picked from commit e1548c5bf77186c72f0257592e9084e3b039b87c)
commit 2aadb75d425b7035ca485fb8123e5874181279c7
Author: Uri Simchoni <uri at samba.org>
Date: Wed Jan 27 21:47:30 2016 +0200
selftest: fix test_dfree_quota.sh
Eliminate backslashes from smbcquotas output so that we
don't have to deal with them correctly when parsing the output.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=11697
Signed-off-by: Uri Simchoni <uri at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
(cherry picked from commit e7a8ef4f260cc3d07654664c9e547263a2bc8ee6)
commit 3029dc04ba39e8ca508f9ee8112fb56e774c9336
Author: Günther Deschner <gd at samba.org>
Date: Wed Jan 27 15:40:33 2016 +0100
ctdb: do not provide a useless pkgconfig file for ctdb.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=11696
We neither have public headers nor a public library.
Guenther
Signed-off-by: Guenther Deschner <gd at samba.org>
Reviewed-by: Amitay Isaacs <amitay at gmail.com>
Autobuild-User(master): Amitay Isaacs <amitay at samba.org>
Autobuild-Date(master): Fri Jan 29 04:33:36 CET 2016 on sn-devel-144
commit 7da9c659d3ca41de13c995872c32cb52ee4f27f7
Author: Uri Simchoni <uri at samba.org>
Date: Tue Jan 19 14:57:16 2016 +0200
smbd: show correct disk size for different quota and dfree block sizes
When file system stats (VFS disk_free_fn) and quota (VFS get_quota_fn)
return different block sizes, normalize values before comparing.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=11681
Signed-off-by: Uri Simchoni <uri at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
(cherry picked from commit 67c89715d00abc588239d8220f09cf51a58db05a)
-----------------------------------------------------------------------
Summary of changes:
WHATSNEW.txt | 7 ++
ctdb/ctdb.pc.in | 19 ----
ctdb/packaging/RPM/ctdb.spec.in | 1 -
ctdb/wscript | 9 --
docs-xml/manpages/smbget.1.xml | 16 +--
docs-xml/manpages/smbgetrc.5.xml | 8 +-
source3/script/tests/test_dfree_quota.sh | 4 +-
source3/smbd/dfree.c | 9 +-
source3/smbd/smb2_create.c | 8 ++
source3/utils/smbget.c | 185 +++++++++++++++++++------------
10 files changed, 147 insertions(+), 119 deletions(-)
delete mode 100644 ctdb/ctdb.pc.in
Changeset truncated at 500 lines:
diff --git a/WHATSNEW.txt b/WHATSNEW.txt
index 399fb2b..7c748c2 100644
--- a/WHATSNEW.txt
+++ b/WHATSNEW.txt
@@ -65,6 +65,13 @@ smbstatus
'smbstatus' was enhanced to show the state of signing and encryption for
sessions and shares.
+smbget
+------
+The -u and -p options for user and password were replaced by the -U option that
+accepts username[%password] as in many other tools of the Samba suite.
+Similary, smbgetrc files do not accept username and password options any more,
+only a single "user" option which also accepts user%password combinations.
+
s4-rpc_server
-------------
diff --git a/ctdb/ctdb.pc.in b/ctdb/ctdb.pc.in
deleted file mode 100644
index 5f5bfab..0000000
--- a/ctdb/ctdb.pc.in
+++ /dev/null
@@ -1,19 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-datarootdir=@datarootdir@
-includedir=@includedir@
-libdir=@libdir@
-bindir=@bindir@
-sbindir=@sbindir@
-mandir=@mandir@
-localstatedir=@localstatedir@
-srcdir=@srcdir@
-etcdir=@sysconfdir@
-
-Name: ctdb
-Description: A clustered database to store temporary data
-Version: @PACKAGE_VERSION@
-Libs: -L${libdir}
-Cflags: -I${includedir}
-URL: http://ctdb.samba.org/
-
diff --git a/ctdb/packaging/RPM/ctdb.spec.in b/ctdb/packaging/RPM/ctdb.spec.in
index 55ce0e5..420ec52 100644
--- a/ctdb/packaging/RPM/ctdb.spec.in
+++ b/ctdb/packaging/RPM/ctdb.spec.in
@@ -217,7 +217,6 @@ rm -rf $RPM_BUILD_ROOT
%{_mandir}/man7/ctdb.7.gz
%{_mandir}/man7/ctdb-statistics.7.gz
%{_mandir}/man7/ctdb-tunables.7.gz
-%{_libdir}/pkgconfig/ctdb.pc
%package devel
diff --git a/ctdb/wscript b/ctdb/wscript
index edd4aa4..e1fad17 100755
--- a/ctdb/wscript
+++ b/ctdb/wscript
@@ -615,15 +615,6 @@ def build(bld):
bld.install_dir(bld.env.CTDB_RUNDIR)
bld.install_dir(bld.env.CTDB_VARDIR)
- sed_expr = 's/@PACKAGE_VERSION@/%s/g' % VERSION
- t = bld.SAMBA_GENERATOR('ctdb-pc',
- source='ctdb.pc.in',
- target='ctdb.pc',
- rule='sed -e "%s" ${SRC} > ${TGT}' % sed_expr,
- dep_vars=['VERSION'])
- t.env.VERSION = VERSION
- bld.INSTALL_FILES('${LIBDIR}/pkgconfig', 'ctdb.pc')
-
# Unit tests
ctdb_unit_tests = [
'db_hash_test',
diff --git a/docs-xml/manpages/smbget.1.xml b/docs-xml/manpages/smbget.1.xml
index 965e229..59e2ffe 100644
--- a/docs-xml/manpages/smbget.1.xml
+++ b/docs-xml/manpages/smbget.1.xml
@@ -22,8 +22,7 @@
<arg choice="opt">-a, --guest</arg>
<arg choice="opt">-r, --resume</arg>
<arg choice="opt">-R, --recursive</arg>
- <arg choice="opt">-u, --username=STRING</arg>
- <arg choice="opt">-p, --password=STRING</arg>
+ <arg choice="opt">-U, --username=STRING</arg>
<arg choice="opt">-w, --workgroup=STRING</arg>
<arg choice="opt">-n, --nonprompt</arg>
<arg choice="opt">-d, --debuglevel=INT</arg>
@@ -35,7 +34,7 @@
<arg choice="opt">-v, --verbose</arg>
<arg choice="opt">-b, --blocksize</arg>
<arg choice="opt">-O, --stdout</arg>
- <arg choice="opt">-U, --update</arg>
+ <arg choice="opt">-u, --update</arg>
<arg choice="opt">-?, --help</arg>
<arg choice="opt">--usage</arg>
<arg choice="req">smb://host/share/path/to/file</arg>
@@ -78,13 +77,8 @@
</varlistentry>
<varlistentry>
- <term>-u, --username=STRING</term>
- <listitem><para>Username to use</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term>-p, --password=STRING</term>
- <listitem><para>Password to use</para></listitem>
+ <term> -U, --username=<replaceable>username[%password]</replaceable></term>
+ <listitem><para>Username (and password) to use</para></listitem>
</varlistentry>
<varlistentry>
@@ -153,7 +147,7 @@
</varlistentry>
<varlistentry>
- <term>-U, --update</term>
+ <term>-u, --update</term>
<listitem><para>Download only when remote file is newer than local file or local file is missing.</para></listitem>
</varlistentry>
diff --git a/docs-xml/manpages/smbgetrc.5.xml b/docs-xml/manpages/smbgetrc.5.xml
index a1a9b57..f1bb8b5 100644
--- a/docs-xml/manpages/smbgetrc.5.xml
+++ b/docs-xml/manpages/smbgetrc.5.xml
@@ -53,15 +53,11 @@
<listitem><para>Whether directories should be downloaded recursively</para></listitem>
</varlistentry>
- <varlistentry><term>username <replaceable>name</replaceable></term>
- <listitem><para>Username to use when logging in to the remote server. Use an empty string for anonymous access.
+ <varlistentry><term>user <replaceable>name[%password]</replaceable></term>
+ <listitem><para>Username (and password) to use when logging in to the remote server. Use an empty string for anonymous access.
</para></listitem>
</varlistentry>
- <varlistentry><term>password <replaceable>pass</replaceable></term>
- <listitem><para>Password to use when logging in.</para></listitem>
- </varlistentry>
-
<varlistentry><term>workgroup <replaceable>wg</replaceable></term>
<listitem><para>Workgroup to use when logging in</para></listitem>
</varlistentry>
diff --git a/source3/script/tests/test_dfree_quota.sh b/source3/script/tests/test_dfree_quota.sh
index c693b7b..5392d3d 100755
--- a/source3/script/tests/test_dfree_quota.sh
+++ b/source3/script/tests/test_dfree_quota.sh
@@ -128,10 +128,10 @@ test_smbcquotas() {
shift
subunit_start_test "$name"
setup_conf "$conf" "."
- output=$($VALGRIND $smbcquotas //$SERVER/dfq $@ 2>/dev/null)
+ output=$($VALGRIND $smbcquotas //$SERVER/dfq $@ 2>/dev/null | tr '\\' '/')
status=$?
if [ "$status" = "0" ]; then
- received=$(echo "$output" | awk "/$SERVER\\\\$user/ {printf \"%s%s%s\", \$3, \$4, \$5}")
+ received=$(echo "$output" | awk "/$SERVER\\/$user/ {printf \"%s%s%s\", \$3, \$4, \$5}")
if [ "$expected" = "$received" ]; then
subunit_pass_test "$name"
else
diff --git a/source3/smbd/dfree.c b/source3/smbd/dfree.c
index 62d2ea4..765fbe6 100644
--- a/source3/smbd/dfree.c
+++ b/source3/smbd/dfree.c
@@ -124,7 +124,14 @@ uint64_t sys_disk_free(connection_struct *conn, const char *path,
}
if (disk_quotas(conn, path, &bsize_q, &dfree_q, &dsize_q)) {
- (*bsize) = bsize_q;
+ uint64_t min_bsize = MIN(*bsize, bsize_q);
+
+ (*dfree) = (*dfree) * (*bsize) / min_bsize;
+ (*dsize) = (*dsize) * (*bsize) / min_bsize;
+ dfree_q = dfree_q * bsize_q / min_bsize;
+ dsize_q = dsize_q * bsize_q / min_bsize;
+
+ (*bsize) = min_bsize;
(*dfree) = MIN(*dfree,dfree_q);
(*dsize) = MIN(*dsize,dsize_q);
}
diff --git a/source3/smbd/smb2_create.c b/source3/smbd/smb2_create.c
index 54a598d..62948a0 100644
--- a/source3/smbd/smb2_create.c
+++ b/source3/smbd/smb2_create.c
@@ -1280,6 +1280,14 @@ static struct tevent_req *smbd_smb2_create_send(TALLOC_CTX *mem_ctx,
state->out_last_write_ts = result->fsp_name->st.st_ex_mtime;
state->out_change_ts = get_change_timespec(smb1req->conn,
result, result->fsp_name);
+
+ if (lp_dos_filetime_resolution(SNUM(smb2req->tcon->compat))) {
+ dos_filetime_timespec(&state->out_creation_ts);
+ dos_filetime_timespec(&state->out_last_access_ts);
+ dos_filetime_timespec(&state->out_last_write_ts);
+ dos_filetime_timespec(&state->out_change_ts);
+ }
+
state->out_allocation_size =
SMB_VFS_GET_ALLOC_SIZE(smb1req->conn, result,
&(result->fsp_name->st));
diff --git a/source3/utils/smbget.c b/source3/utils/smbget.c
index f596a8c..1dd8d77 100644
--- a/source3/utils/smbget.c
+++ b/source3/utils/smbget.c
@@ -23,10 +23,6 @@
static int columns = 0;
-static int debuglevel;
-static char *outputfile;
-
-
static time_t total_start_time = 0;
static off_t total_bytes = 0;
@@ -42,11 +38,26 @@ static off_t total_bytes = 0;
/* Number of bytes to read at once */
#define SMB_DEFAULT_BLOCKSIZE 64000
-static const char *username = NULL, *password = NULL, *workgroup = NULL;
-static bool nonprompt = false, quiet = false, dots = false,
- keep_permissions = false, verbose = false, send_stdout = false,
- update = false;
-static unsigned int blocksize = SMB_DEFAULT_BLOCKSIZE;
+struct opt {
+ char *workgroup;
+ bool username_specified;
+ char *username;
+ bool password_specified;
+ char *password;
+
+ char *outputfile;
+ size_t blocksize;
+
+ bool nonprompt;
+ bool quiet;
+ bool dots;
+ bool keep_permissions;
+ bool verbose;
+ bool send_stdout;
+ bool update;
+ int debuglevel;
+};
+static struct opt opt;
static bool smb_download_file(const char *base, const char *name,
bool recursive, bool resume, bool toplevel,
@@ -105,7 +116,7 @@ static void get_auth_data(const char *srv, const char *shr, char *wg, int wglen,
}
hasasked = true;
- if (!nonprompt && !username) {
+ if (!opt.nonprompt && !opt.username_specified) {
printf("Username for %s at %s [guest] ", shr, srv);
if (fgets(tmp, sizeof(tmp), stdin) == NULL) {
return;
@@ -114,11 +125,11 @@ static void get_auth_data(const char *srv, const char *shr, char *wg, int wglen,
tmp[strlen(tmp) - 1] = '\0';
}
strncpy(un, tmp, unlen - 1);
- } else if (username) {
- strncpy(un, username, unlen - 1);
+ } else if (opt.username != NULL) {
+ strncpy(un, opt.username, unlen - 1);
}
- if (!nonprompt && !password) {
+ if (!opt.nonprompt && !opt.password_specified) {
char *prompt;
if (asprintf(&prompt, "Password for %s at %s: ", shr, srv) ==
-1) {
@@ -126,12 +137,12 @@ static void get_auth_data(const char *srv, const char *shr, char *wg, int wglen,
}
(void)samba_getpass(prompt, pw, pwlen, false, false);
free(prompt);
- } else if (password) {
- strncpy(pw, password, pwlen - 1);
+ } else if (opt.password != NULL) {
+ strncpy(pw, opt.password, pwlen-1);
}
- if (workgroup) {
- strncpy(wg, workgroup, wglen - 1);
+ if (opt.workgroup != NULL) {
+ strncpy(wg, opt.workgroup, wglen-1);
}
/* save the values found for later */
@@ -139,12 +150,14 @@ static void get_auth_data(const char *srv, const char *shr, char *wg, int wglen,
savedun = SMB_STRDUP(un);
savedpw = SMB_STRDUP(pw);
- if (!quiet) {
+ if (!opt.quiet) {
char *wgtmp, *usertmp;
wgtmp = SMB_STRNDUP(wg, wglen);
usertmp = SMB_STRNDUP(un, unlen);
- printf("Using workgroup %s, %s%s\n", wgtmp,
- *usertmp ? "user " : "guest user", usertmp);
+ printf("Using workgroup %s, %s%s\n",
+ wgtmp,
+ *usertmp ? "user " : "guest user",
+ usertmp);
free(wgtmp);
free(usertmp);
}
@@ -218,21 +231,21 @@ static int smb_download_dir(const char *base, const char *name, int resume)
break;
case SMBC_PRINTER_SHARE:
- if (!quiet) {
+ if (!opt.quiet) {
printf("Ignoring printer share %s\n",
dirent->name);
}
break;
case SMBC_COMMS_SHARE:
- if (!quiet) {
+ if (!opt.quiet) {
printf("Ignoring comms share %s\n",
dirent->name);
}
break;
case SMBC_IPC_SHARE:
- if (!quiet) {
+ if (!opt.quiet) {
printf("Ignoring ipc$ share %s\n",
dirent->name);
}
@@ -247,7 +260,7 @@ static int smb_download_dir(const char *base, const char *name, int resume)
}
free(tmpname);
- if (keep_permissions) {
+ if (opt.keep_permissions) {
if (smbc_fstat(dirhandle, &remotestat) < 0) {
fprintf(stderr,
"Unable to get stats on %s on remote server\n",
@@ -420,11 +433,11 @@ static bool smb_download_file(const char *base, const char *name,
}
/* Open local file according to the mode */
- if (update) {
+ if (opt.update) {
/* if it is up-to-date, skip */
if (stat(newpath, &localstat) == 0 &&
localstat.st_mtime >= remotestat.st_mtime) {
- if (verbose) {
+ if (opt.verbose) {
printf("%s is up-to-date, skipping\n", newpath);
}
smbc_close(remotehandle);
@@ -440,7 +453,7 @@ static bool smb_download_file(const char *base, const char *name,
return false;
}
/* no offset */
- } else if (!send_stdout) {
+ } else if (!opt.send_stdout) {
localhandle = open(newpath, O_CREAT | O_NONBLOCK | O_RDWR |
(!resume ? O_EXCL : 0),
0755);
@@ -463,11 +476,11 @@ static bool smb_download_file(const char *base, const char *name,
if (localstat.st_size &&
localstat.st_size == remotestat.st_size) {
- if (verbose) {
+ if (opt.verbose) {
fprintf(stderr, "%s is already downloaded "
"completely.\n",
path);
- } else if (!quiet) {
+ } else if (!opt.quiet) {
fprintf(stderr, "%s\n", path);
}
smbc_close(remotehandle);
@@ -480,7 +493,7 @@ static bool smb_download_file(const char *base, const char *name,
offset_download =
localstat.st_size - RESUME_DOWNLOAD_OFFSET;
offset_check = localstat.st_size - RESUME_CHECK_OFFSET;
- if (verbose) {
+ if (opt.verbose) {
printf("Trying to start resume of %s at %jd\n"
"At the moment %jd of %jd bytes have "
"been retrieved\n",
@@ -546,7 +559,7 @@ static bool smb_download_file(const char *base, const char *name,
if (memcmp(checkbuf[0], checkbuf[1],
RESUME_CHECK_SIZE) == 0) {
- if (verbose) {
+ if (opt.verbose) {
printf("Current local and remote file "
"appear to be the same. "
"Starting download from "
@@ -570,7 +583,7 @@ static bool smb_download_file(const char *base, const char *name,
offset_check = 0;
}
- readbuf = (char *)SMB_MALLOC(blocksize);
+ readbuf = (char *)SMB_MALLOC(opt.blocksize);
if (!readbuf) {
if (localhandle != STDOUT_FILENO) {
close(localhandle);
@@ -580,12 +593,14 @@ static bool smb_download_file(const char *base, const char *name,
/* Now, download all bytes from offset_download to the end */
for (curpos = offset_download; curpos < remotestat.st_size;
- curpos += blocksize) {
- ssize_t bytesread = smbc_read(remotehandle, readbuf, blocksize);
+ curpos += opt.blocksize) {
+ ssize_t bytesread = smbc_read(remotehandle,
+ readbuf,
+ opt.blocksize);
if(bytesread < 0) {
fprintf(stderr,
- "Can't read %u bytes at offset %jd, file %s\n",
- blocksize, (intmax_t)curpos, path);
+ "Can't read %zu bytes at offset %jd, file %s\n",
+ opt.blocksize, (intmax_t)curpos, path);
smbc_close(remotehandle);
if (localhandle != STDOUT_FILENO) {
close(localhandle);
@@ -609,9 +624,9 @@ static bool smb_download_file(const char *base, const char *name,
return false;
}
- if (dots) {
+ if (opt.dots) {
fputc('.', stderr);
- } else if (!quiet) {
+ } else if (!opt.quiet) {
print_progress(newpath, start_time, time_mono(NULL),
start_offset, curpos,
remotestat.st_size);
@@ -620,10 +635,10 @@ static bool smb_download_file(const char *base, const char *name,
free(readbuf);
- if (dots) {
+ if (opt.dots) {
fputc('\n', stderr);
printf("%s downloaded\n", path);
- } else if (!quiet) {
+ } else if (!opt.quiet) {
int i;
fprintf(stderr, "\r%s", path);
if (columns) {
@@ -634,7 +649,7 @@ static bool smb_download_file(const char *base, const char *name,
fputc('\n', stderr);
}
- if (keep_permissions && !send_stdout) {
+ if (opt.keep_permissions && !opt.send_stdout) {
if (fchmod(localhandle, remotestat.st_mode) < 0) {
fprintf(stderr, "Unable to change mode of local "
"file %s to %o\n",
@@ -656,7 +671,7 @@ static void clean_exit(void)
{
char bs[100];
human_readable(total_bytes, bs, sizeof(bs));
- if (!quiet) {
+ if (!opt.quiet) {
fprintf(stderr, "Downloaded %s in %lu seconds\n", bs,
(unsigned long)(time_mono(NULL) - total_start_time));
}
@@ -692,7 +707,7 @@ static int readrcfile(const char *name, const struct poptOption long_options[])
found = false;
- for (i = 0; long_options[i].shortName; i++) {
+ for (i = 0; long_options[i].argInfo; i++) {
if (!long_options[i].longName) {
continue;
}
@@ -723,6 +738,16 @@ static int readrcfile(const char *name, const struct poptOption long_options[])
case POPT_ARG_STRING:
stringdata = (char **)long_options[i].arg;
*stringdata = SMB_STRDUP(val);
+ if (long_options[i].shortName == 'U') {
+ char *p;
+ opt.username_specified = true;
+ p = strchr(*stringdata, '%');
+ if (p != NULL) {
+ *p = '\0';
+ opt.password = p + 1;
+ opt.password_specified = true;
+ }
+ }
break;
default:
fprintf(stderr, "Invalid variable %s at "
@@ -744,7 +769,7 @@ static int readrcfile(const char *name, const struct poptOption long_options[])
return 0;
}
-int main(int argc, const char **argv)
+int main(int argc, char **argv)
{
--
Samba Shared Repository
More information about the samba-cvs
mailing list