cURL / Mailing Lists / curl-library / Single Mail

curl-library

RE: "pull" aspect of multi interface not quite working properly

From: Allen Pulsifer <pulsifer3_at_comcast.net>
Date: Sat, 23 Jun 2007 19:43:59 -0400

diff -u attached and enclosed.

Just as a reminder, it does not address the issue of curl_multi_perform()
needing to return CURLM_CALL_MULTI_PERFORM when it returns without reading
the socket a second time.

--- c:\sources\curl-7.16.2\lib/multi.c 2007-06-21 16:48:32.622025600 -0400
+++ ./multi.c 2007-06-21 15:42:14.086676100 -0400
@@ -1359,7 +1359,7 @@
       }
     }
 
- } while (easy->easy_handle->change.url_changed);
+ } while (0);
 
   if ((CURLM_STATE_COMPLETED == easy->state) && !easy->msg) {
     if(easy->easy_handle->dns.hostcachetype == HCACHE_MULTI) {
--- c:\sources\curl-7.16.2\lib/transfer.c 2007-06-21
14:53:58.324866600 -0400
+++ ./transfer.c 2007-06-21 20:30:43.358113600 -0400
@@ -342,7 +342,7 @@
        the stream was rewound (in which case we have data in a
        buffer) */
     if((k->keepon & KEEP_READ) &&
- ((select_res & CSELECT_IN) || conn->bits.stream_was_rewound)) {
+ ((select_res & CSELECT_IN) || conn->bits.stream_was_rewound) ||
data_pending(conn)) {
       /* read */
       bool is_empty_data = FALSE;
 
@@ -1344,7 +1344,7 @@
           k->keepon &= ~KEEP_READ;
         }
 
- } while(data_pending(conn));
+ } while(0);
 
     } /* if( read from socket ) */

Received on 2007-06-24