From b5aff5b0857f2fa1c3501d5649dd01f4f0f5c82e Mon Sep 17 00:00:00 2001 From: ading2210 Date: Tue, 27 Feb 2024 11:38:00 -0800 Subject: [PATCH] pin library versions, load cacert from blob --- client/index.html | 2 +- client/libcurl/main.c | 14 +++++++------- client/package.json | 2 +- client/tools/brotli.sh | 2 +- client/tools/cjson.sh | 2 +- client/tools/curl.sh | 2 +- client/tools/nghttp2.sh | 2 +- client/tools/openssl.sh | 2 +- client/tools/zlib.sh | 2 +- 9 files changed, 15 insertions(+), 15 deletions(-) diff --git a/client/index.html b/client/index.html index 9760e4c..8555276 100644 --- a/client/index.html +++ b/client/index.html @@ -6,7 +6,7 @@ diff --git a/client/libcurl/main.c b/client/libcurl/main.c index 249cd24..4f5578a 100644 --- a/client/libcurl/main.c +++ b/client/libcurl/main.c @@ -19,9 +19,10 @@ void finish_request(CURLMsg *curl_msg); CURLM *multi_handle; int request_active = 0; +struct curl_blob cacert_blob; -int write_function(void *data, size_t size, size_t nmemb, DataCallback data_callback) { - long real_size = size * nmemb; +size_t write_function(void *data, size_t size, size_t nmemb, DataCallback data_callback) { + size_t real_size = size * nmemb; char* chunk = malloc(real_size); memcpy(chunk, data, real_size); data_callback(chunk, real_size); @@ -53,8 +54,7 @@ CURL* start_request(const char* url, const char* json_params, DataCallback data_ int prevent_cleanup = 0; curl_easy_setopt(http_handle, CURLOPT_URL, url); - curl_easy_setopt(http_handle, CURLOPT_CAINFO, "/cacert.pem"); - curl_easy_setopt(http_handle, CURLOPT_CAPATH, "/cacert.pem"); + curl_easy_setopt(http_handle, CURLOPT_CAINFO_BLOB , cacert_blob); //callbacks to pass the response data back to js curl_easy_setopt(http_handle, CURLOPT_WRITEFUNCTION, &write_function); @@ -195,7 +195,7 @@ void init_curl() { curl_multi_setopt(multi_handle, CURLMOPT_MAX_TOTAL_CONNECTIONS, 50L); curl_multi_setopt(multi_handle, CURLMOPT_MAXCONNECTS, 40L); - FILE* file = fopen("/cacert.pem", "wb"); - fwrite(_cacert_pem, 1, _cacert_pem_len, file); - fclose(file); + cacert_blob.data = _cacert_pem; + cacert_blob.len = _cacert_pem_len; + cacert_blob.flags = CURL_BLOB_NOCOPY; } \ No newline at end of file diff --git a/client/package.json b/client/package.json index 80bfb0c..d85ef44 100644 --- a/client/package.json +++ b/client/package.json @@ -1,6 +1,6 @@ { "name": "libcurl.js", - "version": "0.3.6", + "version": "0.3.7", "description": "An experimental port of libcurl to WebAssembly for use in the browser.", "main": "libcurl.mjs", "scripts": { diff --git a/client/tools/brotli.sh b/client/tools/brotli.sh index 1210f4b..c9cba4a 100755 --- a/client/tools/brotli.sh +++ b/client/tools/brotli.sh @@ -10,7 +10,7 @@ PREFIX=$(realpath build/brotli-wasm) cd build rm -rf brotli -git clone -b master --depth=1 https://github.com/google/brotli +git clone -b v1.1.0 --depth=1 https://github.com/google/brotli cd brotli emcmake cmake . -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=./installed diff --git a/client/tools/cjson.sh b/client/tools/cjson.sh index acf7290..5cdfc1e 100755 --- a/client/tools/cjson.sh +++ b/client/tools/cjson.sh @@ -11,7 +11,7 @@ mkdir -p $PREFIX cd build rm -rf cjson -git clone -b master --depth=1 https://github.com/DaveGamble/cJSON cjson +git clone -b v1.7.17 --depth=1 https://github.com/DaveGamble/cJSON cjson cd cjson sed -i 's/-fstack-protector-strong//' Makefile diff --git a/client/tools/curl.sh b/client/tools/curl.sh index 7f4afa0..cf286a5 100755 --- a/client/tools/curl.sh +++ b/client/tools/curl.sh @@ -14,7 +14,7 @@ NGHTTP2_PREFIX=$(realpath build/nghttp2-wasm) cd build rm -rf curl -git clone -b master --depth=1 https://github.com/curl/curl +git clone -b curl-8_6_0 --depth=1 https://github.com/curl/curl cd curl autoreconf -fi diff --git a/client/tools/nghttp2.sh b/client/tools/nghttp2.sh index e9c86eb..58a5aba 100755 --- a/client/tools/nghttp2.sh +++ b/client/tools/nghttp2.sh @@ -10,7 +10,7 @@ PREFIX=$(realpath build/nghttp2-wasm) cd build rm -rf nghttp2 -git clone -b master --depth=1 https://github.com/nghttp2/nghttp2 +git clone -b v1.59.0 --depth=1 https://github.com/nghttp2/nghttp2 cd nghttp2 rm -rf $PREFIX diff --git a/client/tools/openssl.sh b/client/tools/openssl.sh index dc8a041..014f5c3 100755 --- a/client/tools/openssl.sh +++ b/client/tools/openssl.sh @@ -11,7 +11,7 @@ mkdir -p $PREFIX cd build rm -rf openssl -git clone -b master --depth=1 https://github.com/openssl/openssl +git clone -b openssl-3.2.1 --depth=1 https://github.com/openssl/openssl cd openssl export CFLAGS="-Wall -Oz" diff --git a/client/tools/zlib.sh b/client/tools/zlib.sh index 624246e..10c7bd1 100755 --- a/client/tools/zlib.sh +++ b/client/tools/zlib.sh @@ -10,7 +10,7 @@ PREFIX=$(realpath build/zlib-wasm) cd build rm -rf zlib -git clone -b master --depth=1 https://github.com/madler/zlib +git clone -b v1.3.1 --depth=1 https://github.com/madler/zlib cd zlib emconfigure ./configure --static