version 1.1, 2001/02/04 11:11:54 |
version 1.2, 2001/02/04 15:23:08 |
|
|
buffer_put_int(&msg, COPY_SIZE); |
buffer_put_int(&msg, COPY_SIZE); |
send_msg(fd_out, &msg); |
send_msg(fd_out, &msg); |
debug3("Sent message SSH2_FXP_READ I:%d O:%llu S:%u", |
debug3("Sent message SSH2_FXP_READ I:%d O:%llu S:%u", |
id, offset, COPY_SIZE); |
id, (unsigned long long)offset, COPY_SIZE); |
|
|
buffer_clear(&msg); |
buffer_clear(&msg); |
|
|
|
|
fatal("Received more data than asked for %d > %d", |
fatal("Received more data than asked for %d > %d", |
len, COPY_SIZE); |
len, COPY_SIZE); |
|
|
debug3("In read loop, got %d offset %lld", len, offset); |
debug3("In read loop, got %d offset %lld", len, |
|
(unsigned long long)offset); |
if (atomicio(write, local_fd, data, len) != len) { |
if (atomicio(write, local_fd, data, len) != len) { |
error("Couldn't write to \"%s\": %s", local_path, |
error("Couldn't write to \"%s\": %s", local_path, |
strerror(errno)); |
strerror(errno)); |
|
|
buffer_put_string(&msg, data, len); |
buffer_put_string(&msg, data, len); |
send_msg(fd_out, &msg); |
send_msg(fd_out, &msg); |
debug3("Sent message SSH2_FXP_WRITE I:%d O:%llu S:%u", |
debug3("Sent message SSH2_FXP_WRITE I:%d O:%llu S:%u", |
id, offset, len); |
id, (unsigned long long)offset, len); |
|
|
status = get_status(fd_in, id); |
status = get_status(fd_in, id); |
if (status != SSH2_FX_OK) { |
if (status != SSH2_FX_OK) { |
|
|
close(local_fd); |
close(local_fd); |
return(-1); |
return(-1); |
} |
} |
debug3("In write loop, got %d offset %lld", len, offset); |
debug3("In write loop, got %d offset %llu", len, |
|
(unsigned long long)offset); |
|
|
offset += len; |
offset += len; |
} |
} |