Fixed transfer interruption: it was not possible to abort a transfer if the size of the file was less than 65k
This commit is contained in:
parent
421969c3da
commit
80c67c8aa8
|
@ -48,6 +48,7 @@ Released on FIXME: ??
|
||||||
- Bugfix:
|
- Bugfix:
|
||||||
- Fixed broken input cursor when typing UTF8 characters (tui-realm 0.3.2)
|
- Fixed broken input cursor when typing UTF8 characters (tui-realm 0.3.2)
|
||||||
- Fixed save bookmark dialog: you could switch out from dialog with `<TAB>`
|
- Fixed save bookmark dialog: you could switch out from dialog with `<TAB>`
|
||||||
|
- Fixed transfer interruption: it was not possible to abort a transfer if the size of the file was less than 65k
|
||||||
- Dependencies:
|
- Dependencies:
|
||||||
- Added `argh 0.1.5`
|
- Added `argh 0.1.5`
|
||||||
- Added `open 1.7.0`
|
- Added `open 1.7.0`
|
||||||
|
|
|
@ -450,16 +450,22 @@ impl FileTransferActivity {
|
||||||
// Write remote file
|
// Write remote file
|
||||||
let mut total_bytes_written: usize = 0;
|
let mut total_bytes_written: usize = 0;
|
||||||
let mut last_progress_val: f64 = 0.0;
|
let mut last_progress_val: f64 = 0.0;
|
||||||
let mut last_input_event_fetch: Instant = Instant::now();
|
let mut last_input_event_fetch: Option<Instant> = None;
|
||||||
// While the entire file hasn't been completely written,
|
// While the entire file hasn't been completely written,
|
||||||
// Or filetransfer has been aborted
|
// Or filetransfer has been aborted
|
||||||
while total_bytes_written < file_size && !self.transfer.aborted() {
|
while total_bytes_written < file_size && !self.transfer.aborted() {
|
||||||
// Handle input events (each 500ms)
|
// Handle input events (each 500ms) or if never fetched before
|
||||||
if last_input_event_fetch.elapsed().as_millis() >= 500 {
|
if last_input_event_fetch.is_none()
|
||||||
|
|| last_input_event_fetch
|
||||||
|
.unwrap_or_else(Instant::now)
|
||||||
|
.elapsed()
|
||||||
|
.as_millis()
|
||||||
|
>= 500
|
||||||
|
{
|
||||||
// Read events
|
// Read events
|
||||||
self.read_input_event();
|
self.read_input_event();
|
||||||
// Reset instant
|
// Reset instant
|
||||||
last_input_event_fetch = Instant::now();
|
last_input_event_fetch = Some(Instant::now());
|
||||||
}
|
}
|
||||||
// Read till you can
|
// Read till you can
|
||||||
let mut buffer: [u8; 65536] = [0; 65536];
|
let mut buffer: [u8; 65536] = [0; 65536];
|
||||||
|
@ -790,16 +796,22 @@ impl FileTransferActivity {
|
||||||
self.transfer.partial.init(remote.size);
|
self.transfer.partial.init(remote.size);
|
||||||
// Write local file
|
// Write local file
|
||||||
let mut last_progress_val: f64 = 0.0;
|
let mut last_progress_val: f64 = 0.0;
|
||||||
let mut last_input_event_fetch: Instant = Instant::now();
|
let mut last_input_event_fetch: Option<Instant> = None;
|
||||||
// While the entire file hasn't been completely read,
|
// While the entire file hasn't been completely read,
|
||||||
// Or filetransfer has been aborted
|
// Or filetransfer has been aborted
|
||||||
while total_bytes_written < remote.size && !self.transfer.aborted() {
|
while total_bytes_written < remote.size && !self.transfer.aborted() {
|
||||||
// Handle input events (each 500 ms)
|
// Handle input events (each 500 ms) or is None
|
||||||
if last_input_event_fetch.elapsed().as_millis() >= 500 {
|
if last_input_event_fetch.is_none()
|
||||||
|
|| last_input_event_fetch
|
||||||
|
.unwrap_or_else(Instant::now)
|
||||||
|
.elapsed()
|
||||||
|
.as_millis()
|
||||||
|
>= 500
|
||||||
|
{
|
||||||
// Read events
|
// Read events
|
||||||
self.read_input_event();
|
self.read_input_event();
|
||||||
// Reset instant
|
// Reset instant
|
||||||
last_input_event_fetch = Instant::now();
|
last_input_event_fetch = Some(Instant::now());
|
||||||
}
|
}
|
||||||
// Read till you can
|
// Read till you can
|
||||||
let mut buffer: [u8; 65536] = [0; 65536];
|
let mut buffer: [u8; 65536] = [0; 65536];
|
||||||
|
|
Loading…
Reference in a new issue