annotate libphobos/src/etc/c/curl.d @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
145
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2 This is an interface to the libcurl library.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
3
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
4 Converted to D from curl headers by $(LINK2 http://www.digitalmars.com/d/2.0/htod.html, htod) and
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
5 cleaned up by Jonas Drewsen (jdrewsen)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
6
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
7 Windows x86 note:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
8 A DMD compatible libcurl static library can be downloaded from the dlang.org
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
9 $(LINK2 http://dlang.org/download.html, download page).
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
10 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
11
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
12 /* **************************************************************************
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
13 * _ _ ____ _
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
14 * Project ___| | | | _ \| |
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
15 * / __| | | | |_) | |
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
16 * | (__| |_| | _ <| |___
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
17 * \___|\___/|_| \_\_____|
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
18 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
19
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
20 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
21 * Copyright (C) 1998 - 2010, Daniel Stenberg, &lt;daniel@haxx.se&gt;, et al.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
22 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
23 * This software is licensed as described in the file COPYING, which
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
24 * you should have received as part of this distribution. The terms
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
25 * are also available at $(LINK http://curl.haxx.se/docs/copyright.html).
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
26 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
27 * You may opt to use, copy, modify, merge, publish, distribute and/or sell
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
28 * copies of the Software, and permit persons to whom the Software is
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
29 * furnished to do so, under the terms of the COPYING file.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
30 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
31 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
32 * KIND, either express or implied.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
33 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
34 ***************************************************************************/
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
35
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
36 module etc.c.curl;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
37
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
38 import core.stdc.config;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
39 import core.stdc.time;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
40 import std.socket;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
41
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
42 // linux
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
43 import core.sys.posix.sys.socket;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
44
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
45 //
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
46 // LICENSE FROM CURL HEADERS
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
47 //
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
48
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
49 /** This is the global package copyright */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
50 enum LIBCURL_COPYRIGHT = "1996 - 2010 Daniel Stenberg, <daniel@haxx.se>.";
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
51
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
52 /** This is the version number of the libcurl package from which this header
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
53 file origins: */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
54 enum LIBCURL_VERSION = "7.21.4";
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
55
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
56 /** The numeric version number is also available "in parts" by using these
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
57 constants */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
58 enum LIBCURL_VERSION_MAJOR = 7;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
59 /// ditto
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
60 enum LIBCURL_VERSION_MINOR = 21;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
61 /// ditto
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
62 enum LIBCURL_VERSION_PATCH = 4;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
63
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
64 /** This is the numeric version of the libcurl version number, meant for easier
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
65 parsing and comparions by programs. The LIBCURL_VERSION_NUM define will
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
66 always follow this syntax:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
67
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
68 0xXXYYZZ
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
69
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
70 Where XX, YY and ZZ are the main version, release and patch numbers in
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
71 hexadecimal (using 8 bits each). All three numbers are always represented
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
72 using two digits. 1.2 would appear as "0x010200" while version 9.11.7
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
73 appears as "0x090b07".
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
74
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
75 This 6-digit (24 bits) hexadecimal number does not show pre-release number,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
76 and it is always a greater number in a more recent release. It makes
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
77 comparisons with greater than and less than work.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
78 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
79
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
80 enum LIBCURL_VERSION_NUM = 0x071504;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
81
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
82 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
83 * This is the date and time when the full source package was created. The
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
84 * timestamp is not stored in git, as the timestamp is properly set in the
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
85 * tarballs by the maketgz script.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
86 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
87 * The format of the date should follow this template:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
88 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
89 * "Mon Feb 12 11:35:33 UTC 2007"
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
90 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
91 enum LIBCURL_TIMESTAMP = "Thu Feb 17 12:19:40 UTC 2011";
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
92
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
93 /** Data type definition of curl_off_t.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
94 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
95 * jdrewsen - Always 64bit signed and that is what long is in D.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
96 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
97 * Comment below is from curlbuild.h:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
98 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
99 * NOTE 2:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
100 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
101 * For any given platform/compiler curl_off_t must be typedef'ed to a
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
102 * 64-bit wide signed integral data type. The width of this data type
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
103 * must remain constant and independent of any possible large file
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
104 * support settings.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
105 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
106 * As an exception to the above, curl_off_t shall be typedef'ed to a
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
107 * 32-bit wide signed integral data type if there is no 64-bit type.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
108 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
109 alias curl_off_t = long;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
110
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
111 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
112 alias CURL = void;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
113
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
114 /// jdrewsen - Get socket alias from std.socket
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
115 alias curl_socket_t = socket_t;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
116
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
117 /// jdrewsen - Would like to get socket error constant from std.socket by it is private atm.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
118 version (Windows)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
119 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
120 import core.sys.windows.windows, core.sys.windows.winsock2;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
121 enum CURL_SOCKET_BAD = SOCKET_ERROR;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
122 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
123 version (Posix) enum CURL_SOCKET_BAD = -1;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
124
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
125 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
126 extern (C) struct curl_httppost
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
127 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
128 curl_httppost *next; /** next entry in the list */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
129 char *name; /** pointer to allocated name */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
130 c_long namelength; /** length of name length */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
131 char *contents; /** pointer to allocated data contents */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
132 c_long contentslength; /** length of contents field */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
133 char *buffer; /** pointer to allocated buffer contents */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
134 c_long bufferlength; /** length of buffer field */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
135 char *contenttype; /** Content-Type */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
136 curl_slist *contentheader; /** list of extra headers for this form */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
137 curl_httppost *more; /** if one field name has more than one
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
138 file, this link should link to following
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
139 files */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
140 c_long flags; /** as defined below */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
141 char *showfilename; /** The file name to show. If not set, the
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
142 actual file name will be used (if this
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
143 is a file part) */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
144 void *userp; /** custom pointer used for
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
145 HTTPPOST_CALLBACK posts */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
146 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
147
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
148 enum HTTPPOST_FILENAME = 1; /** specified content is a file name */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
149 enum HTTPPOST_READFILE = 2; /** specified content is a file name */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
150 enum HTTPPOST_PTRNAME = 4; /** name is only stored pointer
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
151 do not free in formfree */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
152 enum HTTPPOST_PTRCONTENTS = 8; /** contents is only stored pointer
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
153 do not free in formfree */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
154 enum HTTPPOST_BUFFER = 16; /** upload file from buffer */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
155 enum HTTPPOST_PTRBUFFER = 32; /** upload file from pointer contents */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
156 enum HTTPPOST_CALLBACK = 64; /** upload file contents by using the
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
157 regular read callback to get the data
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
158 and pass the given pointer as custom
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
159 pointer */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
160
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
161 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
162 alias curl_progress_callback = int function(void *clientp, double dltotal, double dlnow, double ultotal, double ulnow);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
163
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
164 /** Tests have proven that 20K is a very bad buffer size for uploads on
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
165 Windows, while 16K for some odd reason performed a lot better.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
166 We do the ifndef check to allow this value to easier be changed at build
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
167 time for those who feel adventurous. The practical minimum is about
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
168 400 bytes since libcurl uses a buffer of this size as a scratch area
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
169 (unrelated to network send operations). */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
170 enum CURL_MAX_WRITE_SIZE = 16_384;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
171
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
172 /** The only reason to have a max limit for this is to avoid the risk of a bad
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
173 server feeding libcurl with a never-ending header that will cause reallocs
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
174 infinitely */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
175 enum CURL_MAX_HTTP_HEADER = (100*1024);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
176
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
177
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
178 /** This is a magic return code for the write callback that, when returned,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
179 will signal libcurl to pause receiving on the current transfer. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
180 enum CURL_WRITEFUNC_PAUSE = 0x10000001;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
181
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
182 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
183 alias curl_write_callback = size_t function(char *buffer, size_t size, size_t nitems, void *outstream);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
184
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
185 /** enumeration of file types */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
186 enum CurlFileType {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
187 file, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
188 directory, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
189 symlink, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
190 device_block, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
191 device_char, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
192 namedpipe, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
193 socket, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
194 door, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
195 unknown /** is possible only on Sun Solaris now */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
196 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
197
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
198 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
199 alias curlfiletype = int;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
200
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
201 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
202 enum CurlFInfoFlagKnown {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
203 filename = 1, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
204 filetype = 2, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
205 time = 4, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
206 perm = 8, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
207 uid = 16, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
208 gid = 32, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
209 size = 64, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
210 hlinkcount = 128 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
211 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
212
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
213 /** Content of this structure depends on information which is known and is
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
214 achievable (e.g. by FTP LIST parsing). Please see the url_easy_setopt(3) man
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
215 page for callbacks returning this structure -- some fields are mandatory,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
216 some others are optional. The FLAG field has special meaning. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
217
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
218
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
219 /** If some of these fields is not NULL, it is a pointer to b_data. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
220 extern (C) struct _N2
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
221 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
222 char *time; ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
223 char *perm; ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
224 char *user; ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
225 char *group; ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
226 char *target; /** pointer to the target filename of a symlink */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
227 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
228
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
229 /** Content of this structure depends on information which is known and is
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
230 achievable (e.g. by FTP LIST parsing). Please see the url_easy_setopt(3) man
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
231 page for callbacks returning this structure -- some fields are mandatory,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
232 some others are optional. The FLAG field has special meaning. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
233 extern (C) struct curl_fileinfo
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
234 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
235 char *filename; ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
236 curlfiletype filetype; ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
237 time_t time; ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
238 uint perm; ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
239 int uid; ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
240 int gid; ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
241 curl_off_t size; ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
242 c_long hardlinks; ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
243 _N2 strings; ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
244 uint flags; ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
245 char *b_data; ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
246 size_t b_size; ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
247 size_t b_used; ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
248 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
249
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
250 /** return codes for CURLOPT_CHUNK_BGN_FUNCTION */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
251 enum CurlChunkBgnFunc {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
252 ok = 0, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
253 fail = 1, /** tell the lib to end the task */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
254 skip = 2 /** skip this chunk over */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
255 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
256
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
257 /** if splitting of data transfer is enabled, this callback is called before
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
258 download of an individual chunk started. Note that parameter "remains" works
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
259 only for FTP wildcard downloading (for now), otherwise is not used */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
260 alias curl_chunk_bgn_callback = c_long function(void *transfer_info, void *ptr, int remains);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
261
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
262 /** return codes for CURLOPT_CHUNK_END_FUNCTION */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
263 enum CurlChunkEndFunc {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
264 ok = 0, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
265 fail = 1, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
266 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
267 /** If splitting of data transfer is enabled this callback is called after
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
268 download of an individual chunk finished.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
269 Note! After this callback was set then it have to be called FOR ALL chunks.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
270 Even if downloading of this chunk was skipped in CHUNK_BGN_FUNC.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
271 This is the reason why we don't need "transfer_info" parameter in this
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
272 callback and we are not interested in "remains" parameter too. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
273 alias curl_chunk_end_callback = c_long function(void *ptr);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
274
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
275 /** return codes for FNMATCHFUNCTION */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
276 enum CurlFnMAtchFunc {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
277 match = 0, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
278 nomatch = 1, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
279 fail = 2 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
280 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
281
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
282 /** callback type for wildcard downloading pattern matching. If the
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
283 string matches the pattern, return CURL_FNMATCHFUNC_MATCH value, etc. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
284 alias curl_fnmatch_callback = int function(void *ptr, in char *pattern, in char *string);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
285
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
286 /// seek whence...
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
287 enum CurlSeekPos {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
288 set, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
289 current, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
290 end ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
291 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
292
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
293 /** These are the return codes for the seek callbacks */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
294 enum CurlSeek {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
295 ok, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
296 fail, /** fail the entire transfer */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
297 cantseek /** tell libcurl seeking can't be done, so
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
298 libcurl might try other means instead */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
299 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
300
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
301 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
302 alias curl_seek_callback = int function(void *instream, curl_off_t offset, int origin);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
303
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
304 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
305 enum CurlReadFunc {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
306 /** This is a return code for the read callback that, when returned, will
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
307 signal libcurl to immediately abort the current transfer. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
308 abort = 0x10000000,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
309
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
310 /** This is a return code for the read callback that, when returned,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
311 will const signal libcurl to pause sending data on the current
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
312 transfer. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
313 pause = 0x10000001
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
314 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
315
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
316 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
317 alias curl_read_callback = size_t function(char *buffer, size_t size, size_t nitems, void *instream);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
318
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
319 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
320 enum CurlSockType {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
321 ipcxn, /** socket created for a specific IP connection */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
322 last /** never use */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
323 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
324 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
325 alias curlsocktype = int;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
326
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
327 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
328 alias curl_sockopt_callback = int function(void *clientp, curl_socket_t curlfd, curlsocktype purpose);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
329
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
330 /** addrlen was a socklen_t type before 7.18.0 but it turned really
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
331 ugly and painful on the systems that lack this type */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
332 extern (C) struct curl_sockaddr
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
333 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
334 int family; ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
335 int socktype; ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
336 int protocol; ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
337 uint addrlen; /** addrlen was a socklen_t type before 7.18.0 but it
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
338 turned really ugly and painful on the systems that
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
339 lack this type */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
340 sockaddr addr; ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
341 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
342
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
343 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
344 alias curl_opensocket_callback = curl_socket_t function(void *clientp, curlsocktype purpose, curl_sockaddr *address);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
345
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
346 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
347 enum CurlIoError
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
348 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
349 ok, /** I/O operation successful */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
350 unknowncmd, /** command was unknown to callback */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
351 failrestart, /** failed to restart the read */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
352 last /** never use */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
353 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
354 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
355 alias curlioerr = int;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
356
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
357 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
358 enum CurlIoCmd {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
359 nop, /** command was unknown to callback */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
360 restartread, /** failed to restart the read */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
361 last, /** never use */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
362 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
363 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
364 alias curliocmd = int;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
365
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
366 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
367 alias curl_ioctl_callback = curlioerr function(CURL *handle, int cmd, void *clientp);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
368
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
369 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
370 * The following typedef's are signatures of malloc, free, realloc, strdup and
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
371 * calloc respectively. Function pointers of these types can be passed to the
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
372 * curl_global_init_mem() function to set user defined memory management
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
373 * callback routines.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
374 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
375 alias curl_malloc_callback = void* function(size_t size);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
376 /// ditto
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
377 alias curl_free_callback = void function(void *ptr);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
378 /// ditto
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
379 alias curl_realloc_callback = void* function(void *ptr, size_t size);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
380 /// ditto
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
381 alias curl_strdup_callback = char * function(in char *str);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
382 /// ditto
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
383 alias curl_calloc_callback = void* function(size_t nmemb, size_t size);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
384
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
385 /** the kind of data that is passed to information_callback*/
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
386 enum CurlCallbackInfo {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
387 text, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
388 header_in, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
389 header_out, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
390 data_in, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
391 data_out, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
392 ssl_data_in, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
393 ssl_data_out, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
394 end ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
395 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
396 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
397 alias curl_infotype = int;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
398
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
399 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
400 alias curl_debug_callback =
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
401 int function(CURL *handle, /** the handle/transfer this concerns */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
402 curl_infotype type, /** what kind of data */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
403 char *data, /** points to the data */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
404 size_t size, /** size of the data pointed to */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
405 void *userptr /** whatever the user please */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
406 );
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
407
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
408 /** All possible error codes from all sorts of curl functions. Future versions
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
409 may return other values, stay prepared.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
410
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
411 Always add new return codes last. Never *EVER* remove any. The return
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
412 codes must remain the same!
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
413 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
414 enum CurlError
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
415 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
416 ok, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
417 unsupported_protocol, /** 1 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
418 failed_init, /** 2 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
419 url_malformat, /** 3 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
420 not_built_in, /** 4 - [was obsoleted in August 2007 for
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
421 7.17.0, reused in April 2011 for 7.21.5] */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
422 couldnt_resolve_proxy, /** 5 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
423 couldnt_resolve_host, /** 6 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
424 couldnt_connect, /** 7 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
425 ftp_weird_server_reply, /** 8 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
426 remote_access_denied, /** 9 a service was denied by the server
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
427 due to lack of access - when login fails
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
428 this is not returned. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
429 obsolete10, /** 10 - NOT USED */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
430 ftp_weird_pass_reply, /** 11 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
431 obsolete12, /** 12 - NOT USED */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
432 ftp_weird_pasv_reply, /** 13 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
433 ftp_weird_227_format, /** 14 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
434 ftp_cant_get_host, /** 15 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
435 obsolete16, /** 16 - NOT USED */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
436 ftp_couldnt_set_type, /** 17 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
437 partial_file, /** 18 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
438 ftp_couldnt_retr_file, /** 19 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
439 obsolete20, /** 20 - NOT USED */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
440 quote_error, /** 21 - quote command failure */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
441 http_returned_error, /** 22 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
442 write_error, /** 23 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
443 obsolete24, /** 24 - NOT USED */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
444 upload_failed, /** 25 - failed upload "command" */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
445 read_error, /** 26 - couldn't open/read from file */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
446 out_of_memory, /** 27 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
447 /** Note: CURLE_OUT_OF_MEMORY may sometimes indicate a conversion error
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
448 instead of a memory allocation error if CURL_DOES_CONVERSIONS
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
449 is defined
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
450 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
451 operation_timedout, /** 28 - the timeout time was reached */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
452 obsolete29, /** 29 - NOT USED */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
453 ftp_port_failed, /** 30 - FTP PORT operation failed */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
454 ftp_couldnt_use_rest, /** 31 - the REST command failed */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
455 obsolete32, /** 32 - NOT USED */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
456 range_error, /** 33 - RANGE "command" didn't work */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
457 http_post_error, /** 34 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
458 ssl_connect_error, /** 35 - wrong when connecting with SSL */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
459 bad_download_resume, /** 36 - couldn't resume download */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
460 file_couldnt_read_file, /** 37 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
461 ldap_cannot_bind, /** 38 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
462 ldap_search_failed, /** 39 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
463 obsolete40, /** 40 - NOT USED */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
464 function_not_found, /** 41 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
465 aborted_by_callback, /** 42 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
466 bad_function_argument, /** 43 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
467 obsolete44, /** 44 - NOT USED */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
468 interface_failed, /** 45 - CURLOPT_INTERFACE failed */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
469 obsolete46, /** 46 - NOT USED */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
470 too_many_redirects, /** 47 - catch endless re-direct loops */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
471 unknown_option, /** 48 - User specified an unknown option */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
472 telnet_option_syntax, /** 49 - Malformed telnet option */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
473 obsolete50, /** 50 - NOT USED */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
474 peer_failed_verification, /** 51 - peer's certificate or fingerprint
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
475 wasn't verified fine */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
476 got_nothing, /** 52 - when this is a specific error */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
477 ssl_engine_notfound, /** 53 - SSL crypto engine not found */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
478 ssl_engine_setfailed, /** 54 - can not set SSL crypto engine as default */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
479 send_error, /** 55 - failed sending network data */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
480 recv_error, /** 56 - failure in receiving network data */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
481 obsolete57, /** 57 - NOT IN USE */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
482 ssl_certproblem, /** 58 - problem with the local certificate */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
483 ssl_cipher, /** 59 - couldn't use specified cipher */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
484 ssl_cacert, /** 60 - problem with the CA cert (path?) */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
485 bad_content_encoding, /** 61 - Unrecognized transfer encoding */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
486 ldap_invalid_url, /** 62 - Invalid LDAP URL */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
487 filesize_exceeded, /** 63 - Maximum file size exceeded */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
488 use_ssl_failed, /** 64 - Requested FTP SSL level failed */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
489 send_fail_rewind, /** 65 - Sending the data requires a rewind that failed */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
490 ssl_engine_initfailed, /** 66 - failed to initialise ENGINE */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
491 login_denied, /** 67 - user, password or similar was not accepted and we failed to login */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
492 tftp_notfound, /** 68 - file not found on server */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
493 tftp_perm, /** 69 - permission problem on server */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
494 remote_disk_full, /** 70 - out of disk space on server */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
495 tftp_illegal, /** 71 - Illegal TFTP operation */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
496 tftp_unknownid, /** 72 - Unknown transfer ID */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
497 remote_file_exists, /** 73 - File already exists */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
498 tftp_nosuchuser, /** 74 - No such user */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
499 conv_failed, /** 75 - conversion failed */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
500 conv_reqd, /** 76 - caller must register conversion
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
501 callbacks using curl_easy_setopt options
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
502 CURLOPT_CONV_FROM_NETWORK_FUNCTION,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
503 CURLOPT_CONV_TO_NETWORK_FUNCTION, and
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
504 CURLOPT_CONV_FROM_UTF8_FUNCTION */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
505 ssl_cacert_badfile, /** 77 - could not load CACERT file, missing or wrong format */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
506 remote_file_not_found, /** 78 - remote file not found */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
507 ssh, /** 79 - error from the SSH layer, somewhat
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
508 generic so the error message will be of
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
509 interest when this has happened */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
510 ssl_shutdown_failed, /** 80 - Failed to shut down the SSL connection */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
511 again, /** 81 - socket is not ready for send/recv,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
512 wait till it's ready and try again (Added
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
513 in 7.18.2) */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
514 ssl_crl_badfile, /** 82 - could not load CRL file, missing or wrong format (Added in 7.19.0) */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
515 ssl_issuer_error, /** 83 - Issuer check failed. (Added in 7.19.0) */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
516 ftp_pret_failed, /** 84 - a PRET command failed */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
517 rtsp_cseq_error, /** 85 - mismatch of RTSP CSeq numbers */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
518 rtsp_session_error, /** 86 - mismatch of RTSP Session Identifiers */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
519 ftp_bad_file_list, /** 87 - unable to parse FTP file list */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
520 chunk_failed, /** 88 - chunk callback reported error */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
521 curl_last /** never use! */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
522 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
523 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
524 alias CURLcode = int;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
525
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
526 /** This prototype applies to all conversion callbacks */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
527 alias curl_conv_callback = CURLcode function(char *buffer, size_t length);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
528
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
529 /** actually an OpenSSL SSL_CTX */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
530 alias curl_ssl_ctx_callback =
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
531 CURLcode function(CURL *curl, /** easy handle */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
532 void *ssl_ctx, /** actually an OpenSSL SSL_CTX */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
533 void *userptr
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
534 );
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
535
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
536 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
537 enum CurlProxy {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
538 http, /** added in 7.10, new in 7.19.4 default is to use CONNECT HTTP/1.1 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
539 http_1_0, /** added in 7.19.4, force to use CONNECT HTTP/1.0 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
540 socks4 = 4, /** support added in 7.15.2, enum existed already in 7.10 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
541 socks5 = 5, /** added in 7.10 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
542 socks4a = 6, /** added in 7.18.0 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
543 socks5_hostname =7 /** Use the SOCKS5 protocol but pass along the
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
544 host name rather than the IP address. added
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
545 in 7.18.0 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
546 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
547 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
548 alias curl_proxytype = int;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
549
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
550 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
551 enum CurlAuth : long {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
552 none = 0,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
553 basic = 1, /** Basic (default) */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
554 digest = 2, /** Digest */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
555 gssnegotiate = 4, /** GSS-Negotiate */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
556 ntlm = 8, /** NTLM */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
557 digest_ie = 16, /** Digest with IE flavour */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
558 only = 2_147_483_648, /** used together with a single other
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
559 type to force no auth or just that
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
560 single type */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
561 any = -17, /* (~CURLAUTH_DIGEST_IE) */ /** all fine types set */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
562 anysafe = -18 /* (~(CURLAUTH_BASIC|CURLAUTH_DIGEST_IE)) */ ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
563 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
564
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
565 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
566 enum CurlSshAuth {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
567 any = -1, /** all types supported by the server */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
568 none = 0, /** none allowed, silly but complete */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
569 publickey = 1, /** public/private key files */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
570 password = 2, /** password */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
571 host = 4, /** host key files */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
572 keyboard = 8, /** keyboard interactive */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
573 default_ = -1 // CURLSSH_AUTH_ANY;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
574 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
575 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
576 enum CURL_ERROR_SIZE = 256;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
577 /** points to a zero-terminated string encoded with base64
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
578 if len is zero, otherwise to the "raw" data */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
579 enum CurlKHType
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
580 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
581 unknown, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
582 rsa1, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
583 rsa, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
584 dss ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
585 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
586 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
587 extern (C) struct curl_khkey
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
588 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
589 const(char) *key; /** points to a zero-terminated string encoded with base64
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
590 if len is zero, otherwise to the "raw" data */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
591 size_t len; ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
592 CurlKHType keytype; ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
593 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
594
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
595 /** this is the set of return values expected from the curl_sshkeycallback
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
596 callback */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
597 enum CurlKHStat {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
598 fine_add_to_file, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
599 fine, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
600 reject, /** reject the connection, return an error */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
601 defer, /** do not accept it, but we can't answer right now so
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
602 this causes a CURLE_DEFER error but otherwise the
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
603 connection will be left intact etc */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
604 last /** not for use, only a marker for last-in-list */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
605 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
606
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
607 /** this is the set of status codes pass in to the callback */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
608 enum CurlKHMatch {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
609 ok, /** match */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
610 mismatch, /** host found, key mismatch! */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
611 missing, /** no matching host/key found */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
612 last /** not for use, only a marker for last-in-list */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
613 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
614
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
615 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
616 alias curl_sshkeycallback =
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
617 int function(CURL *easy, /** easy handle */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
618 curl_khkey *knownkey, /** known */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
619 curl_khkey *foundkey, /** found */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
620 CurlKHMatch m, /** libcurl's view on the keys */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
621 void *clientp /** custom pointer passed from app */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
622 );
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
623
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
624 /** parameter for the CURLOPT_USE_SSL option */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
625 enum CurlUseSSL {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
626 none, /** do not attempt to use SSL */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
627 tryssl, /** try using SSL, proceed anyway otherwise */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
628 control, /** SSL for the control connection or fail */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
629 all, /** SSL for all communication or fail */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
630 last /** not an option, never use */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
631 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
632 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
633 alias curl_usessl = int;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
634
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
635 /** parameter for the CURLOPT_FTP_SSL_CCC option */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
636 enum CurlFtpSSL {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
637 ccc_none, /** do not send CCC */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
638 ccc_passive, /** Let the server initiate the shutdown */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
639 ccc_active, /** Initiate the shutdown */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
640 ccc_last /** not an option, never use */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
641 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
642 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
643 alias curl_ftpccc = int;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
644
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
645 /** parameter for the CURLOPT_FTPSSLAUTH option */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
646 enum CurlFtpAuth {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
647 defaultauth, /** let libcurl decide */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
648 ssl, /** use "AUTH SSL" */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
649 tls, /** use "AUTH TLS" */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
650 last /** not an option, never use */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
651 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
652 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
653 alias curl_ftpauth = int;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
654
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
655 /** parameter for the CURLOPT_FTP_CREATE_MISSING_DIRS option */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
656 enum CurlFtp {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
657 create_dir_none, /** do NOT create missing dirs! */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
658 create_dir, /** (FTP/SFTP) if CWD fails, try MKD and then CWD again if MKD
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
659 succeeded, for SFTP this does similar magic */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
660 create_dir_retry, /** (FTP only) if CWD fails, try MKD and then CWD again even if MKD
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
661 failed! */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
662 create_dir_last /** not an option, never use */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
663 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
664 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
665 alias curl_ftpcreatedir = int;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
666
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
667 /** parameter for the CURLOPT_FTP_FILEMETHOD option */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
668 enum CurlFtpMethod {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
669 defaultmethod, /** let libcurl pick */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
670 multicwd, /** single CWD operation for each path part */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
671 nocwd, /** no CWD at all */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
672 singlecwd, /** one CWD to full dir, then work on file */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
673 last /** not an option, never use */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
674 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
675 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
676 alias curl_ftpmethod = int;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
677
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
678 /** CURLPROTO_ defines are for the CURLOPT_*PROTOCOLS options */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
679 enum CurlProto {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
680 http = 1, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
681 https = 2, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
682 ftp = 4, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
683 ftps = 8, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
684 scp = 16, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
685 sftp = 32, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
686 telnet = 64, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
687 ldap = 128, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
688 ldaps = 256, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
689 dict = 512, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
690 file = 1024, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
691 tftp = 2048, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
692 imap = 4096, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
693 imaps = 8192, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
694 pop3 = 16_384, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
695 pop3s = 32_768, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
696 smtp = 65_536, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
697 smtps = 131_072, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
698 rtsp = 262_144, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
699 rtmp = 524_288, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
700 rtmpt = 1_048_576, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
701 rtmpe = 2_097_152, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
702 rtmpte = 4_194_304, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
703 rtmps = 8_388_608, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
704 rtmpts = 16_777_216, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
705 gopher = 33_554_432, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
706 all = -1 /** enable everything */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
707 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
708
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
709 /** long may be 32 or 64 bits, but we should never depend on anything else
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
710 but 32 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
711 enum CURLOPTTYPE_LONG = 0;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
712 /// ditto
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
713 enum CURLOPTTYPE_OBJECTPOINT = 10_000;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
714 /// ditto
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
715 enum CURLOPTTYPE_FUNCTIONPOINT = 20_000;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
716
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
717 /// ditto
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
718 enum CURLOPTTYPE_OFF_T = 30_000;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
719 /** name is uppercase CURLOPT_$(LT)name$(GT),
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
720 type is one of the defined CURLOPTTYPE_$(LT)type$(GT)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
721 number is unique identifier */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
722
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
723 /** The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
724 alias LONG = CURLOPTTYPE_LONG;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
725 /// ditto
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
726 alias OBJECTPOINT = CURLOPTTYPE_OBJECTPOINT;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
727 /// ditto
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
728 alias FUNCTIONPOINT = CURLOPTTYPE_FUNCTIONPOINT;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
729
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
730 /// ditto
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
731 alias OFF_T = CURLOPTTYPE_OFF_T;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
732
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
733 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
734 enum CurlOption {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
735 /** This is the FILE * or void * the regular output should be written to. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
736 file = 10_001,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
737 /** The full URL to get/put */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
738 url,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
739 /** Port number to connect to, if other than default. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
740 port = 3,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
741 /** Name of proxy to use. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
742 proxy = 10_004,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
743 /** "name:password" to use when fetching. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
744 userpwd,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
745 /** "name:password" to use with proxy. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
746 proxyuserpwd,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
747 /** Range to get, specified as an ASCII string. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
748 range,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
749 /** not used */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
750
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
751 /** Specified file stream to upload from (use as input): */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
752 infile = 10_009,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
753 /** Buffer to receive error messages in, must be at least CURL_ERROR_SIZE
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
754 * bytes big. If this is not used, error messages go to stderr instead: */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
755 errorbuffer,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
756 /** Function that will be called to store the output (instead of fwrite). The
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
757 * parameters will use fwrite() syntax, make sure to follow them. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
758 writefunction = 20_011,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
759 /** Function that will be called to read the input (instead of fread). The
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
760 * parameters will use fread() syntax, make sure to follow them. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
761 readfunction,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
762 /** Time-out the read operation after this amount of seconds */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
763 timeout = 13,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
764 /** If the CURLOPT_INFILE is used, this can be used to inform libcurl about
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
765 * how large the file being sent really is. That allows better error
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
766 * checking and better verifies that the upload was successful. -1 means
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
767 * unknown size.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
768 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
769 * For large file support, there is also a _LARGE version of the key
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
770 * which takes an off_t type, allowing platforms with larger off_t
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
771 * sizes to handle larger files. See below for INFILESIZE_LARGE.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
772 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
773 infilesize,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
774 /** POST static input fields. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
775 postfields = 10_015,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
776 /** Set the referrer page (needed by some CGIs) */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
777 referer,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
778 /** Set the FTP PORT string (interface name, named or numerical IP address)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
779 Use i.e '-' to use default address. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
780 ftpport,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
781 /** Set the User-Agent string (examined by some CGIs) */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
782 useragent,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
783 /** If the download receives less than "low speed limit" bytes/second
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
784 * during "low speed time" seconds, the operations is aborted.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
785 * You could i.e if you have a pretty high speed connection, abort if
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
786 * it is less than 2000 bytes/sec during 20 seconds.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
787 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
788
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
789 /** Set the "low speed limit" */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
790 low_speed_limit = 19,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
791 /** Set the "low speed time" */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
792 low_speed_time,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
793 /** Set the continuation offset.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
794 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
795 * Note there is also a _LARGE version of this key which uses
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
796 * off_t types, allowing for large file offsets on platforms which
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
797 * use larger-than-32-bit off_t's. Look below for RESUME_FROM_LARGE.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
798 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
799 resume_from,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
800 /** Set cookie in request: */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
801 cookie = 10_022,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
802 /** This points to a linked list of headers, struct curl_slist kind */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
803 httpheader,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
804 /** This points to a linked list of post entries, struct curl_httppost */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
805 httppost,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
806 /** name of the file keeping your private SSL-certificate */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
807 sslcert,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
808 /** password for the SSL or SSH private key */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
809 keypasswd,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
810 /** send TYPE parameter? */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
811 crlf = 27,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
812 /** send linked-list of QUOTE commands */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
813 quote = 10_028,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
814 /** send FILE * or void * to store headers to, if you use a callback it
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
815 is simply passed to the callback unmodified */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
816 writeheader,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
817 /** point to a file to read the initial cookies from, also enables
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
818 "cookie awareness" */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
819 cookiefile = 10_031,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
820 /** What version to specifically try to use.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
821 See CURL_SSLVERSION defines below. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
822 sslversion = 32,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
823 /** What kind of HTTP time condition to use, see defines */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
824 timecondition,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
825 /** Time to use with the above condition. Specified in number of seconds
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
826 since 1 Jan 1970 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
827 timevalue,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
828 /* 35 = OBSOLETE */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
829
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
830 /** Custom request, for customizing the get command like
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
831 HTTP: DELETE, TRACE and others
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
832 FTP: to use a different list command
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
833 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
834 customrequest = 10_036,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
835 /** HTTP request, for odd commands like DELETE, TRACE and others */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
836 stderr,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
837 /* 38 is not used */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
838
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
839 /** send linked-list of post-transfer QUOTE commands */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
840 postquote = 10_039,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
841 /** Pass a pointer to string of the output using full variable-replacement
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
842 as described elsewhere. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
843 writeinfo,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
844 verbose = 41, /** talk a lot */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
845 header, /** throw the header out too */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
846 noprogress, /** shut off the progress meter */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
847 nobody, /** use HEAD to get http document */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
848 failonerror, /** no output on http error codes >= 300 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
849 upload, /** this is an upload */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
850 post, /** HTTP POST method */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
851 dirlistonly, /** return bare names when listing directories */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
852 append = 50, /** Append instead of overwrite on upload! */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
853 /** Specify whether to read the user+password from the .netrc or the URL.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
854 * This must be one of the CURL_NETRC_* enums below. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
855 netrc,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
856 followlocation, /** use Location: Luke! */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
857 transfertext, /** transfer data in text/ASCII format */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
858 put, /** HTTP PUT */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
859 /* 55 = OBSOLETE */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
860
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
861 /** Function that will be called instead of the internal progress display
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
862 * function. This function should be defined as the curl_progress_callback
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
863 * prototype defines. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
864 progressfunction = 20_056,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
865 /** Data passed to the progress callback */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
866 progressdata = 10_057,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
867 /** We want the referrer field set automatically when following locations */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
868 autoreferer = 58,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
869 /** Port of the proxy, can be set in the proxy string as well with:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
870 "[host]:[port]" */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
871 proxyport,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
872 /** size of the POST input data, if strlen() is not good to use */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
873 postfieldsize,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
874 /** tunnel non-http operations through a HTTP proxy */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
875 httpproxytunnel,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
876 /** Set the interface string to use as outgoing network interface */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
877 intrface = 10_062,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
878 /** Set the krb4/5 security level, this also enables krb4/5 awareness. This
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
879 * is a string, 'clear', 'safe', 'confidential' or 'private'. If the string
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
880 * is set but doesn't match one of these, 'private' will be used. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
881 krblevel,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
882 /** Set if we should verify the peer in ssl handshake, set 1 to verify. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
883 ssl_verifypeer = 64,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
884 /** The CApath or CAfile used to validate the peer certificate
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
885 this option is used only if SSL_VERIFYPEER is true */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
886 cainfo = 10_065,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
887 /* 66 = OBSOLETE */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
888 /* 67 = OBSOLETE */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
889
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
890 /** Maximum number of http redirects to follow */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
891 maxredirs = 68,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
892 /** Pass a long set to 1 to get the date of the requested document (if
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
893 possible)! Pass a zero to shut it off. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
894 filetime,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
895 /** This points to a linked list of telnet options */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
896 telnetoptions = 10_070,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
897 /** Max amount of cached alive connections */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
898 maxconnects = 71,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
899 /** What policy to use when closing connections when the cache is filled
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
900 up */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
901 closepolicy,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
902 /* 73 = OBSOLETE */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
903
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
904 /** Set to explicitly use a new connection for the upcoming transfer.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
905 Do not use this unless you're absolutely sure of this, as it makes the
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
906 operation slower and is less friendly for the network. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
907 fresh_connect = 74,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
908 /** Set to explicitly forbid the upcoming transfer's connection to be re-used
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
909 when done. Do not use this unless you're absolutely sure of this, as it
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
910 makes the operation slower and is less friendly for the network. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
911 forbid_reuse,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
912 /** Set to a file name that contains random data for libcurl to use to
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
913 seed the random engine when doing SSL connects. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
914 random_file = 10_076,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
915 /** Set to the Entropy Gathering Daemon socket pathname */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
916 egdsocket,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
917 /** Time-out connect operations after this amount of seconds, if connects
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
918 are OK within this time, then fine... This only aborts the connect
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
919 phase. [Only works on unix-style/SIGALRM operating systems] */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
920 connecttimeout = 78,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
921 /** Function that will be called to store headers (instead of fwrite). The
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
922 * parameters will use fwrite() syntax, make sure to follow them. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
923 headerfunction = 20_079,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
924 /** Set this to force the HTTP request to get back to GET. Only really usable
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
925 if POST, PUT or a custom request have been used first.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
926 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
927 httpget = 80,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
928 /** Set if we should verify the Common name from the peer certificate in ssl
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
929 * handshake, set 1 to check existence, 2 to ensure that it matches the
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
930 * provided hostname. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
931 ssl_verifyhost,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
932 /** Specify which file name to write all known cookies in after completed
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
933 operation. Set file name to "-" (dash) to make it go to stdout. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
934 cookiejar = 10_082,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
935 /** Specify which SSL ciphers to use */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
936 ssl_cipher_list,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
937 /** Specify which HTTP version to use! This must be set to one of the
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
938 CURL_HTTP_VERSION* enums set below. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
939 http_version = 84,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
940 /** Specifically switch on or off the FTP engine's use of the EPSV command. By
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
941 default, that one will always be attempted before the more traditional
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
942 PASV command. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
943 ftp_use_epsv,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
944 /** type of the file keeping your SSL-certificate ("DER", "PEM", "ENG") */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
945 sslcerttype = 10_086,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
946 /** name of the file keeping your private SSL-key */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
947 sslkey,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
948 /** type of the file keeping your private SSL-key ("DER", "PEM", "ENG") */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
949 sslkeytype,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
950 /** crypto engine for the SSL-sub system */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
951 sslengine,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
952 /** set the crypto engine for the SSL-sub system as default
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
953 the param has no meaning...
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
954 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
955 sslengine_default = 90,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
956 /** Non-zero value means to use the global dns cache */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
957 dns_use_global_cache,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
958 /** DNS cache timeout */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
959 dns_cache_timeout,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
960 /** send linked-list of pre-transfer QUOTE commands */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
961 prequote = 10_093,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
962 /** set the debug function */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
963 debugfunction = 20_094,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
964 /** set the data for the debug function */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
965 debugdata = 10_095,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
966 /** mark this as start of a cookie session */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
967 cookiesession = 96,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
968 /** The CApath directory used to validate the peer certificate
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
969 this option is used only if SSL_VERIFYPEER is true */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
970 capath = 10_097,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
971 /** Instruct libcurl to use a smaller receive buffer */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
972 buffersize = 98,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
973 /** Instruct libcurl to not use any signal/alarm handlers, even when using
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
974 timeouts. This option is useful for multi-threaded applications.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
975 See libcurl-the-guide for more background information. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
976 nosignal,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
977 /** Provide a CURLShare for mutexing non-ts data */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
978 share = 10_100,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
979 /** indicates type of proxy. accepted values are CURLPROXY_HTTP (default),
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
980 CURLPROXY_SOCKS4, CURLPROXY_SOCKS4A and CURLPROXY_SOCKS5. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
981 proxytype = 101,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
982 /** Set the Accept-Encoding string. Use this to tell a server you would like
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
983 the response to be compressed. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
984 encoding = 10_102,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
985 /** Set pointer to private data */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
986 private_opt,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
987 /** Set aliases for HTTP 200 in the HTTP Response header */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
988 http200aliases,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
989 /** Continue to send authentication (user+password) when following locations,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
990 even when hostname changed. This can potentially send off the name
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
991 and password to whatever host the server decides. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
992 unrestricted_auth = 105,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
993 /** Specifically switch on or off the FTP engine's use of the EPRT command ( it
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
994 also disables the LPRT attempt). By default, those ones will always be
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
995 attempted before the good old traditional PORT command. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
996 ftp_use_eprt,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
997 /** Set this to a bitmask value to enable the particular authentications
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
998 methods you like. Use this in combination with CURLOPT_USERPWD.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
999 Note that setting multiple bits may cause extra network round-trips. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1000 httpauth,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1001 /** Set the ssl context callback function, currently only for OpenSSL ssl_ctx
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1002 in second argument. The function must be matching the
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1003 curl_ssl_ctx_callback proto. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1004 ssl_ctx_function = 20_108,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1005 /** Set the userdata for the ssl context callback function's third
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1006 argument */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1007 ssl_ctx_data = 10_109,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1008 /** FTP Option that causes missing dirs to be created on the remote server.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1009 In 7.19.4 we introduced the convenience enums for this option using the
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1010 CURLFTP_CREATE_DIR prefix.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1011 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1012 ftp_create_missing_dirs = 110,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1013 /** Set this to a bitmask value to enable the particular authentications
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1014 methods you like. Use this in combination with CURLOPT_PROXYUSERPWD.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1015 Note that setting multiple bits may cause extra network round-trips. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1016 proxyauth,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1017 /** FTP option that changes the timeout, in seconds, associated with
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1018 getting a response. This is different from transfer timeout time and
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1019 essentially places a demand on the FTP server to acknowledge commands
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1020 in a timely manner. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1021 ftp_response_timeout,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1022 /** Set this option to one of the CURL_IPRESOLVE_* defines (see below) to
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1023 tell libcurl to resolve names to those IP versions only. This only has
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1024 affect on systems with support for more than one, i.e IPv4 _and_ IPv6. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1025 ipresolve,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1026 /** Set this option to limit the size of a file that will be downloaded from
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1027 an HTTP or FTP server.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1028
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1029 Note there is also _LARGE version which adds large file support for
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1030 platforms which have larger off_t sizes. See MAXFILESIZE_LARGE below. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1031 maxfilesize,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1032 /** See the comment for INFILESIZE above, but in short, specifies
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1033 * the size of the file being uploaded. -1 means unknown.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1034 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1035 infilesize_large = 30_115,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1036 /** Sets the continuation offset. There is also a LONG version of this;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1037 * look above for RESUME_FROM.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1038 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1039 resume_from_large,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1040 /** Sets the maximum size of data that will be downloaded from
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1041 * an HTTP or FTP server. See MAXFILESIZE above for the LONG version.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1042 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1043 maxfilesize_large,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1044 /** Set this option to the file name of your .netrc file you want libcurl
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1045 to parse (using the CURLOPT_NETRC option). If not set, libcurl will do
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1046 a poor attempt to find the user's home directory and check for a .netrc
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1047 file in there. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1048 netrc_file = 10_118,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1049 /** Enable SSL/TLS for FTP, pick one of:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1050 CURLFTPSSL_TRY - try using SSL, proceed anyway otherwise
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1051 CURLFTPSSL_CONTROL - SSL for the control connection or fail
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1052 CURLFTPSSL_ALL - SSL for all communication or fail
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1053 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1054 use_ssl = 119,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1055 /** The _LARGE version of the standard POSTFIELDSIZE option */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1056 postfieldsize_large = 30_120,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1057 /** Enable/disable the TCP Nagle algorithm */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1058 tcp_nodelay = 121,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1059 /* 122 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1060 /* 123 OBSOLETE. Gone in 7.16.0 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1061 /* 124 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1062 /* 125 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1063 /* 126 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1064 /* 127 OBSOLETE. Gone in 7.16.0 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1065 /* 128 OBSOLETE. Gone in 7.16.0 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1066
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1067 /** When FTP over SSL/TLS is selected (with CURLOPT_USE_SSL), this option
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1068 can be used to change libcurl's default action which is to first try
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1069 "AUTH SSL" and then "AUTH TLS" in this order, and proceed when a OK
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1070 response has been received.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1071
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1072 Available parameters are:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1073 CURLFTPAUTH_DEFAULT - let libcurl decide
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1074 CURLFTPAUTH_SSL - try "AUTH SSL" first, then TLS
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1075 CURLFTPAUTH_TLS - try "AUTH TLS" first, then SSL
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1076 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1077 ftpsslauth = 129,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1078 ioctlfunction = 20_130, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1079 ioctldata = 10_131, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1080 /* 132 OBSOLETE. Gone in 7.16.0 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1081 /* 133 OBSOLETE. Gone in 7.16.0 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1082
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1083 /** zero terminated string for pass on to the FTP server when asked for
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1084 "account" info */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1085 ftp_account = 10_134,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1086 /** feed cookies into cookie engine */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1087 cookielist,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1088 /** ignore Content-Length */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1089 ignore_content_length = 136,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1090 /** Set to non-zero to skip the IP address received in a 227 PASV FTP server
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1091 response. Typically used for FTP-SSL purposes but is not restricted to
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1092 that. libcurl will then instead use the same IP address it used for the
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1093 control connection. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1094 ftp_skip_pasv_ip,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1095 /** Select "file method" to use when doing FTP, see the curl_ftpmethod
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1096 above. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1097 ftp_filemethod,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1098 /** Local port number to bind the socket to */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1099 localport,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1100 /** Number of ports to try, including the first one set with LOCALPORT.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1101 Thus, setting it to 1 will make no additional attempts but the first.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1102 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1103 localportrange,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1104 /** no transfer, set up connection and let application use the socket by
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1105 extracting it with CURLINFO_LASTSOCKET */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1106 connect_only,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1107 /** Function that will be called to convert from the
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1108 network encoding (instead of using the iconv calls in libcurl) */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1109 conv_from_network_function = 20_142,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1110 /** Function that will be called to convert to the
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1111 network encoding (instead of using the iconv calls in libcurl) */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1112 conv_to_network_function,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1113 /** Function that will be called to convert from UTF8
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1114 (instead of using the iconv calls in libcurl)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1115 Note that this is used only for SSL certificate processing */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1116 conv_from_utf8_function,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1117 /** If the connection proceeds too quickly then need to slow it down */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1118 /** */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1119 /** limit-rate: maximum number of bytes per second to send or receive */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1120 max_send_speed_large = 30_145,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1121 max_recv_speed_large, /// ditto
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1122 /** Pointer to command string to send if USER/PASS fails. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1123 ftp_alternative_to_user = 10_147,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1124 /** callback function for setting socket options */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1125 sockoptfunction = 20_148,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1126 sockoptdata = 10_149,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1127 /** set to 0 to disable session ID re-use for this transfer, default is
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1128 enabled (== 1) */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1129 ssl_sessionid_cache = 150,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1130 /** allowed SSH authentication methods */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1131 ssh_auth_types,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1132 /** Used by scp/sftp to do public/private key authentication */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1133 ssh_public_keyfile = 10_152,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1134 ssh_private_keyfile,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1135 /** Send CCC (Clear Command Channel) after authentication */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1136 ftp_ssl_ccc = 154,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1137 /** Same as TIMEOUT and CONNECTTIMEOUT, but with ms resolution */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1138 timeout_ms,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1139 connecttimeout_ms,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1140 /** set to zero to disable the libcurl's decoding and thus pass the raw body
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1141 data to the application even when it is encoded/compressed */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1142 http_transfer_decoding,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1143 http_content_decoding, /// ditto
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1144 /** Permission used when creating new files and directories on the remote
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1145 server for protocols that support it, SFTP/SCP/FILE */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1146 new_file_perms,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1147 new_directory_perms, /// ditto
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1148 /** Set the behaviour of POST when redirecting. Values must be set to one
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1149 of CURL_REDIR* defines below. This used to be called CURLOPT_POST301 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1150 postredir,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1151 /** used by scp/sftp to verify the host's public key */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1152 ssh_host_public_key_md5 = 10_162,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1153 /** Callback function for opening socket (instead of socket(2)). Optionally,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1154 callback is able change the address or refuse to connect returning
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1155 CURL_SOCKET_BAD. The callback should have type
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1156 curl_opensocket_callback */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1157 opensocketfunction = 20_163,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1158 opensocketdata = 10_164, /// ditto
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1159 /** POST volatile input fields. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1160 copypostfields,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1161 /** set transfer mode (;type=$(LT)a|i$(GT)) when doing FTP via an HTTP proxy */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1162 proxy_transfer_mode = 166,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1163 /** Callback function for seeking in the input stream */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1164 seekfunction = 20_167,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1165 seekdata = 10_168, /// ditto
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1166 /** CRL file */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1167 crlfile,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1168 /** Issuer certificate */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1169 issuercert,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1170 /** (IPv6) Address scope */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1171 address_scope = 171,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1172 /** Collect certificate chain info and allow it to get retrievable with
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1173 CURLINFO_CERTINFO after the transfer is complete. (Unfortunately) only
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1174 working with OpenSSL-powered builds. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1175 certinfo,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1176 /** "name" and "pwd" to use when fetching. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1177 username = 10_173,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1178 password, /// ditto
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1179 /** "name" and "pwd" to use with Proxy when fetching. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1180 proxyusername,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1181 proxypassword, /// ditto
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1182 /** Comma separated list of hostnames defining no-proxy zones. These should
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1183 match both hostnames directly, and hostnames within a domain. For
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1184 example, local.com will match local.com and www.local.com, but NOT
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1185 notlocal.com or www.notlocal.com. For compatibility with other
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1186 implementations of this, .local.com will be considered to be the same as
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1187 local.com. A single * is the only valid wildcard, and effectively
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1188 disables the use of proxy. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1189 noproxy,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1190 /** block size for TFTP transfers */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1191 tftp_blksize = 178,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1192 /** Socks Service */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1193 socks5_gssapi_service = 10_179,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1194 /** Socks Service */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1195 socks5_gssapi_nec = 180,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1196 /** set the bitmask for the protocols that are allowed to be used for the
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1197 transfer, which thus helps the app which takes URLs from users or other
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1198 external inputs and want to restrict what protocol(s) to deal
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1199 with. Defaults to CURLPROTO_ALL. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1200 protocols,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1201 /** set the bitmask for the protocols that libcurl is allowed to follow to,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1202 as a subset of the CURLOPT_PROTOCOLS ones. That means the protocol needs
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1203 to be set in both bitmasks to be allowed to get redirected to. Defaults
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1204 to all protocols except FILE and SCP. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1205 redir_protocols,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1206 /** set the SSH knownhost file name to use */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1207 ssh_knownhosts = 10_183,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1208 /** set the SSH host key callback, must point to a curl_sshkeycallback
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1209 function */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1210 ssh_keyfunction = 20_184,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1211 /** set the SSH host key callback custom pointer */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1212 ssh_keydata = 10_185,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1213 /** set the SMTP mail originator */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1214 mail_from,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1215 /** set the SMTP mail receiver(s) */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1216 mail_rcpt,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1217 /** FTP: send PRET before PASV */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1218 ftp_use_pret = 188,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1219 /** RTSP request method (OPTIONS, SETUP, PLAY, etc...) */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1220 rtsp_request,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1221 /** The RTSP session identifier */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1222 rtsp_session_id = 10_190,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1223 /** The RTSP stream URI */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1224 rtsp_stream_uri,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1225 /** The Transport: header to use in RTSP requests */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1226 rtsp_transport,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1227 /** Manually initialize the client RTSP CSeq for this handle */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1228 rtsp_client_cseq = 193,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1229 /** Manually initialize the server RTSP CSeq for this handle */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1230 rtsp_server_cseq,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1231 /** The stream to pass to INTERLEAVEFUNCTION. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1232 interleavedata = 10_195,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1233 /** Let the application define a custom write method for RTP data */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1234 interleavefunction = 20_196,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1235 /** Turn on wildcard matching */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1236 wildcardmatch = 197,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1237 /** Directory matching callback called before downloading of an
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1238 individual file (chunk) started */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1239 chunk_bgn_function = 20_198,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1240 /** Directory matching callback called after the file (chunk)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1241 was downloaded, or skipped */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1242 chunk_end_function,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1243 /** Change match (fnmatch-like) callback for wildcard matching */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1244 fnmatch_function,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1245 /** Let the application define custom chunk data pointer */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1246 chunk_data = 10_201,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1247 /** FNMATCH_FUNCTION user pointer */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1248 fnmatch_data,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1249 /** send linked-list of name:port:address sets */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1250 resolve,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1251 /** Set a username for authenticated TLS */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1252 tlsauth_username,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1253 /** Set a password for authenticated TLS */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1254 tlsauth_password,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1255 /** Set authentication type for authenticated TLS */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1256 tlsauth_type,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1257 /** the last unused */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1258 lastentry,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1259
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1260 writedata = file, /// convenient alias
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1261 readdata = infile, /// ditto
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1262 headerdata = writeheader, /// ditto
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1263 rtspheader = httpheader, /// ditto
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1264 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1265 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1266 alias CURLoption = int;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1267 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1268 enum CURLOPT_SERVER_RESPONSE_TIMEOUT = CurlOption.ftp_response_timeout;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1269
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1270 /** Below here follows defines for the CURLOPT_IPRESOLVE option. If a host
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1271 name resolves addresses using more than one IP protocol version, this
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1272 option might be handy to force libcurl to use a specific IP version. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1273 enum CurlIpResolve {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1274 whatever = 0, /** default, resolves addresses to all IP versions that your system allows */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1275 v4 = 1, /** resolve to ipv4 addresses */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1276 v6 = 2 /** resolve to ipv6 addresses */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1277 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1278
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1279 /** three convenient "aliases" that follow the name scheme better */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1280 enum CURLOPT_WRITEDATA = CurlOption.file;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1281 /// ditto
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1282 enum CURLOPT_READDATA = CurlOption.infile;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1283 /// ditto
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1284 enum CURLOPT_HEADERDATA = CurlOption.writeheader;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1285 /// ditto
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1286 enum CURLOPT_RTSPHEADER = CurlOption.httpheader;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1287
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1288 /** These enums are for use with the CURLOPT_HTTP_VERSION option. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1289 enum CurlHttpVersion {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1290 none, /** setting this means we don't care, and that we'd
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1291 like the library to choose the best possible
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1292 for us! */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1293 v1_0, /** please use HTTP 1.0 in the request */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1294 v1_1, /** please use HTTP 1.1 in the request */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1295 last /** *ILLEGAL* http version */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1296 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1297
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1298 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1299 * Public API enums for RTSP requests
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1300 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1301 enum CurlRtspReq {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1302 none, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1303 options, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1304 describe, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1305 announce, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1306 setup, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1307 play, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1308 pause, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1309 teardown, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1310 get_parameter, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1311 set_parameter, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1312 record, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1313 receive, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1314 last ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1315 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1316
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1317 /** These enums are for use with the CURLOPT_NETRC option. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1318 enum CurlNetRcOption {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1319 ignored, /** The .netrc will never be read. This is the default. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1320 optional /** A user:password in the URL will be preferred to one in the .netrc. */,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1321 required, /** A user:password in the URL will be ignored.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1322 * Unless one is set programmatically, the .netrc
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1323 * will be queried. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1324 last ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1325 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1326
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1327 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1328 enum CurlSslVersion {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1329 default_version, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1330 tlsv1, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1331 sslv2, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1332 sslv3, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1333 last /** never use */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1334 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1335
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1336 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1337 enum CurlTlsAuth {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1338 none, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1339 srp, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1340 last /** never use */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1341 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1342
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1343 /** symbols to use with CURLOPT_POSTREDIR.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1344 CURL_REDIR_POST_301 and CURL_REDIR_POST_302 can be bitwise ORed so that
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1345 CURL_REDIR_POST_301 | CURL_REDIR_POST_302 == CURL_REDIR_POST_ALL */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1346 enum CurlRedir {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1347 get_all = 0, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1348 post_301 = 1, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1349 post_302 = 2, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1350 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1351 post_all = (1 | 2) // (CURL_REDIR_POST_301|CURL_REDIR_POST_302);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1352 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1353 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1354 enum CurlTimeCond {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1355 none, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1356 ifmodsince, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1357 ifunmodsince, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1358 lastmod, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1359 last ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1360 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1361 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1362 alias curl_TimeCond = int;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1363
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1364
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1365 /** curl_strequal() and curl_strnequal() are subject for removal in a future
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1366 libcurl, see lib/README.curlx for details */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1367 extern (C) {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1368 int curl_strequal(in char *s1, in char *s2);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1369 /// ditto
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1370 int curl_strnequal(in char *s1, in char *s2, size_t n);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1371 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1372 enum CurlForm {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1373 nothing, /********** the first one is unused ************/
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1374 copyname,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1375 ptrname,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1376 namelength,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1377 copycontents,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1378 ptrcontents,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1379 contentslength,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1380 filecontent,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1381 array,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1382 obsolete,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1383 file,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1384 buffer,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1385 bufferptr,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1386 bufferlength,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1387 contenttype,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1388 contentheader,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1389 filename,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1390 end,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1391 obsolete2,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1392 stream,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1393 lastentry /** the last unused */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1394 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1395 alias CURLformoption = int;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1396
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1397
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1398 /** structure to be used as parameter for CURLFORM_ARRAY */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1399 extern (C) struct curl_forms
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1400 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1401 CURLformoption option; ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1402 const(char) *value; ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1403 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1404
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1405 /** Use this for multipart formpost building
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1406 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1407 * Returns code for curl_formadd()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1408 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1409 * Returns:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1410 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1411 * $(UL
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1412 * $(LI CURL_FORMADD_OK on success )
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1413 * $(LI CURL_FORMADD_MEMORY if the FormInfo allocation fails )
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1414 * $(LI CURL_FORMADD_OPTION_TWICE if one option is given twice for one Form )
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1415 * $(LI CURL_FORMADD_NULL if a null pointer was given for a char )
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1416 * $(LI CURL_FORMADD_MEMORY if the allocation of a FormInfo struct failed )
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1417 * $(LI CURL_FORMADD_UNKNOWN_OPTION if an unknown option was used )
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1418 * $(LI CURL_FORMADD_INCOMPLETE if the some FormInfo is not complete (or error) )
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1419 * $(LI CURL_FORMADD_MEMORY if a curl_httppost struct cannot be allocated )
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1420 * $(LI CURL_FORMADD_MEMORY if some allocation for string copying failed. )
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1421 * $(LI CURL_FORMADD_ILLEGAL_ARRAY if an illegal option is used in an array )
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1422 * )
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1423 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1424 ***************************************************************************/
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1425 enum CurlFormAdd {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1426 ok, /** first, no error */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1427 memory, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1428 option_twice, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1429 null_ptr, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1430 unknown_option, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1431 incomplete, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1432 illegal_array, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1433 disabled, /** libcurl was built with this disabled */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1434 last ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1435 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1436 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1437 alias CURLFORMcode = int;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1438
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1439 extern (C) {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1440
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1441 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1442 * Name: curl_formadd()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1443 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1444 * Description:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1445 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1446 * Pretty advanced function for building multi-part formposts. Each invoke
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1447 * adds one part that together construct a full post. Then use
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1448 * CURLOPT_HTTPPOST to send it off to libcurl.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1449 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1450 CURLFORMcode curl_formadd(curl_httppost **httppost, curl_httppost **last_post,...);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1451
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1452 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1453 * callback function for curl_formget()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1454 * The void *arg pointer will be the one passed as second argument to
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1455 * curl_formget().
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1456 * The character buffer passed to it must not be freed.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1457 * Should return the buffer length passed to it as the argument "len" on
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1458 * success.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1459 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1460 alias curl_formget_callback = size_t function(void *arg, in char *buf, size_t len);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1461
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1462 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1463 * Name: curl_formget()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1464 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1465 * Description:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1466 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1467 * Serialize a curl_httppost struct built with curl_formadd().
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1468 * Accepts a void pointer as second argument which will be passed to
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1469 * the curl_formget_callback function.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1470 * Returns 0 on success.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1471 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1472 int curl_formget(curl_httppost *form, void *arg, curl_formget_callback append);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1473 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1474 * Name: curl_formfree()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1475 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1476 * Description:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1477 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1478 * Free a multipart formpost previously built with curl_formadd().
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1479 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1480 void curl_formfree(curl_httppost *form);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1481
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1482 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1483 * Name: curl_getenv()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1484 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1485 * Description:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1486 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1487 * Returns a malloc()'ed string that MUST be curl_free()ed after usage is
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1488 * complete. DEPRECATED - see lib/README.curlx
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1489 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1490 char * curl_getenv(in char *variable);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1491
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1492 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1493 * Name: curl_version()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1494 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1495 * Description:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1496 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1497 * Returns a static ascii string of the libcurl version.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1498 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1499 char * curl_version();
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1500
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1501 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1502 * Name: curl_easy_escape()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1503 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1504 * Description:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1505 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1506 * Escapes URL strings (converts all letters consider illegal in URLs to their
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1507 * %XX versions). This function returns a new allocated string or NULL if an
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1508 * error occurred.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1509 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1510 char * curl_easy_escape(CURL *handle, in char *string, int length);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1511
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1512 /** the previous version: */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1513 char * curl_escape(in char *string, int length);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1514
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1515
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1516 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1517 * Name: curl_easy_unescape()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1518 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1519 * Description:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1520 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1521 * Unescapes URL encoding in strings (converts all %XX codes to their 8bit
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1522 * versions). This function returns a new allocated string or NULL if an error
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1523 * occurred.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1524 * Conversion Note: On non-ASCII platforms the ASCII %XX codes are
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1525 * converted into the host encoding.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1526 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1527 char * curl_easy_unescape(CURL *handle, in char *string, int length, int *outlength);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1528
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1529 /** the previous version */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1530 char * curl_unescape(in char *string, int length);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1531
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1532 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1533 * Name: curl_free()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1534 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1535 * Description:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1536 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1537 * Provided for de-allocation in the same translation unit that did the
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1538 * allocation. Added in libcurl 7.10
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1539 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1540 void curl_free(void *p);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1541
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1542 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1543 * Name: curl_global_init()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1544 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1545 * Description:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1546 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1547 * curl_global_init() should be invoked exactly once for each application that
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1548 * uses libcurl and before any call of other libcurl functions.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1549 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1550 * This function is not thread-safe!
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1551 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1552 CURLcode curl_global_init(c_long flags);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1553
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1554 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1555 * Name: curl_global_init_mem()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1556 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1557 * Description:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1558 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1559 * curl_global_init() or curl_global_init_mem() should be invoked exactly once
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1560 * for each application that uses libcurl. This function can be used to
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1561 * initialize libcurl and set user defined memory management callback
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1562 * functions. Users can implement memory management routines to check for
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1563 * memory leaks, check for mis-use of the curl library etc. User registered
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1564 * callback routines with be invoked by this library instead of the system
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1565 * memory management routines like malloc, free etc.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1566 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1567 CURLcode curl_global_init_mem(
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1568 c_long flags,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1569 curl_malloc_callback m,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1570 curl_free_callback f,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1571 curl_realloc_callback r,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1572 curl_strdup_callback s,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1573 curl_calloc_callback c
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1574 );
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1575
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1576 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1577 * Name: curl_global_cleanup()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1578 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1579 * Description:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1580 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1581 * curl_global_cleanup() should be invoked exactly once for each application
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1582 * that uses libcurl
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1583 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1584 void curl_global_cleanup();
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1585 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1586
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1587 /** linked-list structure for the CURLOPT_QUOTE option (and other) */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1588 extern (C) {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1589
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1590 struct curl_slist
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1591 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1592 char *data;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1593 curl_slist *next;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1594 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1595
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1596 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1597 * Name: curl_slist_append()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1598 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1599 * Description:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1600 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1601 * Appends a string to a linked list. If no list exists, it will be created
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1602 * first. Returns the new list, after appending.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1603 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1604 curl_slist * curl_slist_append(curl_slist *, in char *);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1605
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1606 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1607 * Name: curl_slist_free_all()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1608 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1609 * Description:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1610 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1611 * free a previously built curl_slist.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1612 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1613 void curl_slist_free_all(curl_slist *);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1614
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1615 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1616 * Name: curl_getdate()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1617 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1618 * Description:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1619 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1620 * Returns the time, in seconds since 1 Jan 1970 of the time string given in
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1621 * the first argument. The time argument in the second parameter is unused
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1622 * and should be set to NULL.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1623 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1624 time_t curl_getdate(char *p, time_t *unused);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1625
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1626 /** info about the certificate chain, only for OpenSSL builds. Asked
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1627 for with CURLOPT_CERTINFO / CURLINFO_CERTINFO */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1628 struct curl_certinfo
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1629 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1630 int num_of_certs; /** number of certificates with information */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1631 curl_slist **certinfo; /** for each index in this array, there's a
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1632 linked list with textual information in the
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1633 format "name: value" */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1634 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1635
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1636 } // extern (C) end
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1637
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1638 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1639 enum CURLINFO_STRING = 0x100000;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1640 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1641 enum CURLINFO_LONG = 0x200000;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1642 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1643 enum CURLINFO_DOUBLE = 0x300000;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1644 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1645 enum CURLINFO_SLIST = 0x400000;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1646 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1647 enum CURLINFO_MASK = 0x0fffff;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1648
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1649 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1650 enum CURLINFO_TYPEMASK = 0xf00000;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1651
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1652 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1653 enum CurlInfo {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1654 none, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1655 effective_url = 1_048_577, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1656 response_code = 2_097_154, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1657 total_time = 3_145_731, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1658 namelookup_time, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1659 connect_time, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1660 pretransfer_time, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1661 size_upload, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1662 size_download, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1663 speed_download, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1664 speed_upload, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1665 header_size = 2_097_163, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1666 request_size, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1667 ssl_verifyresult, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1668 filetime, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1669 content_length_download = 3_145_743, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1670 content_length_upload, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1671 starttransfer_time, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1672 content_type = 1_048_594, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1673 redirect_time = 3_145_747, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1674 redirect_count = 2_097_172, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1675 private_info = 1_048_597, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1676 http_connectcode = 2_097_174, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1677 httpauth_avail, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1678 proxyauth_avail, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1679 os_errno, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1680 num_connects, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1681 ssl_engines = 4_194_331, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1682 cookielist, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1683 lastsocket = 2_097_181, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1684 ftp_entry_path = 1_048_606, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1685 redirect_url, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1686 primary_ip, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1687 appconnect_time = 3_145_761, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1688 certinfo = 4_194_338, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1689 condition_unmet = 2_097_187, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1690 rtsp_session_id = 1_048_612, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1691 rtsp_client_cseq = 2_097_189, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1692 rtsp_server_cseq, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1693 rtsp_cseq_recv, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1694 primary_port, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1695 local_ip = 1_048_617, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1696 local_port = 2_097_194, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1697 /** Fill in new entries below here! */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1698 lastone = 42
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1699 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1700 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1701 alias CURLINFO = int;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1702
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1703 /** CURLINFO_RESPONSE_CODE is the new name for the option previously known as
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1704 CURLINFO_HTTP_CODE */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1705 enum CURLINFO_HTTP_CODE = CurlInfo.response_code;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1706
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1707 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1708 enum CurlClosePolicy {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1709 none, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1710 oldest, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1711 least_recently_used, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1712 least_traffic, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1713 slowest, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1714 callback, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1715 last ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1716 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1717 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1718 alias curl_closepolicy = int;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1719
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1720 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1721 enum CurlGlobal {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1722 ssl = 1, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1723 win32 = 2, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1724 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1725 all = (1 | 2), // (CURL_GLOBAL_SSL|CURL_GLOBAL_WIN32);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1726 nothing = 0, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1727 default_ = (1 | 2) /// all
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1728 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1729
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1730 /******************************************************************************
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1731 * Setup defines, protos etc for the sharing stuff.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1732 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1733
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1734 /** Different data locks for a single share */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1735 enum CurlLockData {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1736 none, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1737 /** CURL_LOCK_DATA_SHARE is used internally to say that
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1738 * the locking is just made to change the internal state of the share
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1739 * itself.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1740 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1741 share,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1742 cookie, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1743 dns, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1744 ssl_session, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1745 connect, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1746 last ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1747 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1748 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1749 alias curl_lock_data = int;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1750
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1751 /** Different lock access types */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1752 enum CurlLockAccess {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1753 none, /** unspecified action */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1754 shared_access, /** for read perhaps */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1755 single, /** for write perhaps */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1756 last /** never use */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1757 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1758 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1759 alias curl_lock_access = int;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1760
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1761 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1762 alias curl_lock_function = void function(CURL *handle, curl_lock_data data, curl_lock_access locktype, void *userptr);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1763 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1764 alias curl_unlock_function = void function(CURL *handle, curl_lock_data data, void *userptr);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1765
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1766 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1767 alias CURLSH = void;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1768
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1769 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1770 enum CurlShError {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1771 ok, /** all is fine */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1772 bad_option, /** 1 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1773 in_use, /** 2 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1774 invalid, /** 3 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1775 nomem, /** out of memory */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1776 last /** never use */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1777 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1778 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1779 alias CURLSHcode = int;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1780
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1781 /** pass in a user data pointer used in the lock/unlock callback
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1782 functions */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1783 enum CurlShOption {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1784 none, /** don't use */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1785 share, /** specify a data type to share */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1786 unshare, /** specify which data type to stop sharing */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1787 lockfunc, /** pass in a 'curl_lock_function' pointer */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1788 unlockfunc, /** pass in a 'curl_unlock_function' pointer */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1789 userdata, /** pass in a user data pointer used in the lock/unlock
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1790 callback functions */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1791 last /** never use */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1792 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1793 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1794 alias CURLSHoption = int;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1795
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1796 extern (C) {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1797 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1798 CURLSH * curl_share_init();
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1799 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1800 CURLSHcode curl_share_setopt(CURLSH *, CURLSHoption option,...);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1801 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1802 CURLSHcode curl_share_cleanup(CURLSH *);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1803 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1804
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1805 /*****************************************************************************
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1806 * Structures for querying information about the curl library at runtime.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1807 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1808
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1809 // CURLVERSION_*
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1810 enum CurlVer {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1811 first, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1812 second, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1813 third, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1814 fourth, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1815 last ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1816 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1817 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1818 alias CURLversion = int;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1819
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1820 /** The 'CURLVERSION_NOW' is the symbolic name meant to be used by
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1821 basically all programs ever that want to get version information. It is
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1822 meant to be a built-in version number for what kind of struct the caller
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1823 expects. If the struct ever changes, we redefine the NOW to another enum
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1824 from above. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1825 enum CURLVERSION_NOW = CurlVer.fourth;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1826
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1827 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1828 extern (C) struct _N28
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1829 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1830 CURLversion age; /** age of the returned struct */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1831 const(char) *version_; /** LIBCURL_VERSION */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1832 uint version_num; /** LIBCURL_VERSION_NUM */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1833 const(char) *host; /** OS/host/cpu/machine when configured */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1834 int features; /** bitmask, see defines below */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1835 const(char) *ssl_version; /** human readable string */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1836 c_long ssl_version_num; /** not used anymore, always 0 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1837 const(char) *libz_version; /** human readable string */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1838 /** protocols is terminated by an entry with a NULL protoname */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1839 const(char) **protocols;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1840 /** The fields below this were added in CURLVERSION_SECOND */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1841 const(char) *ares;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1842 int ares_num;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1843 /** This field was added in CURLVERSION_THIRD */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1844 const(char) *libidn;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1845 /** These field were added in CURLVERSION_FOURTH. */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1846 /** Same as '_libiconv_version' if built with HAVE_ICONV */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1847 int iconv_ver_num;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1848 const(char) *libssh_version; /** human readable string */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1849 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1850 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1851 alias curl_version_info_data = _N28;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1852
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1853 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1854 // CURL_VERSION_*
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1855 enum CurlVersion {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1856 ipv6 = 1, /** IPv6-enabled */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1857 kerberos4 = 2, /** kerberos auth is supported */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1858 ssl = 4, /** SSL options are present */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1859 libz = 8, /** libz features are present */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1860 ntlm = 16, /** NTLM auth is supported */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1861 gssnegotiate = 32, /** Negotiate auth support */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1862 dbg = 64, /** built with debug capabilities */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1863 asynchdns = 128, /** asynchronous dns resolves */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1864 spnego = 256, /** SPNEGO auth */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1865 largefile = 512, /** supports files bigger than 2GB */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1866 idn = 1024, /** International Domain Names support */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1867 sspi = 2048, /** SSPI is supported */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1868 conv = 4096, /** character conversions supported */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1869 curldebug = 8192, /** debug memory tracking supported */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1870 tlsauth_srp = 16_384 /** TLS-SRP auth is supported */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1871 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1872
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1873 extern (C) {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1874 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1875 * Name: curl_version_info()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1876 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1877 * Description:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1878 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1879 * This function returns a pointer to a static copy of the version info
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1880 * struct. See above.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1881 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1882 curl_version_info_data * curl_version_info(CURLversion );
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1883
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1884 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1885 * Name: curl_easy_strerror()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1886 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1887 * Description:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1888 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1889 * The curl_easy_strerror function may be used to turn a CURLcode value
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1890 * into the equivalent human readable error string. This is useful
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1891 * for printing meaningful error messages.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1892 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1893 const(char)* curl_easy_strerror(CURLcode );
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1894
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1895 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1896 * Name: curl_share_strerror()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1897 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1898 * Description:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1899 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1900 * The curl_share_strerror function may be used to turn a CURLSHcode value
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1901 * into the equivalent human readable error string. This is useful
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1902 * for printing meaningful error messages.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1903 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1904 const(char)* curl_share_strerror(CURLSHcode );
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1905
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1906 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1907 * Name: curl_easy_pause()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1908 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1909 * Description:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1910 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1911 * The curl_easy_pause function pauses or unpauses transfers. Select the new
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1912 * state by setting the bitmask, use the convenience defines below.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1913 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1914 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1915 CURLcode curl_easy_pause(CURL *handle, int bitmask);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1916 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1917
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1918
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1919 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1920 enum CurlPause {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1921 recv = 1, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1922 recv_cont = 0, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1923 send = 4, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1924 send_cont = 0, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1925 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1926 all = (1 | 4), // CURLPAUSE_RECV | CURLPAUSE_SEND
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1927 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1928 cont = (0 | 0), // CURLPAUSE_RECV_CONT | CURLPAUSE_SEND_CONT
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1929 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1930
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1931 /* unfortunately, the easy.h and multi.h include files need options and info
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1932 stuff before they can be included! */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1933 /* ***************************************************************************
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1934 * _ _ ____ _
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1935 * Project ___| | | | _ \| |
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1936 * / __| | | | |_) | |
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1937 * | (__| |_| | _ <| |___
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1938 * \___|\___/|_| \_\_____|
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1939 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1940 * Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1941 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1942 * This software is licensed as described in the file COPYING, which
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1943 * you should have received as part of this distribution. The terms
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1944 * are also available at http://curl.haxx.se/docs/copyright.html.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1945 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1946 * You may opt to use, copy, modify, merge, publish, distribute and/or sell
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1947 * copies of the Software, and permit persons to whom the Software is
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1948 * furnished to do so, under the terms of the COPYING file.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1949 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1950 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1951 * KIND, either express or implied.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1952 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1953 ***************************************************************************/
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1954
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1955 extern (C) {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1956 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1957 CURL * curl_easy_init();
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1958 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1959 CURLcode curl_easy_setopt(CURL *curl, CURLoption option,...);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1960 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1961 CURLcode curl_easy_perform(CURL *curl);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1962 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1963 void curl_easy_cleanup(CURL *curl);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1964 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1965
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1966 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1967 * Name: curl_easy_getinfo()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1968 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1969 * Description:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1970 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1971 * Request internal information from the curl session with this function. The
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1972 * third argument MUST be a pointer to a long, a pointer to a char * or a
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1973 * pointer to a double (as the documentation describes elsewhere). The data
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1974 * pointed to will be filled in accordingly and can be relied upon only if the
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1975 * function returns CURLE_OK. This function is intended to get used *AFTER* a
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1976 * performed transfer, all results from this function are undefined until the
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1977 * transfer is completed.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1978 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1979 extern (C) CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info,...);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1980
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1981
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1982 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1983 * Name: curl_easy_duphandle()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1984 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1985 * Description:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1986 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1987 * Creates a new curl session handle with the same options set for the handle
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1988 * passed in. Duplicating a handle could only be a matter of cloning data and
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1989 * options, internal state info and things like persistant connections cannot
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1990 * be transfered. It is useful in multithreaded applications when you can run
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1991 * curl_easy_duphandle() for each new thread to avoid a series of identical
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1992 * curl_easy_setopt() invokes in every thread.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1993 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1994 extern (C) CURL * curl_easy_duphandle(CURL *curl);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1995
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1996 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1997 * Name: curl_easy_reset()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1998 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1999 * Description:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2000 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2001 * Re-initializes a CURL handle to the default values. This puts back the
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2002 * handle to the same state as it was in when it was just created.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2003 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2004 * It does keep: live connections, the Session ID cache, the DNS cache and the
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2005 * cookies.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2006 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2007 extern (C) void curl_easy_reset(CURL *curl);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2008
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2009 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2010 * Name: curl_easy_recv()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2011 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2012 * Description:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2013 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2014 * Receives data from the connected socket. Use after successful
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2015 * curl_easy_perform() with CURLOPT_CONNECT_ONLY option.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2016 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2017 extern (C) CURLcode curl_easy_recv(CURL *curl, void *buffer, size_t buflen, size_t *n);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2018
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2019 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2020 * Name: curl_easy_send()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2021 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2022 * Description:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2023 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2024 * Sends data over the connected socket. Use after successful
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2025 * curl_easy_perform() with CURLOPT_CONNECT_ONLY option.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2026 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2027 extern (C) CURLcode curl_easy_send(CURL *curl, void *buffer, size_t buflen, size_t *n);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2028
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2029
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2030 /*
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2031 * This header file should not really need to include "curl.h" since curl.h
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2032 * itself includes this file and we expect user applications to do #include
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2033 * <curl/curl.h> without the need for especially including multi.h.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2034 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2035 * For some reason we added this include here at one point, and rather than to
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2036 * break existing (wrongly written) libcurl applications, we leave it as-is
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2037 * but with this warning attached.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2038 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2039 /* ***************************************************************************
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2040 * _ _ ____ _
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2041 * Project ___| | | | _ \| |
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2042 * / __| | | | |_) | |
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2043 * | (__| |_| | _ <| |___
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2044 * \___|\___/|_| \_\_____|
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2045 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2046 * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2047 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2048 * This software is licensed as described in the file COPYING, which
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2049 * you should have received as part of this distribution. The terms
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2050 * are also available at http://curl.haxx.se/docs/copyright.html.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2051 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2052 * You may opt to use, copy, modify, merge, publish, distribute and/or sell
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2053 * copies of the Software, and permit persons to whom the Software is
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2054 * furnished to do so, under the terms of the COPYING file.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2055 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2056 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2057 * KIND, either express or implied.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2058 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2059 ***************************************************************************/
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2060
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2061 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2062 alias CURLM = void;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2063
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2064 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2065 enum CurlM {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2066 call_multi_perform = -1, /** please call curl_multi_perform() or curl_multi_socket*() soon */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2067 ok, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2068 bad_handle, /** the passed-in handle is not a valid CURLM handle */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2069 bad_easy_handle, /** an easy handle was not good/valid */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2070 out_of_memory, /** if you ever get this, you're in deep sh*t */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2071 internal_error, /** this is a libcurl bug */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2072 bad_socket, /** the passed in socket argument did not match */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2073 unknown_option, /** curl_multi_setopt() with unsupported option */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2074 last, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2075 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2076 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2077 alias CURLMcode = int;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2078
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2079 /** just to make code nicer when using curl_multi_socket() you can now check
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2080 for CURLM_CALL_MULTI_SOCKET too in the same style it works for
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2081 curl_multi_perform() and CURLM_CALL_MULTI_PERFORM */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2082 enum CURLM_CALL_MULTI_SOCKET = CurlM.call_multi_perform;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2083
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2084 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2085 enum CurlMsg
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2086 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2087 none, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2088 done, /** This easy handle has completed. 'result' contains
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2089 the CURLcode of the transfer */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2090 last, /** no used */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2091 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2092 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2093 alias CURLMSG = int;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2094
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2095 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2096 extern (C) union _N31
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2097 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2098 void *whatever; /** message-specific data */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2099 CURLcode result; /** return code for transfer */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2100 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2101
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2102 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2103 extern (C) struct CURLMsg
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2104 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2105 CURLMSG msg; /** what this message means */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2106 CURL *easy_handle; /** the handle it concerns */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2107 _N31 data; ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2108 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2109
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2110 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2111 * Name: curl_multi_init()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2112 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2113 * Desc: inititalize multi-style curl usage
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2114 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2115 * Returns: a new CURLM handle to use in all 'curl_multi' functions.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2116 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2117 extern (C) CURLM * curl_multi_init();
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2118
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2119 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2120 * Name: curl_multi_add_handle()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2121 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2122 * Desc: add a standard curl handle to the multi stack
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2123 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2124 * Returns: CURLMcode type, general multi error code.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2125 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2126 extern (C) CURLMcode curl_multi_add_handle(CURLM *multi_handle, CURL *curl_handle);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2127
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2128 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2129 * Name: curl_multi_remove_handle()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2130 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2131 * Desc: removes a curl handle from the multi stack again
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2132 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2133 * Returns: CURLMcode type, general multi error code.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2134 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2135 extern (C) CURLMcode curl_multi_remove_handle(CURLM *multi_handle, CURL *curl_handle);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2136
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2137 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2138 * Name: curl_multi_fdset()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2139 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2140 * Desc: Ask curl for its fd_set sets. The app can use these to select() or
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2141 * poll() on. We want curl_multi_perform() called as soon as one of
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2142 * them are ready.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2143 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2144 * Returns: CURLMcode type, general multi error code.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2145 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2146
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2147 /** tmp decl */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2148 alias fd_set = int;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2149 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2150 extern (C) CURLMcode curl_multi_fdset(
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2151 CURLM *multi_handle,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2152 fd_set *read_fd_set,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2153 fd_set *write_fd_set,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2154 fd_set *exc_fd_set,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2155 int *max_fd
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2156 );
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2157
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2158 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2159 * Name: curl_multi_perform()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2160 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2161 * Desc: When the app thinks there's data available for curl it calls this
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2162 * function to read/write whatever there is right now. This returns
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2163 * as soon as the reads and writes are done. This function does not
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2164 * require that there actually is data available for reading or that
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2165 * data can be written, it can be called just in case. It returns
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2166 * the number of handles that still transfer data in the second
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2167 * argument's integer-pointer.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2168 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2169 * Returns: CURLMcode type, general multi error code. *NOTE* that this only
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2170 * returns errors etc regarding the whole multi stack. There might
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2171 * still have occurred problems on invidual transfers even when this
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2172 * returns OK.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2173 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2174 extern (C) CURLMcode curl_multi_perform(CURLM *multi_handle, int *running_handles);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2175
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2176 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2177 * Name: curl_multi_cleanup()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2178 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2179 * Desc: Cleans up and removes a whole multi stack. It does not free or
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2180 * touch any individual easy handles in any way. We need to define
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2181 * in what state those handles will be if this function is called
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2182 * in the middle of a transfer.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2183 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2184 * Returns: CURLMcode type, general multi error code.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2185 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2186 extern (C) CURLMcode curl_multi_cleanup(CURLM *multi_handle);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2187
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2188 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2189 * Name: curl_multi_info_read()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2190 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2191 * Desc: Ask the multi handle if there's any messages/informationals from
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2192 * the individual transfers. Messages include informationals such as
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2193 * error code from the transfer or just the fact that a transfer is
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2194 * completed. More details on these should be written down as well.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2195 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2196 * Repeated calls to this function will return a new struct each
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2197 * time, until a special "end of msgs" struct is returned as a signal
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2198 * that there is no more to get at this point.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2199 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2200 * The data the returned pointer points to will not survive calling
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2201 * curl_multi_cleanup().
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2202 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2203 * The 'CURLMsg' struct is meant to be very simple and only contain
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2204 * very basic informations. If more involved information is wanted,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2205 * we will provide the particular "transfer handle" in that struct
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2206 * and that should/could/would be used in subsequent
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2207 * curl_easy_getinfo() calls (or similar). The point being that we
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2208 * must never expose complex structs to applications, as then we'll
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2209 * undoubtably get backwards compatibility problems in the future.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2210 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2211 * Returns: A pointer to a filled-in struct, or NULL if it failed or ran out
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2212 * of structs. It also writes the number of messages left in the
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2213 * queue (after this read) in the integer the second argument points
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2214 * to.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2215 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2216 extern (C) CURLMsg * curl_multi_info_read(CURLM *multi_handle, int *msgs_in_queue);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2217
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2218 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2219 * Name: curl_multi_strerror()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2220 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2221 * Desc: The curl_multi_strerror function may be used to turn a CURLMcode
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2222 * value into the equivalent human readable error string. This is
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2223 * useful for printing meaningful error messages.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2224 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2225 * Returns: A pointer to a zero-terminated error message.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2226 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2227 extern (C) const(char)* curl_multi_strerror(CURLMcode );
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2228
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2229 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2230 * Name: curl_multi_socket() and
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2231 * curl_multi_socket_all()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2232 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2233 * Desc: An alternative version of curl_multi_perform() that allows the
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2234 * application to pass in one of the file descriptors that have been
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2235 * detected to have "action" on them and let libcurl perform.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2236 * See man page for details.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2237 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2238 enum CurlPoll {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2239 none_ = 0, /** jdrewsen - underscored in order not to clash with reserved D symbols */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2240 in_ = 1, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2241 out_ = 2, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2242 inout_ = 3, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2243 remove_ = 4 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2244 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2245
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2246 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2247 alias CURL_SOCKET_TIMEOUT = CURL_SOCKET_BAD;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2248
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2249 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2250 enum CurlCSelect {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2251 in_ = 0x01, /** jdrewsen - underscored in order not to clash with reserved D symbols */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2252 out_ = 0x02, ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2253 err_ = 0x04 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2254 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2255
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2256 extern (C) {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2257 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2258 alias curl_socket_callback =
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2259 int function(CURL *easy, /** easy handle */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2260 curl_socket_t s, /** socket */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2261 int what, /** see above */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2262 void *userp, /** private callback pointer */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2263 void *socketp); /** private socket pointer */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2264 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2265
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2266 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2267 * Name: curl_multi_timer_callback
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2268 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2269 * Desc: Called by libcurl whenever the library detects a change in the
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2270 * maximum number of milliseconds the app is allowed to wait before
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2271 * curl_multi_socket() or curl_multi_perform() must be called
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2272 * (to allow libcurl's timed events to take place).
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2273 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2274 * Returns: The callback should return zero.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2275 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2276
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2277 extern (C) {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2278 alias curl_multi_timer_callback =
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2279 int function(CURLM *multi, /** multi handle */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2280 c_long timeout_ms, /** see above */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2281 void *userp); /** private callback pointer */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2282 /// ditto
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2283 CURLMcode curl_multi_socket(CURLM *multi_handle, curl_socket_t s, int *running_handles);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2284 /// ditto
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2285 CURLMcode curl_multi_socket_action(CURLM *multi_handle, curl_socket_t s, int ev_bitmask, int *running_handles);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2286 /// ditto
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2287 CURLMcode curl_multi_socket_all(CURLM *multi_handle, int *running_handles);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2288 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2289
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2290 /** This macro below was added in 7.16.3 to push users who recompile to use
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2291 the new curl_multi_socket_action() instead of the old curl_multi_socket()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2292 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2293
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2294 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2295 * Name: curl_multi_timeout()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2296 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2297 * Desc: Returns the maximum number of milliseconds the app is allowed to
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2298 * wait before curl_multi_socket() or curl_multi_perform() must be
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2299 * called (to allow libcurl's timed events to take place).
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2300 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2301 * Returns: CURLM error code.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2302 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2303 extern (C) CURLMcode curl_multi_timeout(CURLM *multi_handle, c_long *milliseconds);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2304
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2305 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2306 enum CurlMOption {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2307 socketfunction = 20_001, /** This is the socket callback function pointer */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2308 socketdata = 10_002, /** This is the argument passed to the socket callback */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2309 pipelining = 3, /** set to 1 to enable pipelining for this multi handle */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2310 timerfunction = 20_004, /** This is the timer callback function pointer */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2311 timerdata = 10_005, /** This is the argument passed to the timer callback */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2312 maxconnects = 6, /** maximum number of entries in the connection cache */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2313 lastentry ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2314 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2315 ///
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2316 alias CURLMoption = int;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2317
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2318 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2319 * Name: curl_multi_setopt()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2320 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2321 * Desc: Sets options for the multi handle.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2322 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2323 * Returns: CURLM error code.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2324 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2325 extern (C) CURLMcode curl_multi_setopt(CURLM *multi_handle, CURLMoption option,...);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2326
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2327 /**
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2328 * Name: curl_multi_assign()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2329 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2330 * Desc: This function sets an association in the multi handle between the
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2331 * given socket and a private pointer of the application. This is
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2332 * (only) useful for curl_multi_socket uses.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2333 *
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2334 * Returns: CURLM error code.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2335 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2336 extern (C) CURLMcode curl_multi_assign(CURLM *multi_handle, curl_socket_t sockfd, void *sockp);