}
}
- if(FD_ISSET(sockfd, &readfd))
+ if(FD_ISSET(sockfd, &readfd)) {
Curl_read(conn, sockfd, buf, BUFSIZE - 1, &nread);
- /* if we receive 0 or less here, the server closed the connection and
- we bail out from this! */
- if (nread <= 0) {
- keepon = FALSE;
- break;
- }
+ /* if we receive 0 or less here, the server closed the connection and
+ we bail out from this! */
+ if (nread <= 0) {
+ keepon = FALSE;
+ break;
+ }
- telrcv(data, (unsigned char *)buf, nread);
+ telrcv(data, (unsigned char *)buf, nread);
+ }
}
}
- return CURLE_OK;
+ /* mark this as "no further transfer wanted" */
+ return Curl_Transfer(conn, -1, -1, FALSE, NULL, -1, NULL);
}
Curl_pgrsTime(data, TIMER_PRETRANSFER);
Curl_speedinit(data);
+ if((conn->sockfd == -1) &&
+ (conn->writesockfd == -1)) {
+ /* nothing to read, nothing to write, we're already OK! */
+ return CURLE_OK;
+ }
+
if (!conn->getheader) {
header = FALSE;
if(conn->size > 0)