support all encodings
[ocurl.git] / curl.mli
blobd489338a91b97824841438a795f8f7978679ac62
1 (*
2 * curl.mli
4 * Copyright (c) 2003-2008, Lars Nilsson, <lars@quantumchamaeleon.com>
5 *)
7 type t
9 type curlCode =
10 | CURLE_OK
11 | CURLE_UNSUPPORTED_PROTOCOL
12 | CURLE_FAILED_INIT
13 | CURLE_URL_MALFORMAT
14 | CURLE_URL_MALFORMAT_USER
15 | CURLE_COULDNT_RESOLVE_PROXY
16 | CURLE_COULDNT_RESOLVE_HOST
17 | CURLE_COULDNT_CONNECT
18 | CURLE_FTP_WEIRD_SERVER_REPLY
19 | CURLE_FTP_ACCESS_DENIED
20 | CURLE_FTP_USER_PASSWORD_INCORRECT
21 | CURLE_FTP_WEIRD_PASS_REPLY
22 | CURLE_FTP_WEIRD_USER_REPLY
23 | CURLE_FTP_WEIRD_PASV_REPLY
24 | CURLE_FTP_WEIRD_227_FORMAT
25 | CURLE_FTP_CANT_GET_HOST
26 | CURLE_FTP_CANT_RECONNECT
27 | CURLE_FTP_COULDNT_SET_BINARY
28 | CURLE_PARTIAL_FILE
29 | CURLE_FTP_COULDNT_RETR_FILE
30 | CURLE_FTP_WRITE_ERROR
31 | CURLE_FTP_QUOTE_ERROR
32 | CURLE_HTTP_NOT_FOUND
33 | CURLE_WRITE_ERROR
34 | CURLE_MALFORMAT_USER
35 | CURLE_FTP_COULDNT_STOR_FILE
36 | CURLE_READ_ERROR
37 | CURLE_OUT_OF_MEMORY
38 | CURLE_OPERATION_TIMEOUTED
39 | CURLE_FTP_COULDNT_SET_ASCII
40 | CURLE_FTP_PORT_FAILED
41 | CURLE_FTP_COULDNT_USE_REST
42 | CURLE_FTP_COULDNT_GET_SIZE
43 | CURLE_HTTP_RANGE_ERROR
44 | CURLE_HTTP_POST_ERROR
45 | CURLE_SSL_CONNECT_ERROR
46 | CURLE_FTP_BAD_DOWNLOAD_RESUME
47 | CURLE_FILE_COULDNT_READ_FILE
48 | CURLE_LDAP_CANNOT_BIND
49 | CURLE_LDAP_SEARCH_FAILED
50 | CURLE_LIBRARY_NOT_FOUND
51 | CURLE_FUNCTION_NOT_FOUND
52 | CURLE_ABORTED_BY_CALLBACK
53 | CURLE_BAD_FUNCTION_ARGUMENT
54 | CURLE_BAD_CALLING_ORDER
55 | CURLE_HTTP_PORT_FAILED
56 | CURLE_BAD_PASSWORD_ENTERED
57 | CURLE_TOO_MANY_REDIRECTS
58 | CURLE_UNKNOWN_TELNET_OPTION
59 | CURLE_TELNET_OPTION_SYNTAX
60 | CURLE_OBSOLETE
61 | CURLE_SSL_PEER_CERTIFICATE
62 | CURLE_GOT_NOTHING
63 | CURLE_SSL_ENGINE_NOTFOUND
64 | CURLE_SSL_ENGINE_SETFAILED
65 | CURLE_SEND_ERROR
66 | CURLE_RECV_ERROR
67 | CURLE_SHARE_IN_USE
68 | CURLE_SSL_CERTPROBLEM
69 | CURLE_SSL_CIPHER
70 | CURLE_SSL_CACERT
71 | CURLE_BAD_CONTENT_ENCODING
72 | CURLE_LDAP_INVALID_URL
73 | CURLE_FILESIZE_EXCEEDED
74 | CURLE_USE_SSL_FAILED
75 | CURLE_SEND_FAIL_REWIND
76 | CURLE_SSL_ENGINE_INITFAILED
77 | CURLE_LOGIN_DENIED
78 | CURLE_TFTP_NOTFOUND
79 | CURLE_TFTP_PERM
80 | CURLE_REMOTE_DISK_FULL
81 | CURLE_TFTP_ILLEGAL
82 | CURLE_TFTP_UNKNOWNID
83 | CURLE_REMOTE_FILE_EXISTS
84 | CURLE_TFTP_NOSUCHUSER
85 | CURLE_CONV_FAILED
86 | CURLE_CONV_REQD
87 | CURLE_SSL_CACERT_BADFILE
88 | CURLE_REMOTE_FILE_NOT_FOUND
89 | CURLE_SSH
90 | CURLE_SSL_SHUTDOWN_FAILED
91 | CURLE_AGAIN
93 exception CurlException of (curlCode * int * string)
95 type curlNETRCOption =
96 | CURL_NETRC_OPTIONAL
97 | CURL_NETRC_IGNORED
98 | CURL_NETRC_REQUIRED
100 type curlEncoding =
101 | CURL_ENCODING_NONE (* identity *)
102 | CURL_ENCODING_DEFLATE (* deflate *)
103 | CURL_ENCODING_GZIP (* gzip *)
104 | CURL_ENCODING_ANY (* all supported encodings *)
106 type curlContentType =
107 | DEFAULT
108 | CONTENTTYPE of string
110 type curlHTTPPost =
111 | CURLFORM_CONTENT of string * string * curlContentType
112 | CURLFORM_FILECONTENT of string * string * curlContentType
113 | CURLFORM_FILE of string * string * curlContentType
114 | CURLFORM_BUFFER of string * string * string * curlContentType
117 type curlHTTPPost =
118 | CURLFORM_COPYNAME of string
119 | CURLFORM_PTRNAME of string
120 | CURLFORM_NAMELENGTH of int
121 | CURLFORM_COPYCONTENTS of string
122 | CURLFORM_PTRCONTENTS of string
123 | CURLFORM_FILE of string
124 | CURLFORM_FILECONTENT of string
125 | CURLFORM_CONTENTSLENGTH of int
126 | CURLFORM_CONTENTTYPE of string
129 type curlTimeCondition =
130 | TIMECOND_IFMODSINCE
131 | TIMECOND_IFUNMODSINCE
133 type curlKRB4Level =
134 | KRB4_NONE
135 | KRB4_CLEAR
136 | KRB4_SAFE
137 | KRB4_CONFIDENTIAL
138 | KRB4_PRIVATE
140 type curlClosePolicy =
141 | CLOSEPOLICY_OLDEST
142 | CLOSEPOLICY_LEAST_RECENTLY_USED
144 type curlSSLVerifyHost =
145 | SSLVERIFYHOST_EXISTENCE
146 | SSLVERIFYHOST_HOSTNAME
148 type curlHTTPVersion =
149 | HTTP_VERSION_NONE
150 | HTTP_VERSION_1_0
151 | HTTP_VERSION_1_1
153 type curlDebugType =
154 | DEBUGTYPE_TEXT
155 | DEBUGTYPE_HEADER_IN
156 | DEBUGTYPE_HEADER_OUT
157 | DEBUGTYPE_DATA_IN
158 | DEBUGTYPE_DATA_OUT
159 | DEBUGTYPE_END
161 type curlAuth =
162 | CURLAUTH_BASIC
163 | CURLAUTH_DIGEST
164 | CURLAUTH_GSSNEGOTIATE
165 | CURLAUTH_NTLM
166 | CURLAUTH_ANY
167 | CURLAUTH_ANYSAFE
169 type curlIPResolve =
170 | IPRESOLVE_WHATEVER
171 | IPRESOLVE_V4
172 | IPRESOLVE_V6
174 type curlFTPSSL =
175 | FTPSSL_NONE
176 | FTPSSL_TRY
177 | FTPSSL_CONTROL
178 | FTPSSL_ALL
180 type curlFTPSSLAuth =
181 | FTPAUTH_DEFAULT
182 | FTPAUTH_SSL
183 | FTPAUTH_TLS
185 type curlIOCmd =
186 | IOCMD_NOP
187 | IOCMD_RESTARTREAD
189 type curlIOErr =
190 | IOE_OK
191 | IOE_UNKNOWNCMD
192 | IOE_FAILRESTART
194 type curlFTPMethod =
195 | FTPMETHOD_DEFAULT
196 | FTPMETHOD_MULTICWD
197 | FTPMETHOD_NOCWD
198 | FTPMETHOD_SINGLECWD
200 type curlSSHAuthTypes =
201 | SSHAUTH_ANY
202 | SSHAUTH_PUBLICKEY
203 | SSHAUTH_PASSWORD
204 | SSHAUTH_HOST
205 | SSHAUTH_KEYBOARD
207 type curlFTPSSLCCC =
208 | FTPSSL_CCC_NONE
209 | FTPSSL_CCC_PASSIVE
210 | FTPSSL_CCC_ACTIVE
212 type curlSeek =
213 | SEEK_SET
214 | SEEK_CUR
215 | SEEK_END
217 type curlOption =
218 | CURLOPT_WRITEFUNCTION of (string -> int)
219 | CURLOPT_READFUNCTION of (int -> string)
220 | CURLOPT_INFILESIZE of int
221 | CURLOPT_URL of string
222 | CURLOPT_PROXY of string
223 | CURLOPT_PROXYPORT of int
224 | CURLOPT_HTTPPROXYTUNNEL of bool
225 | CURLOPT_VERBOSE of bool
226 | CURLOPT_HEADER of bool
227 | CURLOPT_NOPROGRESS of bool
228 | CURLOPT_NOSIGNAL of bool
229 | CURLOPT_NOBODY of bool
230 | CURLOPT_FAILONERROR of bool
231 | CURLOPT_UPLOAD of bool
232 | CURLOPT_POST of bool
233 | CURLOPT_FTPLISTONLY of bool
234 | CURLOPT_FTPAPPEND of bool
235 | CURLOPT_NETRC of curlNETRCOption
236 | CURLOPT_ENCODING of curlEncoding
237 | CURLOPT_FOLLOWLOCATION of bool
238 | CURLOPT_TRANSFERTEXT of bool
239 | CURLOPT_PUT of bool
240 | CURLOPT_USERPWD of string
241 | CURLOPT_PROXYUSERPWD of string
242 | CURLOPT_RANGE of string
243 | CURLOPT_ERRORBUFFER of string ref
244 | CURLOPT_TIMEOUT of int
245 | CURLOPT_POSTFIELDS of string
246 | CURLOPT_POSTFIELDSIZE of int
247 | CURLOPT_REFERER of string
248 | CURLOPT_USERAGENT of string
249 | CURLOPT_FTPPORT of string
250 | CURLOPT_LOWSPEEDLIMIT of int
251 | CURLOPT_LOWSPEEDTIME of int
252 | CURLOPT_RESUMEFROM of int
253 | CURLOPT_COOKIE of string
254 | CURLOPT_HTTPHEADER of string list
255 | CURLOPT_HTTPPOST of curlHTTPPost list
256 | CURLOPT_SSLCERT of string
257 | CURLOPT_SSLCERTTYPE of string
258 | CURLOPT_SSLCERTPASSWD of string
259 | CURLOPT_SSLKEY of string
260 | CURLOPT_SSLKEYTYPE of string
261 | CURLOPT_SSLKEYPASSWD of string
262 | CURLOPT_SSLENGINE of string
263 | CURLOPT_SSLENGINEDEFAULT of bool
264 | CURLOPT_CRLF of bool
265 | CURLOPT_QUOTE of string list
266 | CURLOPT_POSTQUOTE of string list
267 | CURLOPT_HEADERFUNCTION of (string -> int)
268 | CURLOPT_COOKIEFILE of string
269 | CURLOPT_SSLVERSION of int
270 | CURLOPT_TIMECONDITION of curlTimeCondition
271 | CURLOPT_TIMEVALUE of int32
272 | CURLOPT_CUSTOMREQUEST of string
273 | CURLOPT_STDERR (* UNIMPLEMENTED *)
274 | CURLOPT_INTERFACE of string
275 | CURLOPT_KRB4LEVEL of curlKRB4Level
276 | CURLOPT_PROGRESSFUNCTION of (float -> float -> float -> float -> bool)
277 | CURLOPT_SSLVERIFYPEER of bool
278 | CURLOPT_CAINFO of string
279 | CURLOPT_CAPATH of string
280 | CURLOPT_FILETIME of bool
281 | CURLOPT_MAXREDIRS of int
282 | CURLOPT_MAXCONNECTS of int
283 | CURLOPT_CLOSEPOLICY of curlClosePolicy
284 | CURLOPT_FRESHCONNECT of bool
285 | CURLOPT_FORBIDREUSE of bool
286 | CURLOPT_RANDOMFILE of string
287 | CURLOPT_EGDSOCKET of string
288 | CURLOPT_CONNECTTIMEOUT of int
289 | CURLOPT_HTTPGET of bool
290 | CURLOPT_SSLVERIFYHOST of curlSSLVerifyHost
291 | CURLOPT_COOKIEJAR of string
292 | CURLOPT_SSLCIPHERLIST of string
293 | CURLOPT_HTTPVERSION of curlHTTPVersion
294 | CURLOPT_FTPUSEEPSV of bool
295 | CURLOPT_DNSCACHETIMEOUT of int
296 | CURLOPT_DNSUSEGLOBALCACHE of bool
297 | CURLOPT_DEBUGFUNCTION of (t -> curlDebugType -> string -> unit)
298 | CURLOPT_PRIVATE of string
299 | CURLOPT_HTTP200ALIASES of string list
300 | CURLOPT_UNRESTRICTEDAUTH of bool
301 | CURLOPT_FTPUSEEPRT of bool
302 | CURLOPT_HTTPAUTH of curlAuth list
303 | CURLOPT_FTPCREATEMISSINGDIRS of bool
304 | CURLOPT_PROXYAUTH of curlAuth list
305 | CURLOPT_FTPRESPONSETIMEOUT of int
306 | CURLOPT_IPRESOLVE of curlIPResolve
307 | CURLOPT_MAXFILESIZE of int32
308 | CURLOPT_INFILESIZELARGE of int64
309 | CURLOPT_RESUMEFROMLARGE of int64
310 | CURLOPT_MAXFILESIZELARGE of int64
311 | CURLOPT_NETRCFILE of string
312 | CURLOPT_FTPSSL of curlFTPSSL
313 | CURLOPT_POSTFIELDSIZELARGE of int64
314 | CURLOPT_TCPNODELAY of bool
315 | CURLOPT_FTPSSLAUTH of curlFTPSSLAuth
316 | CURLOPT_IOCTLFUNCTION of (t -> curlIOCmd -> curlIOErr)
317 | CURLOPT_FTPACCOUNT of string
318 | CURLOPT_COOKIELIST of string
319 | CURLOPT_IGNORECONTENTLENGTH of bool
320 | CURLOPT_FTPSKIPPASVIP of bool
321 | CURLOPT_FTPFILEMETHOD of curlFTPMethod
322 | CURLOPT_LOCALPORT of int
323 | CURLOPT_LOCALPORTRANGE of int
324 | CURLOPT_CONNECTONLY of bool
325 | CURLOPT_MAXSENDSPEEDLARGE of int64
326 | CURLOPT_MAXRECVSPEEDLARGE of int64
327 | CURLOPT_FTPALTERNATIVETOUSER of string
328 | CURLOPT_SSLSESSIONIDCACHE of bool
329 | CURLOPT_SSHAUTHTYPES of curlSSHAuthTypes list
330 | CURLOPT_SSHPUBLICKEYFILE of string
331 | CURLOPT_SSHPRIVATEKEYFILE of string
332 | CURLOPT_FTPSSLCCC of curlFTPSSLCCC
333 | CURLOPT_TIMEOUTMS of int
334 | CURLOPT_CONNECTTIMEOUTMS of int
335 | CURLOPT_HTTPTRANSFERDECODING of bool
336 | CURLOPT_HTTPCONTENTDECODING of bool
337 | CURLOPT_NEWFILEPERMS of int
338 | CURLOPT_NEWDIRECTORYPERMS of int
339 | CURLOPT_POST301 of bool
340 | CURLOPT_SSHHOSTPUBLICKEYMD5 of string
341 | CURLOPT_COPYPOSTFIELDS of string
342 | CURLOPT_PROXYTRANSFERMODE of bool
343 | CURLOPT_SEEKFUNCTION of (int64 -> curlSeek -> int)
345 type initOption =
346 | CURLINIT_GLOBALALL
347 | CURLINIT_GLOBALSSL
348 | CURLINIT_GLOBALWIN32
349 | CURLINIT_GLOBALNOTHING
351 type curlInfo =
352 | CURLINFO_EFFECTIVE_URL
353 | CURLINFO_HTTP_CODE
354 | CURLINFO_RESPONSE_CODE
355 | CURLINFO_TOTAL_TIME
356 | CURLINFO_NAMELOOKUP_TIME
357 | CURLINFO_CONNECT_TIME
358 | CURLINFO_PRETRANSFER_TIME
359 | CURLINFO_SIZE_UPLOAD
360 | CURLINFO_SIZE_DOWNLOAD
361 | CURLINFO_SPEED_DOWNLOAD
362 | CURLINFO_SPEED_UPLOAD
363 | CURLINFO_HEADER_SIZE
364 | CURLINFO_REQUEST_SIZE
365 | CURLINFO_SSL_VERIFYRESULT
366 | CURLINFO_FILETIME
367 | CURLINFO_CONTENT_LENGTH_DOWNLOAD
368 | CURLINFO_CONTENT_LENGTH_UPLOAD
369 | CURLINFO_STARTTRANSFER_TIME
370 | CURLINFO_CONTENT_TYPE
371 | CURLINFO_REDIRECT_TIME
372 | CURLINFO_REDIRECT_COUNT
373 | CURLINFO_PRIVATE
374 | CURLINFO_HTTP_CONNECTCODE
375 | CURLINFO_HTTPAUTH_AVAIL
376 | CURLINFO_PROXYAUTH_AVAIL
377 | CURLINFO_OS_ERRNO
378 | CURLINFO_NUM_CONNECTS
379 | CURLINFO_SSL_ENGINES
380 | CURLINFO_COOKIELIST
381 | CURLINFO_LASTSOCKET
382 | CURLINFO_FTP_ENTRY_PATH
384 type curlInfoResult =
385 | CURLINFO_String of string
386 | CURLINFO_Long of int
387 | CURLINFO_Double of float
388 | CURLINFO_StringList of string list
390 val global_init : initOption -> unit
391 val global_cleanup : unit -> unit
392 val init : unit -> t
393 (** Reset [t] to the default state *)
394 val reset : t -> unit
395 val duphandle : t -> t
396 val setopt : t -> curlOption -> unit
397 val perform : t -> unit
398 val cleanup : t -> unit
399 val getinfo : t -> curlInfo -> curlInfoResult
400 val escape : string -> string
401 val unescape : string -> string
402 val getdate : string -> float -> float
403 val version : unit -> string
404 val strerror : curlCode -> string
405 val errno : curlCode -> int
407 val set_writefunction : t -> (string -> int) -> unit
408 val set_readfunction : t -> (int -> string) -> unit
409 val set_infilesize : t -> int -> unit
410 val set_url : t -> string -> unit
411 val set_proxy : t -> string -> unit
412 val set_proxyport : t -> int -> unit
413 val set_httpproxytunnel : t -> bool -> unit
414 val set_verbose : t -> bool -> unit
415 val set_header : t -> bool -> unit
416 val set_noprogress : t -> bool -> unit
417 val set_nosignal : t -> bool -> unit
418 val set_nobody : t -> bool -> unit
419 val set_failonerror : t -> bool -> unit
420 val set_upload : t -> bool -> unit
421 val set_post : t -> bool -> unit
422 val set_ftplistonly : t -> bool -> unit
423 val set_ftpappend : t -> bool -> unit
424 val set_netrc : t -> curlNETRCOption -> unit
425 val set_encoding : t -> curlEncoding -> unit
426 val set_followlocation : t -> bool -> unit
427 val set_transfertext : t -> bool -> unit
428 val set_put : t -> bool -> unit
429 val set_userpwd : t -> string -> unit
430 val set_proxyuserpwd : t -> string -> unit
431 val set_range : t -> string -> unit
432 val set_errorbuffer : t -> string ref -> unit
433 val set_timeout : t -> int -> unit
434 val set_postfields : t -> string -> unit
435 val set_postfieldsize : t -> int -> unit
436 val set_referer : t -> string -> unit
437 val set_useragent : t -> string -> unit
438 val set_ftpport : t -> string -> unit
439 val set_lowspeedlimit : t -> int -> unit
440 val set_lowspeedtime : t -> int -> unit
441 val set_resumefrom : t -> int -> unit
442 val set_cookie : t -> string -> unit
443 val set_httpheader : t -> string list -> unit
444 val set_httppost : t -> curlHTTPPost list -> unit
445 val set_sslcert : t -> string -> unit
446 val set_sslcerttype : t -> string -> unit
447 val set_sslcertpasswd : t -> string -> unit
448 val set_sslkey : t -> string -> unit
449 val set_sslkeytype : t -> string -> unit
450 val set_sslkeypasswd : t -> string -> unit
451 val set_sslengine : t -> string -> unit
452 val set_sslenginedefault : t -> bool -> unit
453 val set_crlf : t -> bool -> unit
454 val set_quote : t -> string list -> unit
455 val set_postquote : t -> string list -> unit
456 val set_headerfunction: t -> (string -> int) -> unit
457 val set_cookiefile : t -> string -> unit
458 val set_sslversion : t -> int -> unit
459 val set_timecondition : t -> curlTimeCondition -> unit
460 val set_timevalue : t -> int32 -> unit
461 val set_customrequest : t -> string -> unit
462 val set_interface : t -> string -> unit
463 val set_krb4level : t -> curlKRB4Level -> unit
464 val set_progressfunction : t -> (float -> float -> float -> float -> bool) -> unit
465 val set_sslverifypeer : t -> bool -> unit
466 val set_cainfo : t -> string -> unit
467 val set_capath : t -> string -> unit
468 val set_filetime : t -> bool -> unit
469 val set_maxredirs : t -> int -> unit
470 val set_maxconnects : t -> int -> unit
471 val set_closepolicy : t -> curlClosePolicy -> unit
472 val set_freshconnect : t -> bool -> unit
473 val set_forbidreuse : t -> bool -> unit
474 val set_randomfile : t -> string -> unit
475 val set_egdsocket : t -> string -> unit
476 val set_connecttimeout : t -> int -> unit
477 val set_httpget : t -> bool -> unit
478 val set_sslverifyhost : t -> curlSSLVerifyHost -> unit
479 val set_cookiejar : t -> string -> unit
480 val set_sslcipherlist : t -> string -> unit
481 val set_httpversion : t -> curlHTTPVersion -> unit
482 val set_ftpuseepsv : t -> bool -> unit
483 val set_dnscachetimeout : t -> int -> unit
484 val set_dnsuseglobalcache : t -> bool -> unit
485 val set_debugfunction : t -> (t -> curlDebugType -> string -> unit) -> unit
486 val set_private : t -> string -> unit
487 val set_http200aliases : t -> string list -> unit
488 val set_unrestrictedauth : t -> bool -> unit
489 val set_ftpuseeprt : t -> bool -> unit
490 val set_httpauth : t -> curlAuth list -> unit
491 val set_ftpcreatemissingdirs : t -> bool -> unit
492 val set_proxyauth : t -> curlAuth list -> unit
493 val set_ftpresponsetimeout : t -> int -> unit
494 val set_ipresolve : t -> curlIPResolve -> unit
495 val set_maxfilesize : t -> int32 -> unit
496 val set_infilesizelarge : t -> int64 -> unit
497 val set_resumefromlarge : t -> int64 -> unit
498 val set_maxfilesizelarge : t -> int64 -> unit
499 val set_netrcfile : t -> string -> unit
500 val set_ftpssl : t -> curlFTPSSL -> unit
501 val set_postfieldsizelarge : t -> int64 -> unit
502 val set_tcpnodelay : t -> bool -> unit
503 val set_ftpsslauth : t -> curlFTPSSLAuth -> unit
504 val set_ioctlfunction : t -> (t -> curlIOCmd -> curlIOErr) -> unit
505 val set_ftpaccount : t -> string -> unit
506 val set_cookielist : t -> string -> unit
507 val set_ignorecontentlength : t -> bool -> unit
508 val set_ftpskippasvip : t -> bool -> unit
509 val set_ftpfilemethod : t -> curlFTPMethod -> unit
510 val set_localport : t -> int -> unit
511 val set_localportrange : t -> int -> unit
512 val set_connectonly : t -> bool -> unit
513 val set_maxsendspeedlarge : t -> int64 -> unit
514 val set_maxrecvspeedlarge : t -> int64 -> unit
515 val set_ftpalternativetouser : t -> string -> unit
516 val set_sslsessionidcache : t -> bool -> unit
517 val set_sshauthtypes : t -> curlSSHAuthTypes list -> unit
518 val set_sshpublickeyfile : t -> string -> unit
519 val set_ftpsslccc : t -> curlFTPSSLCCC -> unit
520 val set_timeoutms : t -> int -> unit
521 val set_connecttimeoutms : t -> int -> unit
522 val set_httptransferdecoding : t -> bool -> unit
523 val set_httpcontentdecoding : t -> bool -> unit
524 val set_newfileperms : t -> int -> unit
525 val set_newdirectoryperms : t -> int -> unit
526 val set_post301 : t -> bool -> unit
527 val set_sshhostpublickeymd5 : t -> string -> unit
528 val set_copypostfields : t -> string -> unit
529 val set_proxytransfermode : t -> bool -> unit
530 val set_seekfunction : t -> (int64 -> curlSeek -> int) -> unit
532 val get_effectiveurl : t -> string
533 val get_httpcode : t -> int
534 val get_responsecode : t -> int
535 val get_totaltime : t -> float
536 val get_namelookuptime : t -> float
537 val get_connecttime : t -> float
538 val get_pretransfertime : t -> float
539 val get_sizeupload : t -> float
540 val get_sizedownload : t -> float
541 val get_speeddownload : t -> float
542 val get_speedupload : t -> float
543 val get_headersize : t -> int
544 val get_requestsize : t -> int
545 val get_sslverifyresult : t -> int
546 val get_filetime : t -> float
547 val get_contentlengthdownload : t -> float
548 val get_contentlengthupload : t -> float
549 val get_starttransfertime : t -> float
550 val get_contenttype : t -> string
551 val get_redirecttime : t -> float
552 val get_redirectcount : t -> int
553 val get_private : t -> string
554 val get_httpconnectcode : t -> int
555 val get_httpauthavail : t -> curlAuth list
556 val get_proxyauthavail : t -> curlAuth list
557 val get_oserrno : t -> int
558 val get_numconnects : t -> int
559 val get_sslengines : t -> string list
560 val get_cookielist : t -> string list
561 val get_lastsocket : t -> int
562 val get_ftpentrypath : t -> string
564 class handle :
565 object ('a)
566 val conn : t
567 method cleanup : unit
568 method duphandle : 'a
569 method perform : unit
571 method set_writefunction : (string -> int) -> unit
572 method set_readfunction : (int -> string) -> unit
573 method set_infilesize : int -> unit
574 method set_url : string -> unit
575 method set_proxy : string -> unit
576 method set_proxyport : int -> unit
577 method set_httpproxytunnel : bool -> unit
578 method set_verbose : bool -> unit
579 method set_header : bool -> unit
580 method set_noprogress : bool -> unit
581 method set_nosignal : bool -> unit
582 method set_nobody : bool -> unit
583 method set_failonerror : bool -> unit
584 method set_upload : bool -> unit
585 method set_post : bool -> unit
586 method set_ftplistonly : bool -> unit
587 method set_ftpappend : bool -> unit
588 method set_netrc : curlNETRCOption -> unit
589 method set_encoding : curlEncoding -> unit
590 method set_followlocation : bool -> unit
591 method set_transfertext : bool -> unit
592 method set_put : bool -> unit
593 method set_userpwd : string -> unit
594 method set_proxyuserpwd : string -> unit
595 method set_range : string -> unit
596 method set_errorbuffer : string ref -> unit
597 method set_timeout : int -> unit
598 method set_postfields : string -> unit
599 method set_postfieldsize : int -> unit
600 method set_referer : string -> unit
601 method set_useragent : string -> unit
602 method set_ftpport : string -> unit
603 method set_lowspeedlimit : int -> unit
604 method set_lowspeedtime : int -> unit
605 method set_resumefrom : int -> unit
606 method set_cookie : string -> unit
607 method set_httpheader : string list -> unit
608 method set_httppost : curlHTTPPost list -> unit
609 method set_sslcert : string -> unit
610 method set_sslcerttype : string -> unit
611 method set_sslcertpasswd : string -> unit
612 method set_sslkey : string -> unit
613 method set_sslkeytype : string -> unit
614 method set_sslkeypasswd : string -> unit
615 method set_sslengine : string -> unit
616 method set_sslenginedefault : bool -> unit
617 method set_crlf : bool -> unit
618 method set_quote : string list -> unit
619 method set_postquote : string list -> unit
620 method set_headerfunction: (string -> int) -> unit
621 method set_cookiefile : string -> unit
622 method set_sslversion : int -> unit
623 method set_timecondition : curlTimeCondition -> unit
624 method set_timevalue : int32 -> unit
625 method set_customrequest : string -> unit
626 method set_interface : string -> unit
627 method set_krb4level : curlKRB4Level -> unit
628 method set_progressfunction :
629 (float -> float -> float -> float -> bool) -> unit
630 method set_sslverifypeer : bool -> unit
631 method set_cainfo : string -> unit
632 method set_capath : string -> unit
633 method set_filetime : bool -> unit
634 method set_maxredirs : int -> unit
635 method set_maxconnects : int -> unit
636 method set_closepolicy : curlClosePolicy -> unit
637 method set_freshconnect : bool -> unit
638 method set_forbidreuse : bool -> unit
639 method set_randomfile : string -> unit
640 method set_egdsocket : string -> unit
641 method set_connecttimeout : int -> unit
642 method set_httpget : bool -> unit
643 method set_sslverifyhost : curlSSLVerifyHost -> unit
644 method set_cookiejar : string -> unit
645 method set_sslcipherlist : string -> unit
646 method set_httpversion : curlHTTPVersion -> unit
647 method set_ftpuseepsv : bool -> unit
648 method set_dnscachetimeout : int -> unit
649 method set_dnsuseglobalcache : bool -> unit
650 method set_debugfunction : (t -> curlDebugType -> string -> unit) -> unit
651 method set_private : string -> unit
652 method set_http200aliases : string list -> unit
653 method set_unrestrictedauth : bool -> unit
654 method set_ftpuseeprt : bool -> unit
655 method set_httpauth : curlAuth list -> unit
656 method set_ftpcreatemissingdirs : bool -> unit
657 method set_proxyauth : curlAuth list -> unit
658 method set_ftpresponsetimeout : int -> unit
659 method set_ipresolve : curlIPResolve -> unit
660 method set_maxfilesize : int32 -> unit
661 method set_infilesizelarge : int64 -> unit
662 method set_resumefromlarge : int64 -> unit
663 method set_maxfilesizelarge : int64 -> unit
664 method set_netrcfile : string -> unit
665 method set_ftpssl : curlFTPSSL -> unit
666 method set_postfieldsizelarge : int64 -> unit
667 method set_tcpnodelay : bool -> unit
668 method set_ftpsslauth : curlFTPSSLAuth -> unit
669 method set_ioctlfunction : (t -> curlIOCmd -> curlIOErr) -> unit
670 method set_ftpaccount : string -> unit
671 method set_cookielist : string -> unit
672 method set_ignorecontentlength : bool -> unit
673 method set_ftpskippasvip : bool -> unit
674 method set_ftpfilemethod : curlFTPMethod -> unit
675 method set_localport : int -> unit
676 method set_localportrange : int -> unit
677 method set_connectonly : bool -> unit
678 method set_maxsendspeedlarge : int64 -> unit
679 method set_maxrecvspeedlarge : int64 -> unit
680 method set_ftpalternativetouser : string -> unit
681 method set_sslsessionidcache : bool -> unit
682 method set_sshauthtypes : curlSSHAuthTypes list -> unit
683 method set_sshpublickeyfile : string -> unit
684 method set_sshprivatekeyfile : string -> unit
685 method set_ftpsslccc : curlFTPSSLCCC -> unit
686 method set_timeoutms : int -> unit
687 method set_connecttimeoutms : int -> unit
688 method set_httptransferdecoding : bool -> unit
689 method set_httpcontentdecoding : bool -> unit
690 method set_newfileperms : int -> unit
691 method set_newdirectoryperms : int -> unit
692 method set_post301 : bool -> unit
693 method set_sshhostpublickeymd5 : string -> unit
694 method set_copypostfields : string -> unit
695 method set_proxytransfermode : bool -> unit
696 method set_seekfunction : (int64 -> curlSeek -> int) -> unit
698 method get_effectiveurl : string
699 method get_httpcode : int
700 method get_responsecode : int
701 method get_totaltime : float
702 method get_namelookuptime : float
703 method get_connecttime : float
704 method get_pretransfertime : float
705 method get_sizeupload : float
706 method get_sizedownload : float
707 method get_speeddownload : float
708 method get_speedupload : float
709 method get_headersize : int
710 method get_requestsize : int
711 method get_sslverifyresult : int
712 method get_filetime : float
713 method get_contentlengthdownload : float
714 method get_contentlengthupload : float
715 method get_starttransfertime : float
716 method get_contenttype : string
717 method get_redirecttime : float
718 method get_redirectcount : int
719 method get_private : string
720 method get_httpconnectcode : int
721 method get_httpauthavail : curlAuth list
722 method get_proxyauthavail : curlAuth list
723 method get_oserrno : int
724 method get_numconnects : int
725 method get_sslengines : string list
726 method get_cookielist : string list
727 method get_lastsocket : int
728 method get_ftpentrypath : string
731 (** Curl multi stack. Functions may raise [Failure] on critical errors *)
732 module Multi : sig
734 (** type of Curl multi stack *)
735 type mt
737 (** create new multi stack *)
738 val create : unit -> mt
740 (** add handle to multi stack *)
741 val add : mt -> t -> unit
743 (** perform pending data transfers (if any) on all handles currently in multi stack
744 @return the number of handles that still transfer data *)
745 val perform : mt -> int
747 (** wait till there are some active data transfers on multi stack
748 @return whether [perform] should be called *)
749 val wait : mt -> bool
751 (** remove finished handle from the multi stack if any. The handle can be reused *)
752 val remove_finished : mt -> (t * curlCode) option
754 (** destroy multi handle (all transfers are stopped, but individual handles are left alive) *)
755 val cleanup : mt -> unit