Compare commits
No commits in common. "22def1520923c15f72f13048b2391a7004126637" and "0b07b678b4a2d7bb31beba03ff39f9e2e7264d0a" have entirely different histories.
22def15209
...
0b07b678b4
13
core/core.js
13
core/core.js
@ -1248,7 +1248,7 @@ async function blobHandler(request, response, blobId, uri) {
|
|||||||
if ((match = /^\/\~(\w+)\/(\w+)$/.exec(blobId))) {
|
if ((match = /^\/\~(\w+)\/(\w+)$/.exec(blobId))) {
|
||||||
let user = match[1];
|
let user = match[1];
|
||||||
let appName = match[2];
|
let appName = match[2];
|
||||||
let credentials = httpd.auth_query(request.headers);
|
let credentials = https.auth_query(request.headers);
|
||||||
if (
|
if (
|
||||||
credentials &&
|
credentials &&
|
||||||
credentials.session &&
|
credentials.session &&
|
||||||
@ -1491,15 +1491,8 @@ loadSettings()
|
|||||||
async function start_tls() {
|
async function start_tls() {
|
||||||
const kCertificatePath = 'data/httpd/certificate.pem';
|
const kCertificatePath = 'data/httpd/certificate.pem';
|
||||||
const kPrivateKeyPath = 'data/httpd/privatekey.pem';
|
const kPrivateKeyPath = 'data/httpd/privatekey.pem';
|
||||||
let privateKey;
|
let privateKey = utf8Decode(await File.readFile(kPrivateKeyPath));
|
||||||
let certificate;
|
let certificate = utf8Decode(await File.readFile(kCertificatePath));
|
||||||
try {
|
|
||||||
privateKey = utf8Decode(await File.readFile(kPrivateKeyPath));
|
|
||||||
certificate = utf8Decode(await File.readFile(kCertificatePath));
|
|
||||||
} catch (e) {
|
|
||||||
print(`TLS disabled (${e.message}).`);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
let context = new TlsContext();
|
let context = new TlsContext();
|
||||||
context.setPrivateKey(privateKey);
|
context.setPrivateKey(privateKey);
|
||||||
context.setCertificate(certificate);
|
context.setCertificate(certificate);
|
||||||
|
@ -78,7 +78,7 @@ static void _file_write_write_callback(uv_fs_t* req)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
tf_task_reject_promise(task, promise, JS_ThrowInternalError(context, "Failed to write %s: %s", req->path, uv_strerror(req->result)));
|
tf_task_reject_promise(task, promise, JS_ThrowInternalError(context, "%s", uv_strerror(req->result)));
|
||||||
}
|
}
|
||||||
int result = uv_fs_close(req->loop, req, fsreq->file, _file_async_close_callback);
|
int result = uv_fs_close(req->loop, req, fsreq->file, _file_async_close_callback);
|
||||||
if (result < 0)
|
if (result < 0)
|
||||||
@ -91,7 +91,6 @@ static void _file_write_write_callback(uv_fs_t* req)
|
|||||||
static void _file_write_open_callback(uv_fs_t* req)
|
static void _file_write_open_callback(uv_fs_t* req)
|
||||||
{
|
{
|
||||||
fs_req_t* fsreq = (fs_req_t*)req;
|
fs_req_t* fsreq = (fs_req_t*)req;
|
||||||
const char* path = tf_strdup(req->path);
|
|
||||||
uv_fs_req_cleanup(req);
|
uv_fs_req_cleanup(req);
|
||||||
tf_task_t* task = req->loop->data;
|
tf_task_t* task = req->loop->data;
|
||||||
JSContext* context = tf_task_get_context(task);
|
JSContext* context = tf_task_get_context(task);
|
||||||
@ -103,8 +102,7 @@ static void _file_write_open_callback(uv_fs_t* req)
|
|||||||
int result = uv_fs_write(req->loop, req, fsreq->file, &buf, 1, 0, _file_write_write_callback);
|
int result = uv_fs_write(req->loop, req, fsreq->file, &buf, 1, 0, _file_write_write_callback);
|
||||||
if (result < 0)
|
if (result < 0)
|
||||||
{
|
{
|
||||||
uv_fs_req_cleanup(req);
|
tf_task_reject_promise(task, promise, JS_ThrowInternalError(context, "%s", uv_strerror(result)));
|
||||||
tf_task_reject_promise(task, promise, JS_ThrowInternalError(context, "Failed to write %s: %s", path, uv_strerror(result)));
|
|
||||||
result = uv_fs_close(req->loop, req, fsreq->file, _file_async_close_callback);
|
result = uv_fs_close(req->loop, req, fsreq->file, _file_async_close_callback);
|
||||||
if (result < 0)
|
if (result < 0)
|
||||||
{
|
{
|
||||||
@ -116,9 +114,9 @@ static void _file_write_open_callback(uv_fs_t* req)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
tf_task_reject_promise(task, promise, JS_ThrowInternalError(context, "%s", uv_strerror(req->result)));
|
tf_task_reject_promise(task, promise, JS_ThrowInternalError(context, "%s", uv_strerror(req->result)));
|
||||||
|
uv_fs_req_cleanup(req);
|
||||||
tf_free(req);
|
tf_free(req);
|
||||||
}
|
}
|
||||||
tf_free((void*)path);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static JSValue _file_write_file(JSContext* context, JSValueConst this_val, int argc, JSValueConst* argv)
|
static JSValue _file_write_file(JSContext* context, JSValueConst this_val, int argc, JSValueConst* argv)
|
||||||
@ -158,7 +156,7 @@ static JSValue _file_write_file(JSContext* context, JSValueConst this_val, int a
|
|||||||
int result = uv_fs_open(tf_task_get_loop(task), &req->fs, file_name, UV_FS_O_CREAT | UV_FS_O_WRONLY, 0644, _file_write_open_callback);
|
int result = uv_fs_open(tf_task_get_loop(task), &req->fs, file_name, UV_FS_O_CREAT | UV_FS_O_WRONLY, 0644, _file_write_open_callback);
|
||||||
if (result < 0)
|
if (result < 0)
|
||||||
{
|
{
|
||||||
tf_task_reject_promise(task, promise, JS_ThrowInternalError(context, "Failed to open %s for write: %s", file_name, uv_strerror(result)));
|
tf_task_reject_promise(task, promise, JS_ThrowInternalError(context, "%s", uv_strerror(result)));
|
||||||
}
|
}
|
||||||
JS_FreeCString(context, file_name);
|
JS_FreeCString(context, file_name);
|
||||||
return promise_value;
|
return promise_value;
|
||||||
@ -166,6 +164,7 @@ static JSValue _file_write_file(JSContext* context, JSValueConst this_val, int a
|
|||||||
|
|
||||||
static void _file_read_read_callback(uv_fs_t* req)
|
static void _file_read_read_callback(uv_fs_t* req)
|
||||||
{
|
{
|
||||||
|
uv_fs_req_cleanup(req);
|
||||||
fs_req_t* fsreq = (fs_req_t*)req;
|
fs_req_t* fsreq = (fs_req_t*)req;
|
||||||
tf_task_t* task = req->loop->data;
|
tf_task_t* task = req->loop->data;
|
||||||
JSContext* context = tf_task_get_context(task);
|
JSContext* context = tf_task_get_context(task);
|
||||||
@ -178,9 +177,8 @@ static void _file_read_read_callback(uv_fs_t* req)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
tf_task_reject_promise(task, promise, JS_ThrowInternalError(context, "Failed to read %s: %s", req->path, uv_strerror(req->result)));
|
tf_task_reject_promise(task, promise, JS_ThrowInternalError(context, "%s", uv_strerror(req->result)));
|
||||||
}
|
}
|
||||||
uv_fs_req_cleanup(req);
|
|
||||||
int result = uv_fs_close(req->loop, req, fsreq->file, _file_async_close_callback);
|
int result = uv_fs_close(req->loop, req, fsreq->file, _file_async_close_callback);
|
||||||
if (result < 0)
|
if (result < 0)
|
||||||
{
|
{
|
||||||
@ -191,7 +189,6 @@ static void _file_read_read_callback(uv_fs_t* req)
|
|||||||
|
|
||||||
static void _file_read_open_callback(uv_fs_t* req)
|
static void _file_read_open_callback(uv_fs_t* req)
|
||||||
{
|
{
|
||||||
const char* path = tf_strdup(req->path);
|
|
||||||
uv_fs_req_cleanup(req);
|
uv_fs_req_cleanup(req);
|
||||||
fs_req_t* fsreq = (fs_req_t*)req;
|
fs_req_t* fsreq = (fs_req_t*)req;
|
||||||
tf_task_t* task = req->loop->data;
|
tf_task_t* task = req->loop->data;
|
||||||
@ -204,7 +201,7 @@ static void _file_read_open_callback(uv_fs_t* req)
|
|||||||
int result = uv_fs_read(req->loop, req, fsreq->file, &buf, 1, 0, _file_read_read_callback);
|
int result = uv_fs_read(req->loop, req, fsreq->file, &buf, 1, 0, _file_read_read_callback);
|
||||||
if (result < 0)
|
if (result < 0)
|
||||||
{
|
{
|
||||||
tf_task_reject_promise(task, promise, JS_ThrowInternalError(context, "Failed to read %s: %s", path, uv_strerror(result)));
|
tf_task_reject_promise(task, promise, JS_ThrowInternalError(context, "%s", uv_strerror(result)));
|
||||||
result = uv_fs_close(req->loop, req, fsreq->file, _file_async_close_callback);
|
result = uv_fs_close(req->loop, req, fsreq->file, _file_async_close_callback);
|
||||||
if (result < 0)
|
if (result < 0)
|
||||||
{
|
{
|
||||||
@ -215,11 +212,10 @@ static void _file_read_open_callback(uv_fs_t* req)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
tf_task_reject_promise(task, promise, JS_ThrowInternalError(context, "Failed to open %s for read: %s", path, uv_strerror(req->result)));
|
tf_task_reject_promise(task, promise, JS_ThrowInternalError(context, "%s", uv_strerror(req->result)));
|
||||||
uv_fs_req_cleanup(req);
|
uv_fs_req_cleanup(req);
|
||||||
tf_free(req);
|
tf_free(req);
|
||||||
}
|
}
|
||||||
tf_free((void*)path);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static JSValue _file_read_file(JSContext* context, JSValueConst this_val, int argc, JSValueConst* argv)
|
static JSValue _file_read_file(JSContext* context, JSValueConst this_val, int argc, JSValueConst* argv)
|
||||||
@ -242,7 +238,7 @@ static JSValue _file_read_file(JSContext* context, JSValueConst this_val, int ar
|
|||||||
int result = uv_fs_open(tf_task_get_loop(task), &req->fs, file_name, UV_FS_O_RDONLY, 0, _file_read_open_callback);
|
int result = uv_fs_open(tf_task_get_loop(task), &req->fs, file_name, UV_FS_O_RDONLY, 0, _file_read_open_callback);
|
||||||
if (result < 0)
|
if (result < 0)
|
||||||
{
|
{
|
||||||
tf_task_reject_promise(task, promise, JS_ThrowInternalError(context, "Failed to open %s for read: %s", file_name, uv_strerror(result)));
|
tf_task_reject_promise(task, promise, JS_ThrowInternalError(context, "%s", uv_strerror(result)));
|
||||||
uv_fs_req_cleanup(&req->fs);
|
uv_fs_req_cleanup(&req->fs);
|
||||||
tf_free(req);
|
tf_free(req);
|
||||||
}
|
}
|
||||||
@ -326,7 +322,7 @@ static void _file_read_file_zip_after_work(uv_work_t* work, int status)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
tf_task_reject_promise(data->task, data->promise, JS_ThrowInternalError(data->context, "Failed to read %s: %d.", data->file_path, data->result));
|
tf_task_reject_promise(data->task, data->promise, JS_ThrowInternalError(data->context, "Error: %d.", data->result));
|
||||||
}
|
}
|
||||||
tf_free(data->buffer);
|
tf_free(data->buffer);
|
||||||
tf_free((void*)data->file_path);
|
tf_free((void*)data->file_path);
|
||||||
@ -356,7 +352,7 @@ static JSValue _file_read_file_zip(JSContext* context, JSValueConst this_val, in
|
|||||||
int r = uv_queue_work(tf_task_get_loop(task), &work->request, _file_read_file_zip_work, _file_read_file_zip_after_work);
|
int r = uv_queue_work(tf_task_get_loop(task), &work->request, _file_read_file_zip_work, _file_read_file_zip_after_work);
|
||||||
if (r)
|
if (r)
|
||||||
{
|
{
|
||||||
tf_task_reject_promise(task, work->promise, JS_ThrowInternalError(context, "Failed to create read work for %s: %s", file_name, uv_strerror(r)));
|
tf_task_reject_promise(task, work->promise, JS_ThrowInternalError(context, "%s", uv_strerror(r)));
|
||||||
tf_free((void*)work->file_path);
|
tf_free((void*)work->file_path);
|
||||||
tf_free(work);
|
tf_free(work);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user