diff --git a/client/build.sh b/client/build.sh index 43a59bd..394d976 100755 --- a/client/build.sh +++ b/client/build.sh @@ -88,6 +88,7 @@ sed -i "/__extra_libraries__/r $JAVSCRIPT_DIR/tls_socket.js" $OUT_FILE sed -i "/__extra_libraries__/r $JAVSCRIPT_DIR/websocket.js" $OUT_FILE sed -i "/__extra_libraries__/r $JAVSCRIPT_DIR/ws_polyfill.js" $OUT_FILE sed -i "/__extra_libraries__/r $JAVSCRIPT_DIR/util.js" $OUT_FILE +sed -i "/__extra_libraries__/r $JAVSCRIPT_DIR/logger.js" $OUT_FILE #apply patches python3 tools/patch_js.py $FRAGMENTS_DIR $OUT_FILE diff --git a/client/exported_funcs.txt b/client/exported_funcs.txt index d1b4b83..f925f95 100644 --- a/client/exported_funcs.txt +++ b/client/exported_funcs.txt @@ -5,6 +5,7 @@ active_requests get_version get_cacert +get_error_str recv_from_websocket send_to_websocket diff --git a/client/javascript/main.js b/client/javascript/main.js index 8af171c..a2da526 100644 --- a/client/javascript/main.js +++ b/client/javascript/main.js @@ -67,7 +67,6 @@ function perform_request(url, params, js_data_callback, js_end_callback, body=nu _free(url_ptr); _free(response_json_ptr); - if (error != 0) console.error("request failed with error code " + error); active_requests --; js_end_callback(error, response_info); } @@ -172,7 +171,9 @@ function perform_request_async(url, params, body) { let finish_callback = (error, response_info) => { if (error != 0) { - reject("libcurl.js encountered an error: " + error); + let error_str = `Request failed with error code ${error}: ${get_error_str(error)}`; + if (error != 0) error_msg(error_str); + reject(error_str); return; } let response_data = merge_arrays(chunks); diff --git a/client/javascript/tls_socket.js b/client/javascript/tls_socket.js index 62b378c..7db9d3f 100644 --- a/client/javascript/tls_socket.js +++ b/client/javascript/tls_socket.js @@ -1,8 +1,7 @@ //currently broken -class TLSSocket extends CustomWebSocket { +class TLSSocket { constructor(hostname, port, debug) { - super(); this.hostname = hostname; this.port = port; this.url = `https://${hostname}:${port}`; diff --git a/client/javascript/util.js b/client/javascript/util.js index bff95e7..f5db34a 100644 --- a/client/javascript/util.js +++ b/client/javascript/util.js @@ -34,6 +34,11 @@ function allocate_array(array) { return allocate(array, ALLOC_NORMAL); } +function get_error_str(error_code) { + let error_ptr = _get_error_str(error_code); + return UTF8ToString(error_ptr); +} + //convert any data to a uint8array async function data_to_array(data) { let data_array = null; diff --git a/client/javascript/websocket.js b/client/javascript/websocket.js index 08746c7..d6791aa 100644 --- a/client/javascript/websocket.js +++ b/client/javascript/websocket.js @@ -60,7 +60,6 @@ class CurlWebSocket { _free(data_ptr); _free(result_ptr); } - console.log(result_code); if (result_code === 0) { //CURLE_OK - data received if (_get_result_closed(result_ptr)) { @@ -72,8 +71,6 @@ class CurlWebSocket { let data_size = _get_result_size(result_ptr); let data_heap = Module.HEAPU8.subarray(data_ptr, data_ptr + data_size); let data = new Uint8Array(data_heap); - - console.log(data, data_size, buffer_size, _get_result_bytes_left(result_ptr)); this.recv_buffer.push(data); if (data_size !== buffer_size && !_get_result_bytes_left(result_ptr)) { //message finished @@ -88,7 +85,7 @@ class CurlWebSocket { } } } - + //CURLE_GOT_NOTHING, CURLE_RECV_ERROR, CURLE_SEND_ERROR - socket closed else if (result_code === 52 || result_code === 55 || result_code === 56) { this.cleanup(); diff --git a/client/javascript/ws_polyfill.js b/client/javascript/ws_polyfill.js index c3c64b4..54074bb 100644 --- a/client/javascript/ws_polyfill.js +++ b/client/javascript/ws_polyfill.js @@ -44,7 +44,7 @@ class FakeWebSocket extends EventTarget { this.socket.onerror = (error) => { this.status = this.CLOSED; - console.error(`websocket ${this.url} encountered an error (${error})`); + error_msg(`websocket ${this.url} encountered an error (${error})`); let error_event = new Event("error"); this.dispatchEvent(error_event); this.onerror(error_event); @@ -66,7 +66,7 @@ class FakeWebSocket extends EventTarget { throw "invalid binaryType string"; } } - + let msg_event = new MessageEvent("message", {data: converted}); this.onmessage(msg_event); this.dispatchEvent(msg_event); diff --git a/client/libcurl/util.c b/client/libcurl/util.c index 170d3ce..3aadde4 100644 --- a/client/libcurl/util.c +++ b/client/libcurl/util.c @@ -34,4 +34,8 @@ char* get_version() { char* version_json_str = cJSON_Print(version_json); cJSON_Delete(version_json); return version_json_str; +} + +const char* get_error_str(CURLcode error_code) { + return curl_easy_strerror(error_code); } \ No newline at end of file