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 ();
17 [CCode (cname = "CURL", cprefix = "curl_easy_", free_function = "curl_easy_cleanup")]
18 public class EasyHandle {
19 [CCode (cname = "curl_easy_init")]
22 public Curl.Code setopt (Curl.Option option, ...);
23 public Curl.Code perform ();
25 public Curl.Code getinfo (Curl.Info info, ...);
26 public Curl.EasyHandle duphandle ();
28 public Curl.Code recv (void *buffer, size_t buflen, out size_t n);
29 public Curl.Code send (void *buffer, size_t buflen, out size_t n);
30 public string escape (string @string, int length);
31 public string unescape (string @string, int length, out int outlength);
32 [CCode (has_target = false)]
33 public delegate int SocketCallback (Curl.Socket s, int what, void* userp, void *socketp);
35 [CCode (cname = "CURLcode", cprefix = "CURLE_")]
41 COULDNT_RESOLVE_PROXY,
44 FTP_WEIRD_SERVER_REPLY,
52 FTP_COULDNT_RETR_FILE,
66 FILE_COULDNT_READ_FILE,
71 BAD_FUNCTION_ARGUMENT,
74 UNKNOWN_TELNET_OPTION,
76 PEER_FAILED_VERIFICATION,
90 SSL_ENGINE_INITFAILED,
102 REMOTE_FILE_NOT_FOUND,
108 [CCode (cname = "CURL_LAST")]
111 [CCode (name = "CURLoption", cprefix = "CURLOPT_")]
137 HTTPPOST, // struct HTTPPost
197 DNS_USE_GLOBAL_CACHE,
216 FTP_CREATE_MISSING_DIRS,
218 FTP_RESPONSE_TIMEOUT,
233 IGNORE_CONTENT_LENGTH,
239 CONV_FROM_NETWORK_FUNCTION,
240 CONV_TO_NETWORK_FUNCTION,
241 CONV_FROM_UTF8_FUNCTION,
242 MAX_SEND_SPEED_LARGE,
243 MAX_RECV_SPEED_LARGE,
244 FTP_ALTERNATIVE_TO_USER,
254 HTTP_TRANSFER_DECODING,
255 HTTP_CONTENT_DECODING,
259 SSH_HOST_PUBLIC_KEY_MD5,
276 SOCKS5_GSSAPI_SERVICE,
285 [CCode (name = "CURLINFO", cprefix = "CURLINFO_")]
305 CONTENT_LENGTH_DOWNLOAD,
306 CONTENT_LENGTH_UPLOAD,
328 [CCode (cname = "curl_progress_callback")]
329 public delegate int ProgressCallback (void* clientp, double dltotal, double dlnow, double ultotal, double ulnow);
330 [CCode (cname = "CURL_WRITEFUNC_PAUSE")]
331 public const size_t WRITEFUNC_PAUSE;
332 [CCode (cname = "curl_write_callback")]
333 public delegate size_t WriteCallback (char* buffer, size_t size, size_t nitems, void *outstream);
334 [CCode (cname = "CURL_SEEKFUNC_OK")]
335 public const int SEEKFUNC_OK;
336 [CCode (cname = "CURL_SEEKFUNC_FAIL")]
337 public const int SEEKFUNC_FAIL;
338 [CCode (cname = "CURL_SEEKFUNC_CANTSEEK")]
339 public const int SEEKFUNC_CANTSEEK;
340 [Ccode (cname = "curl_seek_callback")]
341 public delegate int SeekCallback (void* instream, Curl.Offset offset, int origin);
342 [CCode (cname = "CURL_READFUNC_ABORT")]
343 public const size_t READFUNC_ABORT;
344 [CCode (cname = "CURL_READFUNC_PAUSE")]
345 public const size_t READFUNC_PAUSE;
346 [CCode (cname = "curl_read_callback")]
347 public delegate size_t ReadCallback (char* buffer, size_t size, size_t nitems, void *instream);
348 [CCode (cname = "curlsocktype", cprefix = "CURLSOCKTYPE_")]
349 public enum SocketType {
353 [CCode (cname = "curl_sockopt_callback")]
354 public delegate size_t SockoptCallback (void* clientp, Curl.Socket curlfd, Curl.SocketType purpose);
355 [CCode (cname = "curlioerr", cprefix = "CURLIOE_")]
356 public enum IOError {
362 [CCode (cname = "curliocmd", cprefix = "CURLIOCMD_")]
368 [CCode (cname = "curl_ioctl_callback")]
369 public delegate Curl.IOError IoctlCallback (Curl.EasyHandle handle, int cmd, void* clientp);
370 [CCode (cname = "curl_malloc_callback")]
371 public delegate void* MallocCallback (size_t size);
372 [CCode (cname = "curl_free_callback")]
373 public delegate void FreeCallback (void* ptr);
374 [CCode (cname = "curl_realloc_callback")]
375 public delegate void* ReallocCallback (void* ptr, size_t size);
376 [CCode (cname = "curl_strdup_callback")]
377 public delegate string StrdupCallback (string str);
378 [CCode (cname = "curl_calloc_callback")]
379 public delegate void* CallocCallback (size_t nmemb, size_t size);
380 [CCode (cname = "curl_infotype", cprefix = "CURLINFO_")]
381 public enum InfoType {
390 [CCode (cname = "curl_debug_callback")]
391 public delegate int DebugCallback (Curl.EasyHandle handle, Curl.InfoType type, [CCode (array_length_type = "size_t")] char[] data, void* userptr);
392 [CCode (cname = "curl_conv_callback")]
393 public delegate Curl.Code ConvCallback ([CCode (array_length_type = "size_t")] char[] buffer);
394 [CCode (cname = "curl_ssl_ctx_callback")]
395 public delegate Curl.Code SSLCtxCallback (Curl.EasyHandle curl, void* ssl_ctx, void* userptr);
396 [CCode (cname = "curl_proxytype", cprefix = "CURLPROXY_")]
397 public enum ProxyType {
406 [CCode (cname = "CURLAUTH_NONE")]
407 public const int NONE;
408 [CCode (cname = "CURLAUTH_BASIC")]
409 public const int BASIC;
410 [CCode (cname = "CURLAUTH_DIGEST")]
411 public const int DIGEST;
412 [CCode (cname = "CURLAUTH_GSSNEGOTIATE")]
413 public const int GSSNEGOTIATE;
414 [CCode (cname = "CURLAUTH_NTLM")]
415 public const int NTLM;
416 [CCode (cname = "CURLAUTH_DIGEST_IE")]
417 public const int DIGEST_IE;
418 [CCode (cname = "CURLAUTH_ANY")]
419 public const int ANY;
420 [CCode (cname = "CURLAUTH_ANYSAFE")]
421 public const int ANYSAFE;
423 namespace SSHAuthType {
424 [CCode (cname = "CURLSSH_AUTH_ANY")]
425 public const int ANY;
426 [CCode (cname = "CURLSSH_AUTH_NONE")]
427 public const int NONE;
428 [CCode (cname = "CURLSSH_AUTH_PUBLICKEY")]
429 public const int PUBLICKEY;
430 [CCode (cname = "CURLSSH_AUTH_PASSWORD")]
431 public const int PASSWORD;
432 [CCode (cname = "CURLSSH_AUTH_HOST")]
433 public const int HOST;
434 [CCode (cname = "CURLSSH_AUTH_KEYBOARD")]
435 public const int KEYBOARD;
436 [CCode (cname = "CURLSSH_AUTH_DEFAULT")]
437 public const int DEFAULT;
439 public const int ERROR_SIZE;
440 [CCode (cname = "curl_usessl", cprefix = "CURLUSESSL_")]
447 [CCode (cname = "curl_ftpccc", cprefix = "CURLFTPSSL_")]
453 [CCode (cname = "curl_ftpauth", cprefix = "CURLFTPAUTH_")]
459 [CCode (cname = "curl_ftpcreatedir", cprefix = "CURLFTP_CREATE_DIR_")]
462 [CCode (cname = "CURLFTP_CREATE_DIR")]
466 [CCode (cname = "curl_ftpmethod", cprefix = "CURLFTPMETHOD_")]
474 [CCode (cname = "CURLPROTO_HTTP")]
475 public const int HTTP;
476 [CCode (cname = "CURLPROTO_HTTPS")]
477 public const int HTTPS;
478 [CCode (cname = "CURLPROTO_FTP")]
479 public const int FTP;
480 [CCode (cname = "CURLPROTO_FTPS")]
481 public const int FTPS;
482 [CCode (cname = "CURLPROTO_SCP")]
483 public const int SCP;
484 [CCode (cname = "CURLPROTO_SFTP")]
485 public const int SFTP;
486 [CCode (cname = "CURLPROTO_TELNET")]
487 public const int TELNET;
488 [CCode (cname = "CURLPROTO_LDAP")]
489 public const int LDAP;
490 [CCode (cname = "CURLPROTO_LDAPS")]
491 public const int LDAPS;
492 [CCode (cname = "CURLPROTO_DICT")]
493 public const int DICT;
494 [CCode (cname = "CURLPROTO_FILE")]
495 public const int FILE;
496 [CCode (cname = "CURLPROTO_TFTP")]
497 public const int TFTP;
498 [CCode (cname = "CURLPROTO_ALL")]
499 public const int ALL;
501 public const int IPRESOLVE_WHATEVER;
502 public const int IPRESOLVE_V4;
503 public const int IPRESOLVE_V6;
504 public const int REDIR_GET_ALL;
505 public const int REDIR_POST_301;
506 public const int REDIR_POST_302;
507 public const int REDIR_POST_ALL;
508 [CCode (cname = "curl_TimeCond", cprefix = "CURL_TIMECOND_")]
509 public enum TimeCond {
515 [CCode (cname = "CURLformoption", cprefix = "CURLFORM_")]
516 public enum FormOption {
537 [CCode (cname = "struct curl_forms")]
538 public struct Forms {
539 public Curl.FormOption option;
542 [CCode (cname = "CURLFORMcode", cprefix = "CURL_FORMADD_")]
543 public enum FormCode {
553 [CCode (sentinel = "CURLFORM_END")]
554 public Curl.FormCode formadd (ref Curl.HTTPPost httppost, ref unowned Curl.HTTPPost last_post, ...);
555 [CCode (cname = "curl_formget_callback")]
556 public delegate size_t FormgetCallback (void* arg, [CCode (array_size_type = "size_t")] char[] buf);
557 public int formget (Curl.HTTPPost form, void* arg, Curl.FormgetCallback append);
558 public unowned string version ();
559 public void free (void* p);
561 [CCode (cname = "struct curl_slist", cprefix = "curl_slist_", free_function = "curl_slist_free_all")]
564 public Curl.SList next;
565 public static SList append (SList? slist, string data);
567 [CCode (cname = "CURLMcode", cprefix = "CURLM_")]
568 public enum MultiCode {
579 [CCode (cname = "CURLMSG", cprefix = "CURLMSG_")]
580 public enum MessageType {
584 [CCode (cname = "CURLMsg")]
585 public struct Message {
586 public Curl.MessageType msg;
587 public Curl.EasyHandle easy_handle;
588 [CCode (cname = "data.whatever")]
589 public void* whatever;
590 [CCode (cname = "data.result")]
591 public Curl.Code result;
594 [CCode (cname = "CURLM", cprefix = "curl_multi_", free_function = "curl_multi_cleanup")]
595 public class MultiHandle {
596 [CCode (cname = "curl_multi_init")]
597 public MultiHandle ();
598 public Curl.MultiCode add_handle (Curl.EasyHandle curl_handle);
599 public Curl.MultiCode remove_handle (Curl.EasyHandle curl_handle);
600 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);
601 public Curl.MultiCode perform (out int running_handles);
602 public unowned Curl.Message info_read (out int msgs_in_queue);
603 public unowned string strerror (Curl.MultiCode code);
604 public Curl.MultiCode socket_action (Curl.Socket s, int ev_bitmask, out int running_handles);
605 public Curl.MultiCode socket_all (out int running_handles);
606 public Curl.MultiCode timeout (out long milliseconds);
608 public Curl.MultiCode setopt (Curl.MultiOption option, ...);
609 public Curl.MultiCode assign (Curl.Socket sockfd, void* sockp);
611 [CCode (has_target = false)]
612 public delegate int TimerCallback (Curl.MultiHandle multi, long timeout_ms, void* userp);
614 [CCode (cname = "curl_socket_t")]
615 public struct Socket {
618 [CCode (cname = "curl_off_t")]
619 public struct Offset {
621 [CCode (cname = "CURL_SOCKET_BAD")]
622 public const Curl.Socket SOCKET_BAD;
623 [CCode (cname = "CURL_POLL_NONE")]
624 public const int POLL_NONE;
625 [CCode (cname = "CURL_POLL_IN")]
626 public const int POLL_IN;
627 [CCode (cname = "CURL_POLL_OUT")]
628 public const int POLL_OUT;
629 [CCode (cname = "CURL_POLL_INOUT")]
630 public const int POLL_INOUT;
631 [CCode (cname = "CURL_POLL_REMOVE")]
632 public const int POLL_REMOVE;
633 [CCode (cname = "CURL_SOCKET_TIMEOUT")]
634 public const int SOCKET_TIMEOUT;
635 [CCode (cname = "CURL_CSELECT_IN")]
636 public const int CSELECT_IN;
637 [CCode (cname = "CURL_CSELECT_OUT")]
638 public const int CSELECT_OUT;
639 [CCode (cname = "CURL_CSELECT_ERR")]
640 public const int CSELECT_ERR;
641 [CCode (cname = "CURLMoption")]
642 public enum MultiOption {
651 [CCode (cname = "struct curl_httppost", free_function = "curl_formfree")]
652 public class HTTPPost {
653 public Curl.HTTPPost next;
654 [CCode (array_length_cname = "namelength", array_length_type = "long")]
655 public weak char[] name;
656 [CCode (array_length_cname = "contentslength", array_length_type = "long")]
657 public weak char[] contents;
658 [CCode (array_length_cname = "bufferlength", array_length_type = "long")]
659 public weak char[] buffer;
660 public string contenttype;
661 public Curl.SList contentheader;
662 public Curl.HTTPPost more;
664 public string showfilename;
666 [CCode (cname = "HTTPPOST_FILENAME")]
667 public const long FILENAME;
668 [CCode (cname = "HTTPPOST_READFILE")]
669 public const long READFILE;
670 [CCode (cname = "HTTPPOST_PTRCONTENTS")]
671 public const long PTRCONTENTS;
672 [CCode (cname = "HTTPPOST_BUFFER")]
673 public const long BUFFER;
674 [CCode (cname = "HTTPPOST_PTRBUFFER")]
675 public const long PTRBUFFER;
676 [CCode (cname = "HTTPPOST_CALLBACK")]
677 public const long CALLBACK;
679 [CCode (cname = "LIBCURL_COPYRIGHT")]
680 public const string COPYRIGHT;
681 [CCode (cname = "LIBCURL_VERSION")]
682 public const string VERSION;
683 [CCode (cname = "LIBCURL_VERSION_MAJOR")]
684 public const int VERSION_MAJOR;
685 [CCode (cname = "LIBCURL_VERSION_MINOR")]
686 public const int VERSION_MINOR;
687 [CCode (cname = "LIBCURL_VERSION_PATCH")]
688 public const int VERSION_PATCH;
689 [CCode (cname = "LIBCURL_VERSION_NUM")]
690 public const int VERSION_NUM;
691 [CCode (cname = "LIBCURL_TIMESTAMP")]
692 public const string TIMESTAMP;