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