Trying to fix blob transfers.

git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@3625 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
2021-01-02 22:48:33 +00:00
parent dd489de252
commit 01ff073af0
4 changed files with 13 additions and 4 deletions

View File

@ -193,7 +193,10 @@ static void _tf_ssb_connection_on_rpc_blobs_createWants_response(tf_ssb_connecti
JSValue jsonval = JS_JSONStringify(context, size_response, JS_NULL, JS_NULL);
size_t len;
const char* json = JS_ToCStringLen(context, &len, jsonval);
tf_ssb_connection_rpc_send(connection, k_ssb_rpc_flag_json | k_ssb_rpc_flag_stream, request_number, (uint8_t*)json, len, NULL, NULL);
tf_ssb_rpc_t* rpc = tf_ssb_get_rpc(ssb);
if (rpc->wants) {
tf_ssb_connection_rpc_send(connection, k_ssb_rpc_flag_json | k_ssb_rpc_flag_stream, -rpc->wants->request_number, (uint8_t*)json, len, NULL, NULL);
}
JS_FreeCString(context, json);
JS_FreeValue(context, jsonval);
JS_FreeValue(context, size_response);
@ -640,12 +643,12 @@ tf_ssb_rpc_t* tf_ssb_rpc_create(tf_ssb_t* ssb)
*rpc = (tf_ssb_rpc_t) {
.wants_async.data = rpc,
};
tf_ssb_add_connections_changed_callback(ssb, _tf_ssb_rpc_connections_changed_callback, rpc);
tf_ssb_add_connections_changed_callback(ssb, _tf_ssb_rpc_on_connections_changed, NULL);
tf_ssb_register_rpc(ssb, (const char*[]) { "blobs", "has", NULL }, _tf_ssb_rpc_blob_has, NULL);
tf_ssb_register_rpc(ssb, (const char*[]) { "blobs", "get", NULL }, _tf_ssb_rpc_blob_get, NULL);
tf_ssb_register_rpc(ssb, (const char*[]) { "blobs", "createWants", NULL }, _tf_ssb_rpc_blobs_createWants, rpc);
tf_ssb_register_rpc(ssb, (const char*[]) { "createHistoryStream", NULL }, _tf_ssb_rpc_createHistoryStream, NULL);
tf_ssb_add_connections_changed_callback(ssb, _tf_ssb_rpc_connections_changed_callback, rpc);
uv_async_init(tf_ssb_get_loop(ssb), &rpc->wants_async, _tf_ssb_rpc_wants_async);
uv_unref((uv_handle_t*)&rpc->wants_async);
return rpc;