@@ -300,6 +300,8 @@ Function _runWorker($para : Text)->$result : Object
300300 $path := "curl"
301301 End if
302302
303+ $path + = " -f" // failure report
304+
303305 If ((This:C1470 ._noProgress # Null:C1517) && (This:C1470 ._noProgress ))
304306 $path + = " --no-progress-meter"
305307 End if
@@ -322,6 +324,7 @@ Function _runWorker($para : Text)->$result : Object
322324 $command := $path + " " + $para
323325 $old := Method called on error:C704
324326 ON ERR CALL:C155 (Formula:C1597 (ErrorHandler).source )
327+ $workerpara .variables := New object:C1471 ("userCancel" ; "false" )
325328 This:C1470 ._worker := 4D:C1709 .SystemWorker .new ($command ; $workerpara )
326329 $worker := This:C1470 ._worker
327330
@@ -330,20 +333,25 @@ Function _runWorker($para : Text)->$result : Object
330333 $result := New object:C1471 ("data" ; "async" ; "success" ; True:C214 )
331334 Else
332335 $worker .wait ()
333- If (($ worker . responseError # Null:C1517) && ($worker .responseError # "" ))
334- $result := New object:C1471 ("responseError" ; $worker . responseError ; "success" ; False:C215 )
335- $pos := Position :C15 ( "curl: " ; $worker . responseError ; * )
336- If ($pos > 0 )
337- $result . error := Replace string :C233 ( Substring :C12 ( $worker .responseError ; $pos + 6 ); Char :C90 ( 10 ); "" )
338- Else
339- If (($ worker . response # Null:C1517) && ($ worker . response # "")) // seems not to be an error, sometime curl set's process bar in error and result in response.
340- $result := New object :C1471 ( "data" ; $worker .response ; "success" ; True:C214 )
336+ If (Bool :C1537 ($worker .userCancel ))
337+ $result := New object:C1471 ("responseError" ; "Cancel by user" ; "success" ; False:C215 )
338+ Else
339+ If (($ worker . responseError # Null:C1517) && ($ worker . responseError # "") )
340+ $result := New object :C1471 ( "responseError" ; $worker .responseError ; "success" ; False:C215 )
341+ $pos := Position :C15 ( "curl: " ; $worker . responseError ; * )
342+ If ($pos > 0)
343+ $result . error := Replace string :C233 ( Substring :C12 ( $worker .responseError ; $pos + 6 ); Char :C90 ( 10 ); "" )
341344 Else
342- $result := New object:C1471 ("data" ; $worker .responseError ; "success" ; True:C214 )
345+ // seems not to be an error, curl set's process bar in error and no result in response.
346+ If ($worker .response # "")
347+ $result := New object:C1471 ("data" ; $worker .response ; "success" ; True:C214 )
348+ Else
349+ $result := New object:C1471 ("data" ; $worker .responseError ; "success" ; True:C214 )
350+ End if
343351 End if
352+ Else
353+ $result := New object:C1471 ("data" ; $worker .response ; "success" ; True:C214 )
344354 End if
345- Else
346- $result := New object:C1471 ("data" ; $worker .response ; "success" ; True:C214 )
347355 End if
348356 End if
349357 Else
0 commit comments