Commit graph

44 commits

Author SHA1 Message Date
Jordan Bancino
8ffade37b1 Add a meta header.
This allows programs to print the name and version of the library that
is currently in use.
2023-11-01 11:26:27 -04:00
Jordan Bancino
3a683dbb70 Fix includes in headers.
These are installed to the system and some compilers may not  find the
headers in the current directory if we don't do this, even though
according to the C standard, either should work.
2023-10-30 12:10:41 -04:00
Jordan Bancino
7e21b2bfce Format source code and apply license. 2023-09-28 19:16:45 -04:00
LoaD Accumulator
9c4c3fc899 Fixes issue #33 related to a memory issue, and format some code. (#35)
Fixes #33.

Co-authored-by: LoaD Accumulator <lda@freetards.xyz>
Reviewed-on: https://git.telodendria.io/Telodendria/telodendria/pulls/35
Co-authored-by: LoaD Accumulator <lda@noreply.git.telodendria.io>
Co-committed-by: LoaD Accumulator <lda@noreply.git.telodendria.io>
2023-09-11 10:57:16 -04:00
Jordan Bancino
8e8342528f Apply #72 2023-09-04 13:30:22 +00:00
Jordan Bancino
4e58b41049 Update documentation on UtilServerTs(). 2023-08-17 18:09:20 +00:00
Jordan Bancino
bcfab52f09 Ignore special case in Int64Str. This is hack but good enough for now. 2023-08-13 12:33:18 +00:00
Jordan Bancino
a1da7c7b4a Json now uses Int64 for integers.
This should fix all timestamp errors on 32-bit systems in Cytoplasm and
Telodendria.
2023-08-13 03:11:40 +00:00
Jordan Bancino
2c715c6e72 Make all timestamps use UInt64. 2023-08-12 23:02:06 +00:00
Jordan Bancino
e9af54e4c7 Allow forcing the emulation mode for testing purposes. 2023-08-12 21:51:51 +00:00
Jordan Bancino
63f835d006 Add signed 64-bit integer support. 2023-08-12 19:59:16 +00:00
Jordan Bancino
92b1e60c4c Add 64-bit emulation for platforms that don't have a native 64-bit type. 2023-08-12 16:30:24 +00:00
Jordan Bancino
b3b0206107 Format code. 2023-07-29 18:27:17 +00:00
Jordan Bancino
ee267b077d Add HashMapKeys() and HashMapValues() functions for convenience. 2023-07-18 00:15:29 +00:00
Jordan Bancino
e592cd8e5c Add basic Graph API.
This is going to be useful with state resolution and dependency ordering,
both of which will be crutial components of Telodendria.
2023-07-16 01:12:56 +00:00
Jordan Bancino
c4ef6d4ddc Apply #71: Add ArrayUnique() function. 2023-07-15 22:27:24 +00:00
Jordan Bancino
c4121d2dba Fix Unicode handling in Json, don't sign-extend bytes in Stream. 2023-07-15 17:57:21 +00:00
Jordan Bancino
e557de8d9d Fix Unicode handling. 2023-06-21 02:49:58 +00:00
Jordan Bancino
0b539a471d Fix CanonicalJson and ArraySort. 2023-06-21 02:37:56 +00:00
Jordan Bancino
c03b092536 Format source code. 2023-06-18 02:53:52 +00:00
Jordan Bancino
4abd0e9c22 Add Sha1 implementation. 2023-06-17 17:36:46 +00:00
Jordan Bancino
f5abcf5e50 Refactor Sha API to return raw bytes, added Sha1() function. 2023-06-17 17:36:11 +00:00
Jordan Bancino
179e16ed24 Apply #70: Add StrLower() function. 2023-06-12 14:10:59 +00:00
Jordan Bancino
eb3732a2cd Fix potential race condition. 2023-06-09 19:27:49 +00:00
Jordan Bancino
a177c55c26 Make Memory use a recursive mutex.
This allows some additional operations to be performed inside the memory
hooks, although it's still a bad idea to allocate or free memory while
inside the hook.
2023-06-04 18:44:37 +00:00
Jordan Bancino
bd1918ee05 Re-add memory bounds checking.
Also fixed a recursive lock error in some configurations, and replaced
a usage of strcpy() with strncpy().
2023-05-29 23:53:17 +00:00
Jordan Bancino
a358ca795d Format code. 2023-05-27 18:22:38 +00:00
Jordan Bancino
11a7b6653d Log a message stating that TLS is disabled if the config requests it. 2023-05-27 17:55:49 +00:00
Jordan Bancino
c5cfdb9894 Show human-readable thread ID in log messages.
This helps debug some multithreading issues.
2023-05-27 17:10:07 +00:00
Jordan Bancino
5694a609eb It appears that OpenSSL closes the socket descriptor for us.
When we close it again manually, we may actually be closing another thread's
file descriptor, which causes all kinds of problems.
2023-05-27 17:03:40 +00:00
Jordan Bancino
a853c5670c Fix potential write out of bounds. 2023-05-26 23:47:36 +00:00
Jordan Bancino
a7de0e4d16 Remove memory bound checking logic.
While this was nifty and impressive, it seems like it is too easy to mess
up, and is too platform-specific.
2023-05-26 23:10:00 +00:00
Jordan Bancino
b02ad117c4 Fix SIGBUS on some platforms. Memory alignment matters!
This is a temporary fix; I'm not convinced it will work on all platforms,
so I will probably end up removing all of the memory boundary code
altogether.
2023-05-26 23:05:35 +00:00
Jordan Bancino
0e60cd5195 Push Main return value into MainArgs.
This prevents weird things from happing on some architectures.
2023-05-26 21:05:06 +00:00
Jordan Bancino
3a78e50044 Fix incorrect block size. 2023-05-25 00:03:17 +00:00
Jordan Bancino
0c3ccb2c99 Don't log anything at the end of main; user may have redirected and closeed stream.
This would cause a segfault.
2023-05-24 23:32:53 +00:00
Jordan Bancino
061d9df739 Add sane default memory hook to Cytoplasm, fix more leaks in json. 2023-05-23 22:43:37 +00:00
Jordan Bancino
4b85d10983 Don't leak so much memory. 2023-05-23 17:53:19 +00:00
Jordan Bancino
f44db5a712 Properly initialize and destroy logging mutex in LogConfigCreate() and
LogConfigFree(), respectively.
2023-05-23 17:42:08 +00:00
Jordan Bancino
5975222246 Fix leak in HttpClient. 2023-05-21 13:55:49 +00:00
Jordan Bancino
814bef932f Fix warning about integer size mismatch. 2023-05-21 13:35:56 +00:00
Jordan Bancino
2aa74e3156 Add some basic heap memory bounds protection. 2023-05-21 13:24:00 +00:00
Jordan Bancino
767c8728f7 Fix memory leaks in hdoc. 2023-05-15 22:38:52 +00:00
Jordan Bancino
40eac30b5c Import new Cytoplasm library based off of code from Telodendria.
Telodendria doesn't use this library yet, but it will soon.
2023-05-13 17:30:09 +00:00