mirror of
https://github.com/curl/curl.git
synced 2025-09-26 05:56:48 +03:00
ssh: improve the logic for detecting blocking direction
This fixes a regression introduced by commit 0feeab78
limiting the speed
of SCP upload to 16384 B/s on a fast connection (such as localhost).
This commit is contained in:
parent
143d7c13d8
commit
d015f4ccac
|
@ -59,6 +59,7 @@ This release includes the following bugfixes:
|
||||||
o win32: fix Visual Studio 2010 build with WINVER >= 0x600 [22]
|
o win32: fix Visual Studio 2010 build with WINVER >= 0x600 [22]
|
||||||
o configure: use icc options without space [21]
|
o configure: use icc options without space [21]
|
||||||
o test1112: Increase the timeout from 7s to 16s [20]
|
o test1112: Increase the timeout from 7s to 16s [20]
|
||||||
|
o SCP: upload speed on a fast connection limited to 16384 B/s
|
||||||
|
|
||||||
This release includes the following known bugs:
|
This release includes the following known bugs:
|
||||||
|
|
||||||
|
|
|
@ -2288,6 +2288,10 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block)
|
||||||
sshc->actualcode = result;
|
sshc->actualcode = result;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
/* store this original bitmask setup to use later on if we can't
|
||||||
|
figure out a "real" bitmask */
|
||||||
|
sshc->orig_waitfor = data->req.keepon;
|
||||||
|
|
||||||
/* we want to use the _sending_ function even when the socket turns
|
/* we want to use the _sending_ function even when the socket turns
|
||||||
out readable as the underlying libssh2 scp send function will deal
|
out readable as the underlying libssh2 scp send function will deal
|
||||||
with both accordingly */
|
with both accordingly */
|
||||||
|
@ -2604,9 +2608,7 @@ static void ssh_block2waitfor(struct connectdata *conn, bool block)
|
||||||
{
|
{
|
||||||
struct ssh_conn *sshc = &conn->proto.sshc;
|
struct ssh_conn *sshc = &conn->proto.sshc;
|
||||||
int dir;
|
int dir;
|
||||||
if(!block)
|
if(block && (dir = libssh2_session_block_directions(sshc->ssh_session))) {
|
||||||
conn->waitfor = 0;
|
|
||||||
else if((dir = libssh2_session_block_directions(sshc->ssh_session))) {
|
|
||||||
/* translate the libssh2 define bits into our own bit defines */
|
/* translate the libssh2 define bits into our own bit defines */
|
||||||
conn->waitfor = ((dir&LIBSSH2_SESSION_BLOCK_INBOUND)?KEEP_RECV:0) |
|
conn->waitfor = ((dir&LIBSSH2_SESSION_BLOCK_INBOUND)?KEEP_RECV:0) |
|
||||||
((dir&LIBSSH2_SESSION_BLOCK_OUTBOUND)?KEEP_SEND:0);
|
((dir&LIBSSH2_SESSION_BLOCK_OUTBOUND)?KEEP_SEND:0);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user