summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2012-07-27 12:47:25 +0100
committerCarl Hetherington <cth@carlh.net>2012-07-27 12:47:25 +0100
commit0efe439f5e2ff5546a75088cca32572e4ffe4341 (patch)
treeae74fe001003b6f24e6b03d719e8629133146691 /src
parent9891d147f4fb8619e26453f692de37d6356c9042 (diff)
Use correct type for file sizes to fix problems with big files.
Diffstat (limited to 'src')
-rw-r--r--src/lib/scp_dcp_job.cc15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/lib/scp_dcp_job.cc b/src/lib/scp_dcp_job.cc
index 760e85bd0..bfa9d056d 100644
--- a/src/lib/scp_dcp_job.cc
+++ b/src/lib/scp_dcp_job.cc
@@ -161,14 +161,14 @@ SCPDCPJob::run ()
string const dcp_dir = _fs->dir (_fs->name);
- int bytes_to_transfer = 0;
+ boost::uintmax_t bytes_to_transfer = 0;
for (filesystem::directory_iterator i = filesystem::directory_iterator (dcp_dir); i != filesystem::directory_iterator(); ++i) {
bytes_to_transfer += filesystem::file_size (*i);
}
- int buffer_size = 64 * 1024;
+ boost::uintmax_t buffer_size = 64 * 1024;
char buffer[buffer_size];
- int bytes_transferred = 0;
+ boost::uintmax_t bytes_transferred = 0;
for (filesystem::directory_iterator i = filesystem::directory_iterator (dcp_dir); i != filesystem::directory_iterator(); ++i) {
@@ -181,7 +181,7 @@ SCPDCPJob::run ()
set_status ("copying " + leaf);
- int to_do = filesystem::file_size (*i);
+ boost::uintmax_t to_do = filesystem::file_size (*i);
ssh_scp_push_file (sc.scp, leaf.c_str(), to_do, S_IRUSR | S_IWUSR);
FILE* f = fopen (filesystem::path (*i).string().c_str(), "rb");
@@ -214,7 +214,7 @@ SCPDCPJob::run ()
}
set_progress (1);
- set_status ("OK");
+ set_status ("");
set_state (FINISHED_OK);
}
@@ -223,7 +223,10 @@ SCPDCPJob::status () const
{
boost::mutex::scoped_lock lm (_status_mutex);
stringstream s;
- s << Job::status() << "; " << _status;
+ s << Job::status ();
+ if (!_status.empty ()) {
+ s << << "; " << _status;
+ }
return s.str ();
}