summaryrefslogtreecommitdiff
path: root/internal/curl/ccurl/ccurl.ha
diff options
context:
space:
mode:
authorJulian Hurst <ark@mansus.space>2024-03-10 02:35:08 +0100
committerJulian Hurst <ark@mansus.space>2024-03-10 02:35:08 +0100
commit89173069e85416539b1256ed1ae1c77e89550ae6 (patch)
treed2f42c63b91306ad1b4693737ab1e35514d746b9 /internal/curl/ccurl/ccurl.ha
parent69712258bafda1258454e6336faabf527f207e3b (diff)
downloadhacurl-89173069e85416539b1256ed1ae1c77e89550ae6.tar.gz
Allow retrieving in memory response struct, and cleanup
Diffstat (limited to 'internal/curl/ccurl/ccurl.ha')
-rw-r--r--internal/curl/ccurl/ccurl.ha47
1 files changed, 47 insertions, 0 deletions
diff --git a/internal/curl/ccurl/ccurl.ha b/internal/curl/ccurl/ccurl.ha
new file mode 100644
index 0000000..3e44d97
--- /dev/null
+++ b/internal/curl/ccurl/ccurl.ha
@@ -0,0 +1,47 @@
+use types::c;
+
+export type CURL = opaque;
+export type CURLcode = int;
+export type CURLINFO = int;
+
+export def CURLOPT_URL = 10002;
+export def CURLOPT_WRITEFUNCTION = 20011;
+export def CURLOPT_WRITEDATA = 10001;
+
+export def CURLINFO_LONG = 0x200000;
+export def CURLINFO_RESPONSE_CODE = CURLINFO_LONG + 2;
+
+export @symbol("curl_easy_init") fn curl_easy_init() nullable *CURL;
+export @symbol("curl_easy_cleanup") fn curl_easy_cleanup(handle: nullable *CURL) void;
+
+export type write_callback = fn(ptr: *c::char, sz: c::ssize, nmemb: c::ssize, userdata: *opaque) c::ssize;
+export @symbol("curl_easy_setopt") fn curl_easy_setopt(
+ handle: nullable *CURL,
+ option: int,
+ parameter: const *c::char,
+) CURLcode;
+
+export @symbol("curl_easy_setopt") fn curl_easy_setopt_writefunction(
+ handle: nullable *CURL,
+ option: int,
+ parameter: *write_callback,
+) CURLcode;
+
+export @symbol("curl_easy_setopt") fn curl_easy_setopt_writedata(
+ handle: nullable *CURL,
+ option: int,
+ parameter: *opaque,
+) CURLcode;
+
+//export @symbol("curl_easy_setopt") fn curl_easy_setopt(
+// handle: nullable *CURL,
+// option: int,
+// parameter: (const *c::char | nullable opaque)
+//) CURLcode;
+
+export @symbol("curl_easy_perform") fn curl_easy_perform(easy_handle: nullable *CURL) CURLcode;
+export @symbol("curl_easy_getinfo") fn curl_easy_getinfo(
+ easy_handle: nullable *CURL,
+ info: CURLINFO,
+ code: nullable *c::long
+) CURLcode;