1 [CCode (cheader_filename = "curl/curl.h")]
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")]
21 public Curl.Code setopt (Curl.Option option, ...);
22 public Curl.Code perform ();
24 public Curl.Code getinfo (Curl.Info info, ...);
25 public Curl.EasyHandle duphandle ();
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);
32 [CCode (cname = "CURLcode", cprefix = "CURLE_")]
38 COULDNT_RESOLVE_PROXY,
41 FTP_WEIRD_SERVER_REPLY,
49 FTP_COULDNT_RETR_FILE,
63 FILE_COULDNT_READ_FILE,
68 BAD_FUNCTION_ARGUMENT,
71 UNKNOWN_TELNET_OPTION,
73 PEER_FAILED_VERIFICATION,
87 SSL_ENGINE_INITFAILED,
99 REMOTE_FILE_NOT_FOUND,
105 [CCode (cname = "CURL_LAST")]
108 [CCode (name = "CURLoption", cprefix = "CURLOPT_")]
134 HTTPPOST, // struct HTTPPost
194 DNS_USE_GLOBAL_CACHE,
213 FTP_CREATE_MISSING_DIRS,
215 FTP_RESPONSE_TIMEOUT,
230 IGNORE_CONTENT_LENGTH,
236 CONV_FROM_NETWORK_FUNCTION,
237 CONV_TO_NETWORK_FUNCTION,
238 CONV_FROM_UTF8_FUNCTION,
239 MAX_SEND_SPEED_LARGE,
240 MAX_RECV_SPEED_LARGE,
241 FTP_ALTERNATIVE_TO_USER,
251 HTTP_TRANSFER_DECODING,
252 HTTP_CONTENT_DECODING,
256 SSH_HOST_PUBLIC_KEY_MD5,
273 SOCKS5_GSSAPI_SERVICE,
282 [CCode (name = "CURLINFO", cprefix = "CURLINFO_")]
302 CONTENT_LENGTH_DOWNLOAD,
303 CONTENT_LENGTH_UPLOAD,
325 [CCode (cname = "curl_progress_callback")]
326 public delegate int ProgressCallback (void* clientp, double dltotal, double dlnow, double ultotal, double ulnow);
327 [CCode (cname = "CURL_WRITEFUNC_PAUSE")]
328 public const size_t WRITEFUNC_PAUSE;
329 [CCode (cname = "curl_write_callback")]
330 public delegate size_t WriteCallback (char* buffer, size_t size, size_t nitems, void *outstream);
331 [CCode (cname = "CURL_SEEKFUNC_OK")]
332 public const int SEEKFUNC_OK;
333 [CCode (cname = "CURL_SEEKFUNC_FAIL")]
334 public const int SEEKFUNC_FAIL;
335 [CCode (cname = "CURL_SEEKFUNC_CANTSEEK")]
336 public const int SEEKFUNC_CANTSEEK;
337 [Ccode (cname = "curl_seek_callback")]
338 public delegate int SeekCallback (void* instream, Curl.Offset offset, int origin);
339 [CCode (cname = "CURL_READFUNC_ABORT")]
340 public const size_t READFUNC_ABORT;
341 [CCode (cname = "CURL_READFUNC_PAUSE")]
342 public const size_t READFUNC_PAUSE;
343 [CCode (cname = "curl_read_callback")]
344 public delegate size_t ReadCallback (char* buffer, size_t size, size_t nitems, void *instream);
345 [CCode (cname = "curlsocktype", cprefix = "CURLSOCKTYPE_")]
346 public enum SocketType {
350 [CCode (cname = "curl_sockopt_callback")]
351 public delegate size_t SockoptCallback (void* clientp, Curl.Socket curlfd, Curl.SocketType purpose);
352 [CCode (cname = "curlioerr", cprefix = "CURLIOE_")]
353 public enum IOError {
359 [CCode (cname = "curliocmd", cprefix = "CURLIOCMD_")]
365 [CCode (cname = "curl_ioctl_callback")]
366 public delegate Curl.IOError IoctlCallback (Curl.EasyHandle handle, int cmd, void* clientp);
367 [CCode (cname = "curl_malloc_callback")]
368 public delegate void* MallocCallback (size_t size);
369 [CCode (cname = "curl_free_callback")]
370 public delegate void FreeCallback (void* ptr);
371 [CCode (cname = "curl_realloc_callback")]
372 public delegate void* ReallocCallback (void* ptr, size_t size);
373 [CCode (cname = "curl_strdup_callback")]
374 public delegate string StrdupCallback (string str);
375 [CCode (cname = "curl_calloc_callback")]
376 public delegate void* CallocCallback (size_t nmemb, size_t size);
377 [CCode (cname = "curl_infotype", cprefix = "CURLINFO_")]
378 public enum InfoType {
387 [CCode (cname = "curl_debug_callback")]
388 public delegate int DebugCallback (Curl.EasyHandle handle, Curl.InfoType type, [CCode (array_length_type = "size_t")] char[] data, void* userptr);
389 [CCode (cname = "curl_conv_callback")]
390 public delegate Curl.Code ConvCallback ([CCode (array_length_type = "size_t")] char[] buffer);
391 [CCode (cname = "curl_ssl_ctx_callback")]
392 public delegate Curl.Code SSLCtxCallback (Curl.EasyHandle curl, void* ssl_ctx, void* userptr);
393 [CCode (cname = "curl_proxytype", cprefix = "CURLPROXY_")]
394 public enum ProxyType {
403 [CCode (cname = "CURLAUTH_NONE")]
404 public const int NONE;
405 [CCode (cname = "CURLAUTH_BASIC")]
406 public const int BASIC;
407 [CCode (cname = "CURLAUTH_DIGEST")]
408 public const int DIGEST;
409 [CCode (cname = "CURLAUTH_GSSNEGOTIATE")]
410 public const int GSSNEGOTIATE;
411 [CCode (cname = "CURLAUTH_NTLM")]
412 public const int NTLM;
413 [CCode (cname = "CURLAUTH_DIGEST_IE")]
414 public const int DIGEST_IE;
415 [CCode (cname = "CURLAUTH_ANY")]
416 public const int ANY;
417 [CCode (cname = "CURLAUTH_ANYSAFE")]
418 public const int ANYSAFE;
420 namespace SSHAuthType {
421 [CCode (cname = "CURLSSH_AUTH_ANY")]
422 public const int ANY;
423 [CCode (cname = "CURLSSH_AUTH_NONE")]
424 public const int NONE;
425 [CCode (cname = "CURLSSH_AUTH_PUBLICKEY")]
426 public const int PUBLICKEY;
427 [CCode (cname = "CURLSSH_AUTH_PASSWORD")]
428 public const int PASSWORD;
429 [CCode (cname = "CURLSSH_AUTH_HOST")]
430 public const int HOST;
431 [CCode (cname = "CURLSSH_AUTH_KEYBOARD")]
432 public const int KEYBOARD;
433 [CCode (cname = "CURLSSH_AUTH_DEFAULT")]
434 public const int DEFAULT;
436 public const int ERROR_SIZE;
437 [CCode (cname = "curl_usessl", cprefix = "CURLUSESSL_")]
444 [CCode (cname = "curl_ftpccc", cprefix = "CURLFTPSSL_")]
450 [CCode (cname = "curl_ftpauth", cprefix = "CURLFTPAUTH_")]
456 [CCode (cname = "curl_ftpcreatedir", cprefix = "CURLFTP_CREATE_DIR_")]
459 [CCode (cname = "CURLFTP_CREATE_DIR")]
463 [CCode (cname = "curl_ftpmethod", cprefix = "CURLFTPMETHOD_")]
471 [CCode (cname = "CURLPROTO_HTTP")]
472 public const int HTTP;
473 [CCode (cname = "CURLPROTO_HTTPS")]
474 public const int HTTPS;
475 [CCode (cname = "CURLPROTO_FTP")]
476 public const int FTP;
477 [CCode (cname = "CURLPROTO_FTPS")]
478 public const int FTPS;
479 [CCode (cname = "CURLPROTO_SCP")]
480 public const int SCP;
481 [CCode (cname = "CURLPROTO_SFTP")]
482 public const int SFTP;
483 [CCode (cname = "CURLPROTO_TELNET")]
484 public const int TELNET;
485 [CCode (cname = "CURLPROTO_LDAP")]
486 public const int LDAP;
487 [CCode (cname = "CURLPROTO_LDAPS")]
488 public const int LDAPS;
489 [CCode (cname = "CURLPROTO_DICT")]
490 public const int DICT;
491 [CCode (cname = "CURLPROTO_FILE")]
492 public const int FILE;
493 [CCode (cname = "CURLPROTO_TFTP")]
494 public const int TFTP;
495 [CCode (cname = "CURLPROTO_ALL")]
496 public const int ALL;
498 public const int IPRESOLVE_WHATEVER;
499 public const int IPRESOLVE_V4;
500 public const int IPRESOLVE_V6;
501 public const int REDIR_GET_ALL;
502 public const int REDIR_POST_301;
503 public const int REDIR_POST_302;
504 public const int REDIR_POST_ALL;
505 [CCode (cname = "curl_TimeCond", cprefix = "CURL_TIMECOND_")]
506 public enum TimeCond {
512 [CCode (cname = "CURLformoption", cprefix = "CURLFORM_")]
513 public enum FormOption {
534 [CCode (cname = "struct curl_forms")]
535 public struct Forms {
536 public Curl.FormOption option;
539 [CCode (cname = "CURLFORMcode", cprefix = "CURL_FORMADD_")]
540 public enum FormCode {
550 public Curl.FormCode formadd (ref Curl.HTTPPost httppost, ref Curl.HTTPPost last_post, ...);
551 [CCode (cname = "curl_formget_callback")]
552 public delegate size_t FormgetCallback (void* arg, [CCode (array_size_type = "size_t")] char[] buf);
553 public int formget (Curl.HTTPPost form, void* arg, Curl.FormgetCallback append);
554 public weak string version ();
555 public void free (void* p);
557 [CCode (cname = "struct curl_slist", cprefix = "curl_slist_", free_function = "curl_slist_free_all")]
560 public Curl.SList next;
561 public SList append (string data);
563 [CCode (cname = "CURLMcode", cprefix = "CURLM_")]
564 public enum MultiCode {
575 [CCode (cname = "CURLMSG", cprefix = "CURLMSG_")]
576 public enum MessageType {
580 [CCode (cname = "CURLMsg")]
581 public struct Message {
582 public Curl.MessageType msg;
583 public Curl.EasyHandle easy_handle;
584 [CCode (cname = "data.whatever")]
585 public void* whatever;
586 [CCode (cname = "data.result")]
587 public Curl.Code result;
589 [CCode (cname = "CURLM", cprefix = "curl_multi_", destroy_function = "curl_multi_cleanup")]
590 public class MultiHandle {
591 [CCode (cname = "curl_multi_init")]
592 public MultiHandle ();
593 public Curl.MultiCode add_handle (Curl.EasyHandle curl_handle);
594 public Curl.MultiCode remove_handle (Curl.EasyHandle curl_handle);
595 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);
596 public Curl.MultiCode perform (out int running_handles);
597 public unowned Curl.Message info_read (out int msgs_in_queue);
598 public unowned string strerror (Curl.MultiCode code);
599 public Curl.MultiCode socket_action (Curl.Socket s, int ev_bitmask, out int running_handles);
600 public Curl.MultiCode socket_all (out int running_handles);
601 public Curl.MultiCode timeout (out long milliseconds);
603 public Curl.MultiCode setopt (Curl.MultiOption option, ...);
604 public Curl.MultiCode assign (Curl.Socket sockfd, void* sockp);
606 public static delegate int TimerCallback (Curl.MultiHandle multi, long timeout_ms, void* userp);
607 public static delegate int SocketCallback (Curl.EasyHandle easy, Curl.Socket s, int what, void* userp, void *socketp);
609 [CCode (cname = "curl_socket_t")]
610 public struct Socket {
613 [CCode (cname = "curl_off_t")]
614 public struct Offset {
616 [CCode (cname = "CURL_SOCKET_BAD")]
617 public const Curl.Socket SOCKET_BAD;
618 [CCode (cname = "CURL_POLL_NONE")]
619 public const int POLL_NONE;
620 [CCode (cname = "CURL_POLL_IN")]
621 public const int POLL_IN;
622 [CCode (cname = "CURL_POLL_OUT")]
623 public const int POLL_OUT;
624 [CCode (cname = "CURL_POLL_INOUT")]
625 public const int POLL_INOUT;
626 [CCode (cname = "CURL_POLL_REMOVE")]
627 public const int POLL_REMOVE;
628 [CCode (cname = "CURL_SOCKET_TIMEOUT")]
629 public const int SOCKET_TIMEOUT;
630 [CCode (cname = "CURL_CSELECT_IN")]
631 public const int CSELECT_IN;
632 [CCode (cname = "CURL_CSELECT_OUT")]
633 public const int CSELECT_OUT;
634 [CCode (cname = "CURL_CSELECT_ERR")]
635 public const int CSELECT_ERR;
636 [CCode (cname = "CURLMoption")]
637 public enum MultiOption {
646 [CCode (cname = "curl_httppost", unref_function = "curl_formfree")]
647 public class HTTPPost {
648 public Curl.HTTPPost next;
649 [CCode (array_length_cname = "namelength", array_length_type = "long")]
650 public weak char[] name;
651 [CCode (array_length_cname = "contentslength", array_length_type = "long")]
652 public weak char[] contents;
653 [CCode (array_length_cname = "bufferlength", array_length_type = "long")]
654 public weak char[] buffer;
655 public string contenttype;
656 public Curl.SList contentheader;
657 public Curl.HTTPPost more;
659 public string showfilename;
661 [CCode (cname = "HTTPPOST_FILENAME")]
662 public const long FILENAME;
663 [CCode (cname = "HTTPPOST_READFILE")]
664 public const long READFILE;
665 [CCode (cname = "HTTPPOST_PTRCONTENTS")]
666 public const long PTRCONTENTS;
667 [CCode (cname = "HTTPPOST_BUFFER")]
668 public const long BUFFER;
669 [CCode (cname = "HTTPPOST_PTRBUFFER")]
670 public const long PTRBUFFER;
671 [CCode (cname = "HTTPPOST_CALLBACK")]
672 public const long CALLBACK;
674 [CCode (cname = "LIBCURL_COPYRIGHT")]
675 public const string COPYRIGHT;
676 [CCode (cname = "LIBCURL_VERSION")]
677 public const string VERSION;
678 [CCode (cname = "LIBCURL_VERSION_MAJOR")]
679 public const int VERSION_MAJOR;
680 [CCode (cname = "LIBCURL_VERSION_MINOR")]
681 public const int VERSION_MINOR;
682 [CCode (cname = "LIBCURL_VERSION_PATCH")]
683 public const int VERSION_PATCH;
684 [CCode (cname = "LIBCURL_VERSION_NUM")]
685 public const int VERSION_NUM;
686 [CCode (cname = "LIBCURL_TIMESTAMP")]
687 public const string TIMESTAMP;