1/* 2 * Rexx/CURL sample program to mimic getright; a download program 3 * with RESUME support 4 * Arguments: 5 * source: protocol://location/file.ext 6 * destination: directory 7 */ 8Call RxFuncAdd 'CurlLoadFuncs', 'rexxcurl', 'CurlLoadFuncs' 9Call CurlLoadFuncs 10 11url = 'https://www.networking4all.com/' 12 13curl = CurlInit() 14If curl \= '' Then 15 Do 16 msg = 'We are running' CurlVariable('VERSION') 17 Say Copies( '*', Length( msg ) ) 18 Say msg 19 Say Copies( '*', Length( msg ) ) 20 Say 21 22 Call CurlSetopt curl, 'URL', url 23 If curlerror.intcode \= 0 Then Call Abort 'Error setting URL option' 24 25 Call CurlSetopt curl, 'SSLVERIFYPEER', 0 26 If curlerror.intcode \= 0 Then Call Abort 'Error setting SSLVERIFYPEER option' 27 28 Call CurlSetopt curl, 'SSLVERIFYHOST', 0 29 If curlerror.intcode \= 0 Then Call Abort 'Error setting SSLVERIFYHOST option' 30 31 Call CurlSetopt curl, 'CERTINFO', 1 32 If curlerror.intcode \= 0 Then Call Abort 'Error setting CERTINFO option' 33 34 Call CurlSetopt curl, 'OUTSTEM', 'junk.' 35 If curlerror.intcode \= 0 Then Call Abort 'Error setting OUTSTEM option' 36 37 Call CurlPerform curl 38 If curlerror.intcode \= 0 Then Call Abort 'Error getting source of' url 39 40 Call CurlGetInfo curl, 'CERTINFO', 'CERT.' 41 If curlerror.intcode \= 0 Then Call Abort 'Error getting CERTINFO from' url 42 43 Do i = 1 To cert.0 44 Say 'Certificate ('i'):' cert.i 45 End 46 /* 47 * Cleanup the connection 48 */ 49 Call CurlCLeanup curl 50 End 51Call CurlDropFuncs 'UNLOAD' 52Return 0 53 54WriteCallback: 55Parse Arg one, two, three 56say one';'two';'three 57Return 0 58 59Abort: Procedure Expose curlerror. 60Parse Arg msg 61Say msg 62If curlerror.curlcode \= 0 Then Say 'cURL error:' curlerror.curlcode '-' curlerror.curlerrm 63Else Say 'RexxCURL error:' curlerror.intcode '-' curlerror.interrm 64Call CurlCLeanup curl 65Call CurlDropFuncs 'UNLOAD' 66Exit 1 67