mirror of
https://github.com/moparisthebest/curl
synced 2024-11-17 06:55:02 -05:00
transfer: don't unset writesockfd on setup of multiplexed conns
Curl_setup_transfer() can be called to setup a new individual transfer over a multiplexed connection so it shouldn't unset writesockfd. Bug: #2520 Closes #2549
This commit is contained in:
parent
7663a7c284
commit
f8d608f38d
@ -2018,11 +2018,18 @@ Curl_setup_transfer(
|
|||||||
|
|
||||||
DEBUGASSERT((sockindex <= 1) && (sockindex >= -1));
|
DEBUGASSERT((sockindex <= 1) && (sockindex >= -1));
|
||||||
|
|
||||||
/* now copy all input parameters */
|
if(conn->bits.multiplex || conn->httpversion == 20) {
|
||||||
|
/* when multiplexing, the read/write sockets need to be the same! */
|
||||||
|
conn->sockfd = sockindex == -1 ?
|
||||||
|
conn->sock[writesockindex] : conn->sock[sockindex];
|
||||||
|
conn->writesockfd = conn->sockfd;
|
||||||
|
}
|
||||||
|
else {
|
||||||
conn->sockfd = sockindex == -1 ?
|
conn->sockfd = sockindex == -1 ?
|
||||||
CURL_SOCKET_BAD : conn->sock[sockindex];
|
CURL_SOCKET_BAD : conn->sock[sockindex];
|
||||||
conn->writesockfd = writesockindex == -1 ?
|
conn->writesockfd = writesockindex == -1 ?
|
||||||
CURL_SOCKET_BAD:conn->sock[writesockindex];
|
CURL_SOCKET_BAD:conn->sock[writesockindex];
|
||||||
|
}
|
||||||
k->getheader = getheader;
|
k->getheader = getheader;
|
||||||
|
|
||||||
k->size = size;
|
k->size = size;
|
||||||
@ -2041,10 +2048,10 @@ Curl_setup_transfer(
|
|||||||
/* we want header and/or body, if neither then don't do this! */
|
/* we want header and/or body, if neither then don't do this! */
|
||||||
if(k->getheader || !data->set.opt_no_body) {
|
if(k->getheader || !data->set.opt_no_body) {
|
||||||
|
|
||||||
if(conn->sockfd != CURL_SOCKET_BAD)
|
if(sockindex != -1)
|
||||||
k->keepon |= KEEP_RECV;
|
k->keepon |= KEEP_RECV;
|
||||||
|
|
||||||
if(conn->writesockfd != CURL_SOCKET_BAD) {
|
if(writesockindex != -1) {
|
||||||
struct HTTP *http = data->req.protop;
|
struct HTTP *http = data->req.protop;
|
||||||
/* HTTP 1.1 magic:
|
/* HTTP 1.1 magic:
|
||||||
|
|
||||||
@ -2075,7 +2082,7 @@ Curl_setup_transfer(
|
|||||||
/* enable the write bit when we're not waiting for continue */
|
/* enable the write bit when we're not waiting for continue */
|
||||||
k->keepon |= KEEP_SEND;
|
k->keepon |= KEEP_SEND;
|
||||||
}
|
}
|
||||||
} /* if(conn->writesockfd != CURL_SOCKET_BAD) */
|
} /* if(writesockindex != -1) */
|
||||||
} /* if(k->getheader || !data->set.opt_no_body) */
|
} /* if(k->getheader || !data->set.opt_no_body) */
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user