Hey guys,
downloading pages from exisiting servers works just fine now.
But if i try to connnect to host that refuses the connection
like: "http://127.0.0.1/" the multi handle blocks again.
this is what its doing:
add easy to multi stack
curl::mulit - onCurlTimer: set new timer -> 1 ms
finished add easy to multi stack
new request easy handle: 00529128
timer called by asio
Hostname was NOT found in DNS cache
open socket (by curl): 144
Trying 127.0.0.1...
Adding handle: conn: 0x533688
Adding handle: send: 0
Adding handle: recv: 0
Curl_addHandleToPipeline: length: 1
- Conn 0 (0x533688) send_pipe: 1, recv_pipe: 0
start async: action 2
curl::mulit - onCurlTimer: set new timer -> 224 ms
timer called by asio
timeout_ms <= 0
timer called by asio
my async_write wont get fired because im not connected nor does a
timeout gets triggered.
I also tried the "curl-asio" library and its example you mentiond. It
has the same bug.
Same problems occures if i connection to a host that dont write anything.
like "ncat -l -p 80"
Is this asios fault because i wont report an error if i try to write to
an unconnected socket?
Greetings
stuxxn
On 2/25/2014 12:54 PM, Bram de Jong wrote:
This might also be interesting...
https://github.com/mologie/curl-asio
- bram
On 2/25/2014 12:37 PM, Thomas Sanchez wrote:
http://curl.haxx.se/mail/lib-2014-02/0232.html :)
2014-02-25 10:12 GMT+01:00 stuxxn <[email protected]>:
Hi,
at the monent i try to use the mulit handle with boost asio.
I followed the example "asiohiper" and it works with with about 1 or
2 urls
at the same time. But if i add about 10 urls to one multi handle and
call
ioService.run() it wont finish.
I logged all the calls it does and there is one strange thing:
A normal flow looks in the log like this:
Line 140: new request easy handle: 00B30068
Line 174: is socket ready? (by curl):
(easy|sock|acction):00B30068 -
428 - 2
Line 246: is socket ready? (by curl):
(easy|sock|acction):00B30068 -
428 - 1
Line 356: is socket ready? (by curl):
(easy|sock|acction):00B30068 -
428 - 4
Line 359: curl::multi - checkMultiInfo: handle finished:
00B30068 -
0
Line 361: removing easy handle reqeust: 00B30068
And the one that doesnt finish:
Line 147: new request easy handle: 00B39080
Line 171: is socket ready? (by curl):
(easy|sock|acction):00B39080 -
424 - 2
Line 236: is socket ready? (by curl):
(easy|sock|acction):00B39080 -
424 - 1
Line 170: open socket (by curl): 424
Line 171: is socket ready? (by curl):
(easy|sock|acction):00B39080 -
424 - 2
Line 172: start async: 424
Line 234: end async: 424 - 2
Line 235: sock action available: 424 - 2
Line 236: is socket ready? (by curl):
(easy|sock|acction):00B39080 -
424 - 1
Line 237: start async: 424
Line 343: end async: 424 - 1
Line 344: sock action available: 424 - 1
It looks like curl cant read the whole page with one read but wont
ask me to
test for another read readiness.
I also enabled verbose on the easy handles and only thing i can see
there is
that the unfinished easy handle doesnt write the whole page.
Does someone know why it wont ask for read readiness again if i cant
read
the whole page?
Greetings
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette: http://curl.haxx.se/mail/etiquette.html
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette: http://curl.haxx.se/mail/etiquette.html