Czech translation update (via transifex.net)
[cinaest] / vapi / libcurl.vapi
1 [CCode (cheader_filename = "curl/curl.h")]
2 namespace Curl {
3         [CCode (cname = "CURL_GLOBAL_SSL")]
4         public const long GLOBAL_SSL;
5         [CCode (cname = "CURL_GLOBAL_WIN32")]
6         public const long GLOBAL_WIN32;
7         [CCode (cname = "CURL_GLOBAL_ALL")]
8         public const long GLOBAL_ALL;
9         [CCode (cname = "CURL_GLOBAL_NOTHING")]
10         public const long GLOBAL_NOTHING;
11         [CCode (cname = "CURL_GLOBAL_DEFAULT")]
12         public const int GLOBAL_DEFAULT;
13         public Curl.Code global_init (long flags);
14         public Curl.Code global_init_mem (long flags, Curl.MallocCallback m, Curl.FreeCallback f, Curl.ReallocCallback r, Curl.StrdupCallback s, Curl.CallocCallback c);
15         public static void global_cleanup ();
16         [CCode (cname = "CURL", cprefix = "curl_easy_", unref_function = "curl_easy_cleanup")]
17         public class EasyHandle {
18                 [CCode (cname = "curl_easy_init")]
19                 public EasyHandle ();
20                 [PrintfFormat]
21                 public Curl.Code setopt (Curl.Option option, ...);
22                 public Curl.Code perform ();
23                 [PrintfFormat]
24                 public Curl.Code getinfo (Curl.Info info, ...);
25                 public Curl.EasyHandle duphandle ();
26                 public void reset ();
27                 public Curl.Code recv (void *buffer, size_t buflen, out size_t n);
28                 public Curl.Code send (void *buffer, size_t buflen, out size_t n);
29                 public string escape (string @string, int length);
30                 public string unescape (string @string, int length, out int outlength);
31                 [CCode (has_target = false)]
32                 public delegate int SocketCallback (Curl.Socket s, int what, void* userp, void *socketp);
33         }
34         [CCode (cname = "CURLcode", cprefix = "CURLE_")]
35         public enum Code {
36                 OK,
37                 UNSUPPORTED_PROTOCOL,
38                 FAILED_INIT,
39                 URL_MALFORMAT,
40                 COULDNT_RESOLVE_PROXY,
41                 COULDNT_RESOLVE_HOST,
42                 COULDNT_CONNECT,
43                 FTP_WEIRD_SERVER_REPLY,
44                 REMOTE_ACCESS_DENIED,
45                 FTP_WEIRD_PASS_REPLY,
46                 FTP_WEIRD_PASV_REPLY,
47                 FTP_WEIRD_227_FORMAT,
48                 FTP_CANT_GET_HOST,
49                 FTP_COULDNT_SET_TYPE,
50                 PARTIAL_FILE,
51                 FTP_COULDNT_RETR_FILE,
52                 QUOTE_ERROR,
53                 HTTP_RETURNED_ERROR,
54                 WRITE_ERROR,
55                 UPLOAD_FAILED,
56                 READ_ERROR,
57                 OUT_OF_MEMORY,
58                 OPERATION_TIMEDOUT,
59                 FTP_PORT_FAILED,
60                 FTP_COULDNT_USE_REST,
61                 RANGE_ERROR,
62                 HTTP_POST_ERROR,
63                 SSL_CONNECT_ERROR,
64                 BAD_DOWNLOAD_RESUME,
65                 FILE_COULDNT_READ_FILE,
66                 LDAP_CANNOT_BIND,
67                 LDAP_SEARCH_FAILED,
68                 FUNCTION_NOT_FOUND,
69                 ABORTED_BY_CALLBACK,
70                 BAD_FUNCTION_ARGUMENT,
71                 INTERFACE_FAILED,
72                 TOO_MANY_REDIRECTS,
73                 UNKNOWN_TELNET_OPTION,
74                 TELNET_OPTION_SYNTAX,
75                 PEER_FAILED_VERIFICATION,
76                 GOT_NOTHING,
77                 SSL_ENGINE_NOTFOUND,
78                 SSL_ENGINE_SETFAILED,
79                 SEND_ERROR,
80                 RECV_ERROR,
81                 SSL_CERTPROBLEM,
82                 SSL_CIPHER,
83                 SSL_CACERT,
84                 BAD_CONTENT_ENCODING,
85                 LDAP_INVALID_URL,
86                 FILESIZE_EXCEEDED,
87                 USE_SSL_FAILED,
88                 SEND_FAIL_REWIND,
89                 SSL_ENGINE_INITFAILED,
90                 LOGIN_DENIED,
91                 TFTP_NOTFOUND,
92                 TFTP_PERM,
93                 REMOTE_DISK_FULL,
94                 TFTP_ILLEGAL,
95                 TFTP_UNKNOWNID,
96                 REMOTE_FILE_EXISTS,
97                 TFTP_NOSUCHUSER,
98                 CONV_FAILED,
99                 CONV_REQD,
100                 SSL_CACERT_BADFILE,
101                 REMOTE_FILE_NOT_FOUND,
102                 SSH,
103                 SSL_SHUTDOWN_FAILED,
104                 AGAIN,
105                 SSL_CRL_BADFILE,
106                 SSL_ISSUER_ERROR,
107                 [CCode (cname = "CURL_LAST")]
108                 LAST
109         }
110         [CCode (name = "CURLoption", cprefix = "CURLOPT_")]
111         public enum Option {
112                 FILE,
113                 URL,
114                 PORT,
115                 PROXY,
116                 USERPWD,
117                 PROXYUSERPWD,
118                 RANGE,
119                 INFILE,
120                 WRITEDATA,
121                 READDATA,
122                 ERRORBUFFER,
123                 WRITEFUNCTION,
124                 READFUNCTION,
125                 TIMEOUT,
126                 INFILESIZE,
127                 POSTFIELDS,
128                 REFERER,
129                 FTPPORT,
130                 USERAGENT,
131                 LOW_SPEED_LIMIT,
132                 LOW_SPEED_TIME,
133                 RESUME_FROM,
134                 COOKIE,
135                 HTTPHEADER,
136                 HTTPPOST,       // struct HTTPPost
137                 SSLCERT,
138                 KEYPASSWD,
139                 CRLF,
140                 QUOTE,
141                 WRITEHEADER,
142                 HEADERDATA,
143                 COOKIEFILE,
144                 SSLVERSION,
145                 TIMECONDITION,
146                 TIMEVALUE,
147                 CUSTOMREQUEST,
148                 STDERR,
149                 POSTQUOTE,
150                 WRITEINFO,
151                 VERBOSE,
152                 HEADER,
153                 NOPROGRESS,
154                 NOBODY,
155                 FAILONERROR,
156                 UPLOAD,
157                 POST,
158                 DIRLISTONLY,
159                 APPEND,
160                 NETRC,
161                 FOLLOWLOCATION,
162                 TRANSFERTEXT,
163                 PUT,
164                 PROGRESSFUNCTION,
165                 PROGRESSDATA,
166                 AUTOREFERER,
167                 PROXYPORT,
168                 POSTFIELDSIZE,
169                 HTTPPROXYTUNNEL,
170                 INTERFACE,
171                 KRBLEVEL,
172                 SSL_VERIFYPEER,
173                 CAINFO,
174                 MAXREDIRS,
175                 FILETIME,
176                 TELNETOPTIONS,
177                 MAXCONNECTS,
178                 CLOSEPOLICY,
179                 FRESH_CONNECT,
180                 FORBID_REUSE,
181                 RANDOM_FILE,
182                 EGDSOCKET,
183                 CONNECTTIMEOUT,
184                 HEADERFUNCTION,
185                 HTTPGET,
186                 SSL_VERIFYHOST,
187                 COOKIEJAR,
188                 SSL_CIPHER_LIST,
189                 HTTP_VERSION,
190                 FTP_USE_EPSV,
191                 SSLCERTTYPE,
192                 SSLKEY,
193                 SSLKEYTYPE,
194                 SSLENGINE,
195                 SSLENGINE_DEFAULT,
196                 DNS_USE_GLOBAL_CACHE,
197                 DNS_CACHE_TIMEOUT,
198                 PREQUOTE,
199                 DEBUGFUNCTION,
200                 DEBUGDATA,
201                 COOKIESESSION,
202                 CAPATH,
203                 BUFFERSIZE,
204                 NOSIGNAL,
205                 SHARE,
206                 PROXYTYPE ,
207                 ENCODING,
208                 PRIVATE,
209                 HTTP200ALIASES,
210                 UNRESTRICTED_AUTH,
211                 FTP_USE_EPRT,
212                 HTTPAUTH,
213                 SSL_CTX_FUNCTION,
214                 SSL_CTX_DATA,
215                 FTP_CREATE_MISSING_DIRS,
216                 PROXYAUTH,
217                 FTP_RESPONSE_TIMEOUT,
218                 IPRESOLVE,
219                 MAXFILESIZE,
220                 INFILESIZE_LARGE,
221                 RESUME_FROM_LARGE,
222                 MAXFILESIZE_LARGE,
223                 NETRC_FILE,
224                 USE_SSL,
225                 POSTFIELDSIZE_LARGE,
226                 TCP_NODELAY,
227                 FTPSSLAUTH,
228                 IOCTLFUNCTION,
229                 IOCTLDATA,
230                 FTP_ACCOUNT,
231                 COOKIELIST,
232                 IGNORE_CONTENT_LENGTH,
233                 FTP_SKIP_PASV_IP,
234                 FTP_FILEMETHOD,
235                 LOCALPORT,
236                 LOCALPORTRANGE,
237                 CONNECT_ONLY,
238                 CONV_FROM_NETWORK_FUNCTION,
239                 CONV_TO_NETWORK_FUNCTION,
240                 CONV_FROM_UTF8_FUNCTION,
241                 MAX_SEND_SPEED_LARGE,
242                 MAX_RECV_SPEED_LARGE,
243                 FTP_ALTERNATIVE_TO_USER,
244                 SOCKOPTFUNCTION,
245                 SOCKOPTDATA,
246                 SSL_SESSIONID_CACHE,
247                 SSH_AUTH_TYPES,
248                 SSH_PUBLIC_KEYFILE,
249                 SSH_PRIVATE_KEYFILE,
250                 FTP_SSL_CCC,
251                 TIMEOUT_MS,
252                 CONNECTTIMEOUT_MS,
253                 HTTP_TRANSFER_DECODING,
254                 HTTP_CONTENT_DECODING,
255                 NEW_FILE_PERMS,
256                 NEW_DIRECTORY_PERMS,
257                 POSTREDIR,
258                 SSH_HOST_PUBLIC_KEY_MD5,
259                 OPENSOCKETFUNCTION,
260                 OPENSOCKETDATA,
261                 COPYPOSTFIELDS,
262                 PROXY_TRANSFER_MODE,
263                 SEEKFUNCTION,
264                 SEEKDATA,
265                 CRLFILE,
266                 ISSUERCERT,
267                 ADDRESS_SCOPE,
268                 CERTINFO,
269                 USERNAME,
270                 PASSWORD,
271                 PROXYUSERNAME,
272                 PROXYPASSWORD,
273                 NOPROXY,
274                 TFTP_BLKSIZE,
275                 SOCKS5_GSSAPI_SERVICE,
276                 SOCKS5_GSSAPI_NEC,
277                 PROTOCOLS,
278                 REDIR_PROTOCOLS,
279                 SSH_KNOWNHOSTS,
280                 SSH_KEYFUNCTION,
281                 SSH_KEYDATA,
282                 LASTENTRY
283         }
284         [CCode (name = "CURLINFO", cprefix = "CURLINFO_")]
285         public enum Info {
286                 STRING,
287                 LONG,
288                 DOUBLE,
289                 SLIST,
290                 EFFECTIVE_URL,
291                 RESPONSE_CODE,
292                 TOTAL_TIME,
293                 NAMELOOKUP_TIME,
294                 CONNECT_TIME,
295                 PRETRANSFER_TIME,
296                 SIZE_UPLOAD,
297                 SIZE_DOWNLOAD,
298                 SPEED_DOWNLOAD,
299                 SPEED_UPLOAD,
300                 HEADER_SIZE,
301                 REQUEST_SIZE,
302                 SSL_VERIFYRESULT,
303                 FILETIME,
304                 CONTENT_LENGTH_DOWNLOAD,
305                 CONTENT_LENGTH_UPLOAD,
306                 STARTTRANSFER_TIME,
307                 CONTENT_TYPE,
308                 REDIRECT_TIME,
309                 REDIRECT_COUNT,
310                 PRIVATE,
311                 HTTP_CONNECTCODE,
312                 HTTPAUTH_AVAIL,
313                 PROXYAUTH_AVAIL,
314                 OS_ERRNO,
315                 NUM_CONNECTS,
316                 SSL_ENGINES,
317                 COOKIELIST,
318                 LASTSOCKET,
319                 FTP_ENTRY_PATH,
320                 REDIRECT_URL,
321                 PRIMARY_IP,
322                 APPCONNECT_TIME,
323                 CERTINFO,
324                 CONDITION_UNMET,
325                 LASTONE
326         }
327         [CCode (cname = "curl_progress_callback")]
328         public delegate int ProgressCallback (void* clientp, double dltotal, double dlnow, double ultotal, double ulnow);
329         [CCode (cname = "CURL_WRITEFUNC_PAUSE")]
330         public const size_t WRITEFUNC_PAUSE;
331         [CCode (cname = "curl_write_callback")]
332         public delegate size_t WriteCallback (char* buffer, size_t size, size_t nitems, void *outstream);
333         [CCode (cname = "CURL_SEEKFUNC_OK")]
334         public const int SEEKFUNC_OK;
335         [CCode (cname = "CURL_SEEKFUNC_FAIL")]
336         public const int SEEKFUNC_FAIL;
337         [CCode (cname = "CURL_SEEKFUNC_CANTSEEK")]
338         public const int SEEKFUNC_CANTSEEK;
339         [Ccode (cname = "curl_seek_callback")]
340         public delegate int SeekCallback (void* instream, Curl.Offset offset, int origin);
341         [CCode (cname = "CURL_READFUNC_ABORT")]
342         public const size_t READFUNC_ABORT;
343         [CCode (cname = "CURL_READFUNC_PAUSE")]
344         public const size_t READFUNC_PAUSE;
345         [CCode (cname = "curl_read_callback")]
346         public delegate size_t ReadCallback (char* buffer, size_t size, size_t nitems, void *instream);
347         [CCode (cname = "curlsocktype", cprefix = "CURLSOCKTYPE_")]
348         public enum SocketType {
349                 IPCXN,
350                 LAST
351         }
352         [CCode (cname = "curl_sockopt_callback")]
353         public delegate size_t SockoptCallback (void* clientp, Curl.Socket curlfd, Curl.SocketType purpose);
354         [CCode (cname = "curlioerr", cprefix = "CURLIOE_")]
355         public enum IOError {
356                 OK,
357                 UNKNOWNCMD,
358                 FAILRESTART,
359                 LAST
360         }
361         [CCode (cname = "curliocmd", cprefix = "CURLIOCMD_")]
362         public enum IOCmd {
363                 NOP,
364                 RESTARTREAD,
365                 LAST
366         }
367         [CCode (cname = "curl_ioctl_callback")]
368         public delegate Curl.IOError IoctlCallback (Curl.EasyHandle handle, int cmd, void* clientp);
369         [CCode (cname = "curl_malloc_callback")]
370         public delegate void* MallocCallback (size_t size);
371         [CCode (cname = "curl_free_callback")]
372         public delegate void FreeCallback (void* ptr);
373         [CCode (cname = "curl_realloc_callback")]
374         public delegate void* ReallocCallback (void* ptr, size_t size);
375         [CCode (cname = "curl_strdup_callback")]
376         public delegate string StrdupCallback (string str);
377         [CCode (cname = "curl_calloc_callback")]
378         public delegate void* CallocCallback (size_t nmemb, size_t size);
379         [CCode (cname = "curl_infotype", cprefix = "CURLINFO_")]
380         public enum InfoType {
381                 TEXT,
382                 HEADER_IN,
383                 HEADER_OUT,
384                 DATA_IN,
385                 DATA_OUT,
386                 SSL_DATA_IN,
387                 SSL_DATA_OUT
388         }
389         [CCode (cname = "curl_debug_callback")]
390         public delegate int DebugCallback (Curl.EasyHandle handle, Curl.InfoType type, [CCode (array_length_type = "size_t")] char[] data, void* userptr);
391         [CCode (cname = "curl_conv_callback")]
392         public delegate Curl.Code ConvCallback ([CCode (array_length_type = "size_t")] char[] buffer);
393         [CCode (cname = "curl_ssl_ctx_callback")]
394         public delegate Curl.Code SSLCtxCallback (Curl.EasyHandle curl, void* ssl_ctx, void* userptr);
395         [CCode (cname = "curl_proxytype", cprefix = "CURLPROXY_")]
396         public enum ProxyType {
397                 HTTP,
398                 HTTP_1_0,
399                 SOCKS4,
400                 SOCKS5,
401                 SOCKS4A,
402                 SOCKS5_HOSTNAME
403         }
404         namespace AuthType {
405                 [CCode (cname = "CURLAUTH_NONE")]
406                 public const int NONE;
407                 [CCode (cname = "CURLAUTH_BASIC")]
408                 public const int BASIC;
409                 [CCode (cname = "CURLAUTH_DIGEST")]
410                 public const int DIGEST;
411                 [CCode (cname = "CURLAUTH_GSSNEGOTIATE")]
412                 public const int GSSNEGOTIATE;
413                 [CCode (cname = "CURLAUTH_NTLM")]
414                 public const int NTLM;
415                 [CCode (cname = "CURLAUTH_DIGEST_IE")]
416                 public const int DIGEST_IE;
417                 [CCode (cname = "CURLAUTH_ANY")]
418                 public const int ANY;
419                 [CCode (cname = "CURLAUTH_ANYSAFE")]
420                 public const int ANYSAFE;
421         }
422         namespace SSHAuthType {
423                 [CCode (cname = "CURLSSH_AUTH_ANY")]
424                 public const int ANY;
425                 [CCode (cname = "CURLSSH_AUTH_NONE")]
426                 public const int NONE;
427                 [CCode (cname = "CURLSSH_AUTH_PUBLICKEY")]
428                 public const int PUBLICKEY;
429                 [CCode (cname = "CURLSSH_AUTH_PASSWORD")]
430                 public const int PASSWORD;
431                 [CCode (cname = "CURLSSH_AUTH_HOST")]
432                 public const int HOST;
433                 [CCode (cname = "CURLSSH_AUTH_KEYBOARD")]
434                 public const int KEYBOARD;
435                 [CCode (cname = "CURLSSH_AUTH_DEFAULT")]
436                 public const int DEFAULT;
437         }
438         public const int ERROR_SIZE;
439         [CCode (cname = "curl_usessl", cprefix = "CURLUSESSL_")]
440         public enum UseSSL {
441                 NONE,
442                 TRY,
443                 CONTROL,
444                 ALL
445         }
446         [CCode (cname = "curl_ftpccc", cprefix = "CURLFTPSSL_")]
447         enum FTPSSL {
448                 CCC_NONE,
449                 CCC_PASSIVE,
450                 CCC_ACTIVE
451         }
452         [CCode (cname = "curl_ftpauth", cprefix = "CURLFTPAUTH_")]
453         enum FTPAuthType {
454                 DEFAULT,
455                 SSL,
456                 TLS
457         }
458         [CCode (cname = "curl_ftpcreatedir", cprefix = "CURLFTP_CREATE_DIR_")]
459         enum FTPCreateDir {
460                 NONE,
461                 [CCode (cname = "CURLFTP_CREATE_DIR")]
462                 CREATE,
463                 RETRY
464         }
465         [CCode (cname = "curl_ftpmethod", cprefix = "CURLFTPMETHOD_")]
466         enum FTPMethod {
467                 DEFAULT,
468                 MULTICWD,
469                 NOCWD,
470                 SINGLECWD
471         }
472         namespace Proto {
473                 [CCode (cname = "CURLPROTO_HTTP")]
474                 public const int HTTP;
475                 [CCode (cname = "CURLPROTO_HTTPS")]
476                 public const int HTTPS;
477                 [CCode (cname = "CURLPROTO_FTP")]
478                 public const int FTP;
479                 [CCode (cname = "CURLPROTO_FTPS")]
480                 public const int FTPS;
481                 [CCode (cname = "CURLPROTO_SCP")]
482                 public const int SCP;
483                 [CCode (cname = "CURLPROTO_SFTP")]
484                 public const int SFTP;
485                 [CCode (cname = "CURLPROTO_TELNET")]
486                 public const int TELNET;
487                 [CCode (cname = "CURLPROTO_LDAP")]
488                 public const int LDAP;
489                 [CCode (cname = "CURLPROTO_LDAPS")]
490                 public const int LDAPS;
491                 [CCode (cname = "CURLPROTO_DICT")]
492                 public const int DICT;
493                 [CCode (cname = "CURLPROTO_FILE")]
494                 public const int FILE;
495                 [CCode (cname = "CURLPROTO_TFTP")]
496                 public const int TFTP;
497                 [CCode (cname = "CURLPROTO_ALL")]
498                 public const int ALL;
499         }
500         public const int IPRESOLVE_WHATEVER;
501         public const int IPRESOLVE_V4;
502         public const int IPRESOLVE_V6;
503         public const int REDIR_GET_ALL;
504         public const int REDIR_POST_301;
505         public const int REDIR_POST_302;
506         public const int REDIR_POST_ALL;
507         [CCode (cname = "curl_TimeCond", cprefix = "CURL_TIMECOND_")]
508         public enum TimeCond {
509                 NONE,
510                 IFMODSINCE,
511                 IFUNMODSINCE,
512                 LASTMOD
513         }
514         [CCode (cname = "CURLformoption", cprefix = "CURLFORM_")]
515         public enum FormOption {
516                 COPYNAME,
517                 PTRNAME,
518                 NAMELENGTH,
519                 COPYCONTENTS,
520                 PTRCONTENTS,
521                 CONTENTSLENGTH,
522                 FILECONTENT,
523                 ARRAY,
524                 OBSOLETE,
525                 FILE,
526                 BUFFER,
527                 BUFFERPTR,
528                 BUFFERLENGTH,
529                 CONTENTTYPE,
530                 CONTENTHEADER,
531                 FILENAME,
532                 END,
533                 OBSOLETE2,
534                 STREAM
535         }
536         [CCode (cname = "struct curl_forms")]
537         public struct Forms {
538                 public Curl.FormOption option;
539                 public string value;
540         }
541         [CCode (cname = "CURLFORMcode", cprefix = "CURL_FORMADD_")]
542         public enum FormCode {
543                 OK,
544                 MEMORY,
545                 OPTION_TWICE,
546                 NULL,
547                 UNKNOWN_OPTION,
548                 INCOMPLETE,
549                 ILLEGAL_ARRAY,
550                 DISABLED
551         }
552         public Curl.FormCode formadd (ref Curl.HTTPPost httppost, ref Curl.HTTPPost last_post, ...);
553         [CCode (cname = "curl_formget_callback")]
554         public delegate size_t FormgetCallback (void* arg, [CCode (array_size_type = "size_t")] char[] buf);
555         public int formget (Curl.HTTPPost form, void* arg, Curl.FormgetCallback append);
556         public unowned string version ();
557         public void free (void* p);
558         [Compact]
559         [CCode (cname = "struct curl_slist", cprefix = "curl_slist_", free_function = "curl_slist_free_all")]
560         public class SList {
561                 public char* data;
562                 public Curl.SList next;
563                 public SList append (string data);
564         }
565         [CCode (cname = "CURLMcode", cprefix = "CURLM_")]
566         public enum MultiCode {
567                 CALL_MULTI_PERFORM,
568                 CALL_MULTI_SOCKET,
569                 OK,
570                 BAD_HANDLE,
571                 BAD_EASY_HANDLE,
572                 OUT_OF_MEMORY,
573                 INTERNAL_ERROR,
574                 BAD_SOCKET,
575                 UNKNOWN_OPTION
576         }
577         [CCode (cname = "CURLMSG", cprefix = "CURLMSG_")]
578         public enum MessageType {
579                 NONE,
580                 DONE
581         }
582         [CCode (cname = "CURLMsg")]
583         public struct Message {
584                 public Curl.MessageType msg;
585                 public Curl.EasyHandle easy_handle;
586                 [CCode (cname = "data.whatever")]
587                 public void* whatever;
588                 [CCode (cname = "data.result")]
589                 public Curl.Code result;
590         }
591         [CCode (cname = "CURLM", cprefix = "curl_multi_", destroy_function = "curl_multi_cleanup")]
592         public class MultiHandle {
593                 [CCode (cname = "curl_multi_init")]
594                 public MultiHandle ();
595                 public Curl.MultiCode add_handle (Curl.EasyHandle curl_handle);
596                 public Curl.MultiCode remove_handle (Curl.EasyHandle curl_handle);
597                 public Curl.MultiCode fdset (Posix.fd_set? read_fd_set, Posix.fd_set? write_fd_set, Posix.fd_set? exc_fd_set, out int max_fd);
598                 public Curl.MultiCode perform (out int running_handles);
599                 public unowned Curl.Message info_read (out int msgs_in_queue);
600                 public unowned string strerror (Curl.MultiCode code);
601                 public Curl.MultiCode socket_action (Curl.Socket s, int ev_bitmask, out int running_handles);
602                 public Curl.MultiCode socket_all (out int running_handles);
603                 public Curl.MultiCode timeout (out long milliseconds);
604                 [Printf]
605                 public Curl.MultiCode setopt (Curl.MultiOption option, ...);
606                 public Curl.MultiCode assign (Curl.Socket sockfd, void* sockp);
607                 [CCode (has_target = false)]
608                 public delegate int TimerCallback (long timeout_ms, void* userp);
609         }
610         [SimpleType]
611         [CCode (cname = "curl_socket_t")]
612         public struct Socket {
613         }
614         [SimpleType]
615         [CCode (cname = "curl_off_t")]
616         public struct Offset {
617         }
618         [CCode (cname = "CURL_SOCKET_BAD")]
619         public const Curl.Socket SOCKET_BAD;
620         [CCode (cname = "CURL_POLL_NONE")]
621         public const int POLL_NONE;
622         [CCode (cname = "CURL_POLL_IN")]
623         public const int POLL_IN;
624         [CCode (cname = "CURL_POLL_OUT")]
625         public const int POLL_OUT;
626         [CCode (cname = "CURL_POLL_INOUT")]
627         public const int POLL_INOUT;
628         [CCode (cname = "CURL_POLL_REMOVE")]
629         public const int POLL_REMOVE;
630         [CCode (cname = "CURL_SOCKET_TIMEOUT")]
631         public const int SOCKET_TIMEOUT;
632         [CCode (cname = "CURL_CSELECT_IN")]
633         public const int CSELECT_IN;
634         [CCode (cname = "CURL_CSELECT_OUT")]
635         public const int CSELECT_OUT;
636         [CCode (cname = "CURL_CSELECT_ERR")]
637         public const int CSELECT_ERR;
638         [CCode (cname = "CURLMoption")]
639         public enum MultiOption {
640                 SOCKETFUNCTION,
641                 SOCKETDATA,
642                 PIPELINING,
643                 TIMERFUNCTION,
644                 TIMERDATA,
645                 MAXCONNECTS
646         }
647         [Compact]
648         [CCode (cname = "curl_httppost", unref_function = "curl_formfree")]
649         public class HTTPPost {
650                 public Curl.HTTPPost next;
651                 [CCode (array_length_cname = "namelength", array_length_type = "long")]
652                 public weak char[] name;
653                 [CCode (array_length_cname = "contentslength", array_length_type = "long")]
654                 public weak char[] contents;
655                 [CCode (array_length_cname = "bufferlength", array_length_type = "long")]
656                 public weak char[] buffer;
657                 public string contenttype;
658                 public Curl.SList contentheader;
659                 public Curl.HTTPPost more;
660                 public long flags;
661                 public string showfilename;
662                 public void* userp;
663                 [CCode (cname = "HTTPPOST_FILENAME")]
664                 public const long FILENAME;
665                 [CCode (cname = "HTTPPOST_READFILE")]
666                 public const long READFILE;
667                 [CCode (cname = "HTTPPOST_PTRCONTENTS")]
668                 public const long PTRCONTENTS;
669                 [CCode (cname = "HTTPPOST_BUFFER")]
670                 public const long BUFFER;
671                 [CCode (cname = "HTTPPOST_PTRBUFFER")]
672                 public const long PTRBUFFER;
673                 [CCode (cname = "HTTPPOST_CALLBACK")]
674                 public const long CALLBACK;
675         }
676         [CCode (cname = "LIBCURL_COPYRIGHT")]
677         public const string COPYRIGHT;
678         [CCode (cname = "LIBCURL_VERSION")]
679         public const string VERSION;
680         [CCode (cname = "LIBCURL_VERSION_MAJOR")]
681         public const int VERSION_MAJOR;
682         [CCode (cname = "LIBCURL_VERSION_MINOR")]
683         public const int VERSION_MINOR;
684         [CCode (cname = "LIBCURL_VERSION_PATCH")]
685         public const int VERSION_PATCH;
686         [CCode (cname = "LIBCURL_VERSION_NUM")]
687         public const int VERSION_NUM;
688         [CCode (cname = "LIBCURL_TIMESTAMP")]
689         public const string TIMESTAMP;
690 }