58 lines
1.3 KiB
Tcl
Executable File
58 lines
1.3 KiB
Tcl
Executable File
package require TclCurl
|
|
|
|
|
|
proc Perform {multiHandle} {
|
|
if {[catch {$multiHandle active} activeTransfers]} {
|
|
puts "Error checking active transfers: $activeTransfers"
|
|
return -1
|
|
}
|
|
if {[catch {$multiHandle perform} running]} {
|
|
puts "Error: $running"
|
|
return 1
|
|
}
|
|
return $running
|
|
}
|
|
|
|
proc StartTransfer {multiHandle} {
|
|
while {1==1} {
|
|
set runningTransfers [Perform $multiHandle]
|
|
if {$runningTransfers>0} {
|
|
after 500
|
|
} else {
|
|
break
|
|
}
|
|
}
|
|
}
|
|
|
|
puts "We create and configure the easy handles"
|
|
|
|
set curlEasyHandle1 [curl::init]
|
|
set curlEasyHandle2 [curl::init]
|
|
|
|
$curlEasyHandle1 configure -url http://127.0.0.1/~andres/ -file index.html
|
|
$curlEasyHandle2 configure -url http://127.0.0.1/ -file index2.html
|
|
|
|
puts "Creating the multi handle"
|
|
|
|
set curlMultiHandle [curl::multiinit]
|
|
|
|
puts "Adding easy handles to the multi one"
|
|
|
|
$curlMultiHandle addhandle $curlEasyHandle1
|
|
$curlMultiHandle addhandle $curlEasyHandle2
|
|
|
|
puts "We start the transfer"
|
|
|
|
StartTransfer $curlMultiHandle
|
|
|
|
puts "Transfer done, cleanning up"
|
|
|
|
$curlMultiHandle removehandle $curlEasyHandle1
|
|
$curlMultiHandle removehandle $curlEasyHandle2
|
|
|
|
$curlMultiHandle cleanup
|
|
$curlEasyHandle1 cleanup
|
|
$curlEasyHandle2 cleanup
|
|
|
|
|