Loading CHANGES +3 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,9 @@ Daniel (11 January 2005) - Dan Torop cleaned up a few no longer used variables from David Phillips' select() overhaul fix. - Cyrill Osterwalder posted a detailed analysis about a bug that occurs when using a custom Host: header and curl fails to send a request on a re-used persistent connection and thus creates a new connection and resends it. It Loading RELEASE-NOTES +1 −1 Original line number Diff line number Diff line Loading @@ -36,6 +36,6 @@ advice from friends like these: Dan Fandrich, Peter Pentchev, Marcin Konicki, Rune Kleveland, David Shaw, Werner Koch, Gisle Vanem, Alex Neblett, Kai Sommerfeld, Marty Kuhrt, Hzhijun, Pavel Orehov, Bruce Mitchener, Cyrill Osterwalder Hzhijun, Pavel Orehov, Bruce Mitchener, Cyrill Osterwalder, Dan Torop Thanks! (and sorry if I forgot to mention someone) docs/libcurl/curl_multi_fdset.3 +1 −5 Original line number Diff line number Diff line Loading @@ -16,13 +16,9 @@ CURLMcode curl_multi_fdset(CURLM *multi_handle, .SH DESCRIPTION This function extracts file descriptor information from a given multi_handle. libcurl returns its fd_set sets. The application can use these to select() on. The \fIcurl_multi_perform(3)\fI function should be called as soon as one on. The \fIcurl_multi_perform(3)\fP function should be called as soon as one of them are ready to be read from or written to. NOTE that once this call is made, you must not remove the sets you point to, as libcurl will need to be able to read them. It needs them after select() calls, to know if certain sockets are readable or writable. You should also be aware that when doing select(), you should consider using a rather small (single-digit number of seconds) timeout and call \fIcurl_multi_perform\fP regularly - even if no activity has been seen on the Loading lib/transfer.c +0 −14 Original line number Diff line number Diff line Loading @@ -464,7 +464,6 @@ CURLcode Curl_readwrite(struct connectdata *conn, k->write_after_100_header = FALSE; k->keepon |= KEEP_WRITE; k->wkeepfd = k->writefd; } } else Loading Loading @@ -1192,7 +1191,6 @@ CURLcode Curl_readwrite(struct connectdata *conn, go into the Expect: 100 state and await such a header */ k->wait100_after_headers = FALSE; /* headers sent */ k->write_after_100_header = TRUE; /* wait for the header */ k->wkeepfd = k->writefd; /* set the keeper variable */ k->keepon &= ~KEEP_WRITE; /* disable writing */ k->start100 = Curl_tvnow(); /* timeout count starts now */ didwhat &= ~KEEP_WRITE; /* we didn't write anything actually */ Loading Loading @@ -1336,7 +1334,6 @@ CURLcode Curl_readwrite(struct connectdata *conn, /* we've waited long enough, continue anyway */ k->write_after_100_header = FALSE; k->keepon |= KEEP_WRITE; k->wkeepfd = k->writefd; } } } Loading Loading @@ -1463,12 +1460,6 @@ CURLcode Curl_readwrite_init(struct connectdata *conn) k->keepon |= KEEP_WRITE; } } /* get these in backup variables to be able to restore them on each lap in the select() loop */ k->rkeepfd = k->readfd; k->wkeepfd = k->writefd; } return CURLE_OK; Loading @@ -1491,7 +1482,6 @@ void Curl_single_fdset(struct connectdata *conn, if(conn->keep.keepon & KEEP_READ) { FD_SET(conn->sockfd, read_fd_set); *max_fd = conn->sockfd; conn->keep.readfdp = read_fd_set; /* store the address of the set */ } if(conn->keep.keepon & KEEP_WRITE) { FD_SET(conn->writesockfd, write_fd_set); Loading @@ -1500,7 +1490,6 @@ void Curl_single_fdset(struct connectdata *conn, to compare it nicely */ if((int)conn->writesockfd > *max_fd) *max_fd = conn->writesockfd; conn->keep.writefdp = write_fd_set; /* store the address of the set */ } /* we don't use exceptions, only touch that one to prevent compiler warnings! */ Loading Loading @@ -1543,9 +1532,6 @@ Transfer(struct connectdata *conn) if(!conn->bits.getheader && conn->bits.no_body) return CURLE_OK; k->writefdp = &k->writefd; /* store the address of the set */ k->readfdp = &k->readfd; /* store the address of the set */ while (!done) { int fd_read; int fd_write; Loading lib/urldata.h +0 −9 Original line number Diff line number Diff line Loading @@ -410,15 +410,6 @@ struct Curl_transfer_keeper { char *uploadbuf; curl_socket_t maxfd; /* pointers to the actual descriptors we check */ fd_set *readfdp; fd_set *writefdp; /* the file descriptors to play with */ fd_set readfd; fd_set writefd; fd_set rkeepfd; fd_set wkeepfd; int keepon; bool upload_done; /* set to TRUE when doing chunked transfer-encoding upload Loading Loading
CHANGES +3 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,9 @@ Daniel (11 January 2005) - Dan Torop cleaned up a few no longer used variables from David Phillips' select() overhaul fix. - Cyrill Osterwalder posted a detailed analysis about a bug that occurs when using a custom Host: header and curl fails to send a request on a re-used persistent connection and thus creates a new connection and resends it. It Loading
RELEASE-NOTES +1 −1 Original line number Diff line number Diff line Loading @@ -36,6 +36,6 @@ advice from friends like these: Dan Fandrich, Peter Pentchev, Marcin Konicki, Rune Kleveland, David Shaw, Werner Koch, Gisle Vanem, Alex Neblett, Kai Sommerfeld, Marty Kuhrt, Hzhijun, Pavel Orehov, Bruce Mitchener, Cyrill Osterwalder Hzhijun, Pavel Orehov, Bruce Mitchener, Cyrill Osterwalder, Dan Torop Thanks! (and sorry if I forgot to mention someone)
docs/libcurl/curl_multi_fdset.3 +1 −5 Original line number Diff line number Diff line Loading @@ -16,13 +16,9 @@ CURLMcode curl_multi_fdset(CURLM *multi_handle, .SH DESCRIPTION This function extracts file descriptor information from a given multi_handle. libcurl returns its fd_set sets. The application can use these to select() on. The \fIcurl_multi_perform(3)\fI function should be called as soon as one on. The \fIcurl_multi_perform(3)\fP function should be called as soon as one of them are ready to be read from or written to. NOTE that once this call is made, you must not remove the sets you point to, as libcurl will need to be able to read them. It needs them after select() calls, to know if certain sockets are readable or writable. You should also be aware that when doing select(), you should consider using a rather small (single-digit number of seconds) timeout and call \fIcurl_multi_perform\fP regularly - even if no activity has been seen on the Loading
lib/transfer.c +0 −14 Original line number Diff line number Diff line Loading @@ -464,7 +464,6 @@ CURLcode Curl_readwrite(struct connectdata *conn, k->write_after_100_header = FALSE; k->keepon |= KEEP_WRITE; k->wkeepfd = k->writefd; } } else Loading Loading @@ -1192,7 +1191,6 @@ CURLcode Curl_readwrite(struct connectdata *conn, go into the Expect: 100 state and await such a header */ k->wait100_after_headers = FALSE; /* headers sent */ k->write_after_100_header = TRUE; /* wait for the header */ k->wkeepfd = k->writefd; /* set the keeper variable */ k->keepon &= ~KEEP_WRITE; /* disable writing */ k->start100 = Curl_tvnow(); /* timeout count starts now */ didwhat &= ~KEEP_WRITE; /* we didn't write anything actually */ Loading Loading @@ -1336,7 +1334,6 @@ CURLcode Curl_readwrite(struct connectdata *conn, /* we've waited long enough, continue anyway */ k->write_after_100_header = FALSE; k->keepon |= KEEP_WRITE; k->wkeepfd = k->writefd; } } } Loading Loading @@ -1463,12 +1460,6 @@ CURLcode Curl_readwrite_init(struct connectdata *conn) k->keepon |= KEEP_WRITE; } } /* get these in backup variables to be able to restore them on each lap in the select() loop */ k->rkeepfd = k->readfd; k->wkeepfd = k->writefd; } return CURLE_OK; Loading @@ -1491,7 +1482,6 @@ void Curl_single_fdset(struct connectdata *conn, if(conn->keep.keepon & KEEP_READ) { FD_SET(conn->sockfd, read_fd_set); *max_fd = conn->sockfd; conn->keep.readfdp = read_fd_set; /* store the address of the set */ } if(conn->keep.keepon & KEEP_WRITE) { FD_SET(conn->writesockfd, write_fd_set); Loading @@ -1500,7 +1490,6 @@ void Curl_single_fdset(struct connectdata *conn, to compare it nicely */ if((int)conn->writesockfd > *max_fd) *max_fd = conn->writesockfd; conn->keep.writefdp = write_fd_set; /* store the address of the set */ } /* we don't use exceptions, only touch that one to prevent compiler warnings! */ Loading Loading @@ -1543,9 +1532,6 @@ Transfer(struct connectdata *conn) if(!conn->bits.getheader && conn->bits.no_body) return CURLE_OK; k->writefdp = &k->writefd; /* store the address of the set */ k->readfdp = &k->readfd; /* store the address of the set */ while (!done) { int fd_read; int fd_write; Loading
lib/urldata.h +0 −9 Original line number Diff line number Diff line Loading @@ -410,15 +410,6 @@ struct Curl_transfer_keeper { char *uploadbuf; curl_socket_t maxfd; /* pointers to the actual descriptors we check */ fd_set *readfdp; fd_set *writefdp; /* the file descriptors to play with */ fd_set readfd; fd_set writefd; fd_set rkeepfd; fd_set wkeepfd; int keepon; bool upload_done; /* set to TRUE when doing chunked transfer-encoding upload Loading