|
|
@@ -1414,9 +1414,12 @@ static ssize_t sftp_read(LIBSSH2_SFTP_HANDLE * handle, char *buffer, |
|
|
|
/* Number of bytes asked for that haven't been acked yet */ |
|
|
|
size_t already = (size_t)(filep->offset_sent - filep->offset); |
|
|
|
|
|
|
|
size_t max_read_ahead = buffer_size; |
|
|
|
size_t max_read_ahead = buffer_size*4; |
|
|
|
unsigned long recv_window; |
|
|
|
|
|
|
|
if(max_read_ahead > LIBSSH2_CHANNEL_WINDOW_DEFAULT*4) |
|
|
|
max_read_ahead = LIBSSH2_CHANNEL_WINDOW_DEFAULT*4; |
|
|
|
|
|
|
|
/* if the buffer_size passed in now is smaller than what has |
|
|
|
already been sent, we risk getting count become a very large |
|
|
|
number */ |
|
|
@@ -1469,8 +1472,8 @@ static ssize_t sftp_read(LIBSSH2_SFTP_HANDLE * handle, char *buffer, |
|
|
|
uint32_t request_id; |
|
|
|
|
|
|
|
uint32_t size = count; |
|
|
|
//if(size < buffer_size) |
|
|
|
// size = buffer_size; |
|
|
|
if(size < buffer_size) |
|
|
|
size = buffer_size; |
|
|
|
if(size > MAX_SFTP_READ_SIZE) |
|
|
|
size = MAX_SFTP_READ_SIZE; |
|
|
|
|
|
|
@@ -1573,7 +1576,7 @@ static ssize_t sftp_read(LIBSSH2_SFTP_HANDLE * handle, char *buffer, |
|
|
|
else { |
|
|
|
/* we should never reach this point */ |
|
|
|
return _libssh2_error(session, LIBSSH2_ERROR_SFTP_PROTOCOL, |
|
|
|
"sftp_read() internal error a"); |
|
|
|
"sftp_read() internal error"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@@ -1719,7 +1722,7 @@ static ssize_t sftp_read(LIBSSH2_SFTP_HANDLE * handle, char *buffer, |
|
|
|
|
|
|
|
/* we should never reach this point */ |
|
|
|
return _libssh2_error(session, LIBSSH2_ERROR_SFTP_PROTOCOL, |
|
|
|
"sftp_read() internal error b"); |
|
|
|
"sftp_read() internal error"); |
|
|
|
} |
|
|
|
|
|
|
|
/* libssh2_sftp_read |
|
|
|