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 public Curl.FormCode formadd (ref Curl.HTTPPost httppost, ref Curl.HTTPPost last_post, ...);
554 [CCode (cname = "curl_formget_callback")]
555 public delegate size_t FormgetCallback (void* arg, [CCode (array_size_type = "size_t")] char[] buf);
556 public int formget (Curl.HTTPPost form, void* arg, Curl.FormgetCallback append);
557 public unowned string version ();
558 public void free (void* p);
560 [CCode (cname = "struct curl_slist", cprefix = "curl_slist_", free_function = "curl_slist_free_all")]
563 public Curl.SList next;
564 public SList append (string data);
566 [CCode (cname = "CURLMcode", cprefix = "CURLM_")]
567 public enum MultiCode {
578 [CCode (cname = "CURLMSG", cprefix = "CURLMSG_")]
579 public enum MessageType {
583 [CCode (cname = "CURLMsg")]
584 public struct Message {
585 public Curl.MessageType msg;
586 public Curl.EasyHandle easy_handle;
587 [CCode (cname = "data.whatever")]
588 public void* whatever;
589 [CCode (cname = "data.result")]
590 public Curl.Code result;
593 [CCode (cname = "CURLM", cprefix = "curl_multi_", free_function = "curl_multi_cleanup")]
594 public class MultiHandle {
595 [CCode (cname = "curl_multi_init")]
596 public MultiHandle ();
597 public Curl.MultiCode add_handle (Curl.EasyHandle curl_handle);
598 public Curl.MultiCode remove_handle (Curl.EasyHandle curl_handle);
599 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);
600 public Curl.MultiCode perform (out int running_handles);
601 public unowned Curl.Message info_read (out int msgs_in_queue);
602 public unowned string strerror (Curl.MultiCode code);
603 public Curl.MultiCode socket_action (Curl.Socket s, int ev_bitmask, out int running_handles);
604 public Curl.MultiCode socket_all (out int running_handles);
605 public Curl.MultiCode timeout (out long milliseconds);
607 public Curl.MultiCode setopt (Curl.MultiOption option, ...);
608 public Curl.MultiCode assign (Curl.Socket sockfd, void* sockp);
610 [CCode (has_target = false)]
611 public delegate int TimerCallback (Curl.MultiHandle multi, long timeout_ms, void* userp);
613 [CCode (cname = "curl_socket_t")]
614 public struct Socket {
617 [CCode (cname = "curl_off_t")]
618 public struct Offset {
620 [CCode (cname = "CURL_SOCKET_BAD")]
621 public const Curl.Socket SOCKET_BAD;
622 [CCode (cname = "CURL_POLL_NONE")]
623 public const int POLL_NONE;
624 [CCode (cname = "CURL_POLL_IN")]
625 public const int POLL_IN;
626 [CCode (cname = "CURL_POLL_OUT")]
627 public const int POLL_OUT;
628 [CCode (cname = "CURL_POLL_INOUT")]
629 public const int POLL_INOUT;
630 [CCode (cname = "CURL_POLL_REMOVE")]
631 public const int POLL_REMOVE;
632 [CCode (cname = "CURL_SOCKET_TIMEOUT")]
633 public const int SOCKET_TIMEOUT;
634 [CCode (cname = "CURL_CSELECT_IN")]
635 public const int CSELECT_IN;
636 [CCode (cname = "CURL_CSELECT_OUT")]
637 public const int CSELECT_OUT;
638 [CCode (cname = "CURL_CSELECT_ERR")]
639 public const int CSELECT_ERR;
640 [CCode (cname = "CURLMoption")]
641 public enum MultiOption {
650 [CCode (cname = "curl_httppost", unref_function = "curl_formfree")]
651 public class HTTPPost {
652 public Curl.HTTPPost next;
653 [CCode (array_length_cname = "namelength", array_length_type = "long")]
654 public weak char[] name;
655 [CCode (array_length_cname = "contentslength", array_length_type = "long")]
656 public weak char[] contents;
657 [CCode (array_length_cname = "bufferlength", array_length_type = "long")]
658 public weak char[] buffer;
659 public string contenttype;
660 public Curl.SList contentheader;
661 public Curl.HTTPPost more;
663 public string showfilename;
665 [CCode (cname = "HTTPPOST_FILENAME")]
666 public const long FILENAME;
667 [CCode (cname = "HTTPPOST_READFILE")]
668 public const long READFILE;
669 [CCode (cname = "HTTPPOST_PTRCONTENTS")]
670 public const long PTRCONTENTS;
671 [CCode (cname = "HTTPPOST_BUFFER")]
672 public const long BUFFER;
673 [CCode (cname = "HTTPPOST_PTRBUFFER")]
674 public const long PTRBUFFER;
675 [CCode (cname = "HTTPPOST_CALLBACK")]
676 public const long CALLBACK;
678 [CCode (cname = "LIBCURL_COPYRIGHT")]
679 public const string COPYRIGHT;
680 [CCode (cname = "LIBCURL_VERSION")]
681 public const string VERSION;
682 [CCode (cname = "LIBCURL_VERSION_MAJOR")]
683 public const int VERSION_MAJOR;
684 [CCode (cname = "LIBCURL_VERSION_MINOR")]
685 public const int VERSION_MINOR;
686 [CCode (cname = "LIBCURL_VERSION_PATCH")]
687 public const int VERSION_PATCH;
688 [CCode (cname = "LIBCURL_VERSION_NUM")]
689 public const int VERSION_NUM;
690 [CCode (cname = "LIBCURL_TIMESTAMP")]
691 public const string TIMESTAMP;