forked from Telodendria/Telodendria
Format source code.
This commit is contained in:
parent
96ca9a725d
commit
459b2e856f
7 changed files with 113 additions and 63 deletions
|
@ -358,6 +358,7 @@ ConfigParse(HashMap * config)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
size_t len = strlen(tConfig->serverName) + 10;
|
size_t len = strlen(tConfig->serverName) + 10;
|
||||||
|
|
||||||
tConfig->baseUrl = Malloc(len);
|
tConfig->baseUrl = Malloc(len);
|
||||||
if (!tConfig->baseUrl)
|
if (!tConfig->baseUrl)
|
||||||
{
|
{
|
||||||
|
|
20
src/Db.c
20
src/Db.c
|
@ -540,9 +540,8 @@ DbLockFromArr(Db * db, Array * args)
|
||||||
db->mostRecent = ref;
|
db->mostRecent = ref;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If there is no least recent, this is the only
|
/* If there is no least recent, this is the only thing in the
|
||||||
* thing in the cache, so it is also least recent.
|
* cache, so it is also least recent. */
|
||||||
*/
|
|
||||||
if (!db->leastRecent)
|
if (!db->leastRecent)
|
||||||
{
|
{
|
||||||
db->leastRecent = ref;
|
db->leastRecent = ref;
|
||||||
|
@ -822,18 +821,22 @@ DbUnlock(Db * db, DbRef * ref)
|
||||||
ref->size = DbComputeSize(ref->json);
|
ref->size = DbComputeSize(ref->json);
|
||||||
db->cacheSize += ref->size;
|
db->cacheSize += ref->size;
|
||||||
|
|
||||||
/* If this ref has grown significantly since we last computed
|
/* If this ref has grown significantly since we last
|
||||||
* its size, it may have filled the cache and require some
|
* computed its size, it may have filled the cache and
|
||||||
* items to be evicted. */
|
* require some items to be evicted. */
|
||||||
DbCacheEvict(db);
|
DbCacheEvict(db);
|
||||||
|
|
||||||
destroy = 0;
|
destroy = 0;
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
destroy = 1;
|
destroy = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
Free(key);
|
Free(key);
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
destroy = 1;
|
destroy = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -963,4 +966,3 @@ DbJsonSet(DbRef * ref, HashMap * json)
|
||||||
ref->json = JsonDuplicate(json);
|
ref->json = JsonDuplicate(json);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,7 @@ typedef struct RandState
|
||||||
} RandState;
|
} RandState;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
RandSeed(RandState *state, UInt32 seed)
|
RandSeed(RandState * state, UInt32 seed)
|
||||||
{
|
{
|
||||||
state->mt[0] = seed & 0xFFFFFFFF;
|
state->mt[0] = seed & 0xFFFFFFFF;
|
||||||
|
|
||||||
|
@ -56,9 +56,9 @@ RandSeed(RandState *state, UInt32 seed)
|
||||||
}
|
}
|
||||||
|
|
||||||
static UInt32
|
static UInt32
|
||||||
RandGenerate(RandState *state)
|
RandGenerate(RandState * state)
|
||||||
{
|
{
|
||||||
static const UInt32 mag[2] = { 0x0, 0x9908B0DF };
|
static const UInt32 mag[2] = {0x0, 0x9908B0DF};
|
||||||
|
|
||||||
UInt32 result;
|
UInt32 result;
|
||||||
|
|
||||||
|
|
|
@ -48,7 +48,8 @@ ROUTE_IMPL(RouteCapabilities, path, argp)
|
||||||
JsonSet(capabilities, JsonValueBoolean(1), 2, "m.set_avatar_url", "enabled");
|
JsonSet(capabilities, JsonValueBoolean(1), 2, "m.set_avatar_url", "enabled");
|
||||||
JsonSet(capabilities, JsonValueBoolean(0), 2, "m.3pid_changes", "enabled");
|
JsonSet(capabilities, JsonValueBoolean(0), 2, "m.3pid_changes", "enabled");
|
||||||
|
|
||||||
/* TODO: When more room versions are implemented, add them to roomVersions */
|
/* TODO: When more room versions are implemented, add them to
|
||||||
|
* roomVersions */
|
||||||
HashMapSet(roomVersions, "1", JsonValueString("unstable"));
|
HashMapSet(roomVersions, "1", JsonValueString("unstable"));
|
||||||
|
|
||||||
JsonSet(capabilities, JsonValueString("1"), 2, "m.room_versions", "default");
|
JsonSet(capabilities, JsonValueString("1"), 2, "m.room_versions", "default");
|
||||||
|
|
|
@ -74,7 +74,7 @@ ROUTE_IMPL(RouteUiaFallback, path, argp)
|
||||||
ArrayAdd(flow, UiaStageBuild(authType, NULL));
|
ArrayAdd(flow, UiaStageBuild(authType, NULL));
|
||||||
ArrayAdd(flows, flow);
|
ArrayAdd(flows, flow);
|
||||||
uiaResult = UiaComplete(flows, args->context,
|
uiaResult = UiaComplete(flows, args->context,
|
||||||
args->matrixArgs->db, request, &response, config);
|
args->matrixArgs->db, request, &response, config);
|
||||||
UiaFlowsFree(flows);
|
UiaFlowsFree(flows);
|
||||||
|
|
||||||
if (uiaResult < 0)
|
if (uiaResult < 0)
|
||||||
|
@ -121,25 +121,25 @@ ROUTE_IMPL(RouteUiaFallback, path, argp)
|
||||||
HtmlEndForm(stream);
|
HtmlEndForm(stream);
|
||||||
HtmlBeginJs(stream);
|
HtmlBeginJs(stream);
|
||||||
StreamPrintf(stream,
|
StreamPrintf(stream,
|
||||||
"function buildRequest() {"
|
"function buildRequest() {"
|
||||||
" let user = document.getElementById('user').value;"
|
" let user = document.getElementById('user').value;"
|
||||||
" let pass = document.getElementById('password').value;"
|
" let pass = document.getElementById('password').value;"
|
||||||
" if (!user || !pass) {"
|
" if (!user || !pass) {"
|
||||||
" setFormError('Please specify a username and password.');"
|
" setFormError('Please specify a username and password.');"
|
||||||
" return false;"
|
" return false;"
|
||||||
" }"
|
" }"
|
||||||
" return {"
|
" return {"
|
||||||
" auth: {"
|
" auth: {"
|
||||||
" type: '%s',"
|
" type: '%s',"
|
||||||
" identifier: {"
|
" identifier: {"
|
||||||
" type: 'm.id.user',"
|
" type: 'm.id.user',"
|
||||||
" user: user"
|
" user: user"
|
||||||
" },"
|
" },"
|
||||||
" password: pass,"
|
" password: pass,"
|
||||||
" session: '%s'"
|
" session: '%s'"
|
||||||
" }"
|
" }"
|
||||||
" };"
|
" };"
|
||||||
"}", authType, sessionId);
|
"}", authType, sessionId);
|
||||||
HtmlEndJs(stream);
|
HtmlEndJs(stream);
|
||||||
}
|
}
|
||||||
else if (strcmp(authType, "m.login.registration_token") == 0)
|
else if (strcmp(authType, "m.login.registration_token") == 0)
|
||||||
|
@ -153,20 +153,20 @@ ROUTE_IMPL(RouteUiaFallback, path, argp)
|
||||||
HtmlEndForm(stream);
|
HtmlEndForm(stream);
|
||||||
HtmlBeginJs(stream);
|
HtmlBeginJs(stream);
|
||||||
StreamPrintf(stream,
|
StreamPrintf(stream,
|
||||||
"function buildRequest() {"
|
"function buildRequest() {"
|
||||||
" let token = document.getElementById('token').value;"
|
" let token = document.getElementById('token').value;"
|
||||||
" if (!token) { "
|
" if (!token) { "
|
||||||
" setFormError('Please specify a registration token.');"
|
" setFormError('Please specify a registration token.');"
|
||||||
" return false;"
|
" return false;"
|
||||||
" }"
|
" }"
|
||||||
" return {"
|
" return {"
|
||||||
" auth: {"
|
" auth: {"
|
||||||
" type: '%s',"
|
" type: '%s',"
|
||||||
" session: '%s',"
|
" session: '%s',"
|
||||||
" token: token"
|
" token: token"
|
||||||
" }"
|
" }"
|
||||||
" };"
|
" };"
|
||||||
"}", authType, sessionId);
|
"}", authType, sessionId);
|
||||||
HtmlEndJs(stream);
|
HtmlEndJs(stream);
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
|
@ -183,23 +183,23 @@ ROUTE_IMPL(RouteUiaFallback, path, argp)
|
||||||
|
|
||||||
HtmlBeginJs(stream);
|
HtmlBeginJs(stream);
|
||||||
StreamPrintf(stream,
|
StreamPrintf(stream,
|
||||||
"function processResponse(xhr) {"
|
"function processResponse(xhr) {"
|
||||||
" let r = JSON.parse(xhr.responseText);"
|
" let r = JSON.parse(xhr.responseText);"
|
||||||
" console.log(r);"
|
" console.log(r);"
|
||||||
" if (xhr.status == 200 || r.completed.includes('%s')) {"
|
" if (xhr.status == 200 || r.completed.includes('%s')) {"
|
||||||
" if (window.onAuthDone) {"
|
" if (window.onAuthDone) {"
|
||||||
" window.onAuthDone();"
|
" window.onAuthDone();"
|
||||||
" } else if (window.opener && window.opener.postMessage) {"
|
" } else if (window.opener && window.opener.postMessage) {"
|
||||||
" window.opener.postMessage('authDone', '*');"
|
" window.opener.postMessage('authDone', '*');"
|
||||||
" } else {"
|
" } else {"
|
||||||
" setFormError('Client error.');"
|
" setFormError('Client error.');"
|
||||||
" }"
|
" }"
|
||||||
" } else if (r.session != '%s') {"
|
" } else if (r.session != '%s') {"
|
||||||
" setFormError('Invalid session.');"
|
" setFormError('Invalid session.');"
|
||||||
" } else {"
|
" } else {"
|
||||||
" setFormError('Invalid credentials.');"
|
" setFormError('Invalid credentials.');"
|
||||||
" }"
|
" }"
|
||||||
"}", authType, sessionId);
|
"}", authType, sessionId);
|
||||||
|
|
||||||
StreamPuts(stream,
|
StreamPuts(stream,
|
||||||
"onFormSubmit('auth-form', (frm) => {"
|
"onFormSubmit('auth-form', (frm) => {"
|
||||||
|
|
|
@ -1,3 +1,26 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2022-2023 Jordan Bancino <@jordan:bancino.net>
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person
|
||||||
|
* obtaining a copy of this software and associated documentation files
|
||||||
|
* (the "Software"), to deal in the Software without restriction,
|
||||||
|
* including without limitation the rights to use, copy, modify, merge,
|
||||||
|
* publish, distribute, sublicense, and/or sell copies of the Software,
|
||||||
|
* and to permit persons to whom the Software is furnished to do so,
|
||||||
|
* subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be
|
||||||
|
* included in all copies or portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||||
|
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||||
|
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
* SOFTWARE.
|
||||||
|
*/
|
||||||
#ifndef TELODENDRIA_INT_H
|
#ifndef TELODENDRIA_INT_H
|
||||||
#define TELODENDRIA_INT_H
|
#define TELODENDRIA_INT_H
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,26 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2022-2023 Jordan Bancino <@jordan:bancino.net>
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person
|
||||||
|
* obtaining a copy of this software and associated documentation files
|
||||||
|
* (the "Software"), to deal in the Software without restriction,
|
||||||
|
* including without limitation the rights to use, copy, modify, merge,
|
||||||
|
* publish, distribute, sublicense, and/or sell copies of the Software,
|
||||||
|
* and to permit persons to whom the Software is furnished to do so,
|
||||||
|
* subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be
|
||||||
|
* included in all copies or portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||||
|
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||||
|
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
* SOFTWARE.
|
||||||
|
*/
|
||||||
#include <Int.h>
|
#include <Int.h>
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
Loading…
Reference in a new issue