e0c8530b12
Clean up http client enough to replace curl in send-patch.
2023-04-01 02:46:07 +00:00
e592840c99
Clean up some HTTP client stuff.
2023-04-01 02:13:41 +00:00
7b3d537175
Remove UtilStreamCopy()
2023-04-01 00:20:18 +00:00
aeb49f80e5
Add support for OpenSSL. This is a good demo of how easy it is to support TLS libraries.
2023-03-24 02:41:01 +00:00
007e639b0c
Don't require the TLS_ in the environment variable.
...
It's redundant.
2023-03-24 00:25:44 +00:00
e13442c122
Fix strange behavior in TlsLibreSSL.
...
tls_read() and tls_write() may return TLS_WANT_POLLIN or TLS_WANT_POLLOUT
if data isn't ready to be read or written yet. We have to account for this
by converting it to EAGAIN, which is how a typical read() or write()
function should behave.
Also installed a SIGPIPE handler; we do not want to be terminated by
SIGPIPE, and it's safe to ignore this signal because it should be
handled thoroughly in the code.
2023-03-23 16:39:15 +00:00
2441f07848
Add support for spinning up multiple HTTP servers.
...
This is useful for having a TLS and a non-TLS version port, like Synapse.
I verified that the multiple-servers does in fact work as intended,
although the TLS server part is broken; I must be doing something
incorrectly with LibreSSL in setting up the server.
2023-03-23 02:12:45 +00:00
fccd15b239
Don't unconditionally close standard input; it may have been used and
...
closed before. If it was never used, it was never opened.
2023-03-22 18:12:46 +00:00
b8d00bc8bf
Make td run warn if Memory.txt gets created.
2023-03-22 14:57:57 +00:00
b58ca7d22e
Start working on adding TLS support to HttpServer.
2023-03-22 01:46:24 +00:00
6561b5bae1
Add TLS build support to td.
2023-03-22 01:17:42 +00:00
d1b4ecff48
Apparently the order of LDFLAGS matters to some compilers.
...
Also don't to -pg in debug mode, because that's not supported on all
compilers either.
2023-03-22 00:13:27 +00:00
63d07365db
Don't close standard output twice, that leads to a segfault!
2023-03-22 00:12:04 +00:00
5289c16e2b
Convert all code to new Stream API.
...
Also made a number of improvmements to tt, making it compatible with more
shells.
2023-03-18 14:32:09 +00:00
65f4c90df3
Rename HttpStream() to HttpServerStream() to match HttpClientStream()
2023-03-16 02:17:48 +00:00
5dbaf3c223
Apply #65 , remove printf() in Db, and make tt show login messages.
2023-03-15 13:36:49 +00:00
62cd1cdc98
Misc changes.
2023-03-12 03:37:57 +00:00
64add9c9ab
Fix unused variable warning.
2023-03-10 20:12:25 +00:00
3037f12907
Add tt and http-debug-server tools.
2023-03-10 18:48:52 +00:00
2d9b706f38
Fix I/O in JsonConsumeWhitespace() and UtilStreamCopy().
...
These functions previously operated on the assumption that fgetc() would
block; however it will not block on HttpServer streams because those are
non-blocking. They now check error conditions properly before failing
prematurely.
2023-03-10 18:46:03 +00:00
fd12dee62e
Make sure a newline is printed after JSON object is pretty-printed.
2023-03-10 04:30:56 +00:00
8ead9cc93a
Apply #63 , make some general bug fixes.
2023-03-10 03:24:04 +00:00
7344d4fa46
Apparently some shells interpret the - in a string as an argument delimiter???
2023-03-09 02:49:14 +00:00
ca053a12b1
Break out main() into Main.c, fix some compile warnings on Cygwin.
2023-03-09 02:46:04 +00:00
9a1300ff2e
Make sure input is initialized.
2023-03-09 02:22:13 +00:00
012c334ee5
Make send-patch use json instead of jq.
2023-03-09 00:06:15 +00:00
20ebeb9c32
Switch tp from using jq to json; format td
2023-03-08 22:47:40 +00:00
efdf168085
Allow encoding user-provided strings.
2023-03-08 20:31:49 +00:00
50e599f1cd
Implement a mostly-functional query language for JSON.
2023-03-08 19:49:06 +00:00
7b22fb02a2
Implement pretty-printing option in Json.
...
Telodendria itself doesn't use it, but the json CLI tool does.
2023-03-08 17:15:43 +00:00
cb8c4fceb5
Begin working on JSON CLI tool.
...
This is a similar situation to the HTTP CLI tool: since we have the
Json API anyway, we might as well have a little command line tool to
replace jq.
2023-03-08 04:06:43 +00:00
19e89110cd
Bump version number to v0.3.0
2023-03-08 03:46:38 +00:00
1a169d1a2e
Fix usage message.
2023-03-08 03:31:34 +00:00
8d75d8a023
Add simple HTTP CLI tool that uses the HttpClient API.
...
You might be asking why I would just write a simple curl replacement
when curl does the job just fine. Well, the most immediate reason is
to test the HttpClient API, but since Telodendria's goal is to not
be dependent on any third-party code if at all possible, it makes
sense to have a simple HTTP client to use not only for testing
Telodendria, but also for configuring it. When we move the
configuration to the database, we'll ship a script that uses this
tool to allow admins to easily submit API requests.
Do not be concerned that HttpClient does not support TLS yet. TLS
support is necessary for federation to work, so it is coming
eventually.
2023-03-08 03:30:36 +00:00
fc8fbc9a70
I forgot to set the date in the changelog.
2023-03-07 00:51:16 +00:00
17734c90e8
This is unnecessary.
2023-03-06 23:54:55 +00:00
154e5b82df
Looks like CVS is being weird with Mdocdate strings.
2023-03-06 23:51:55 +00:00
7750963c29
Something weird is going on here.
2023-03-06 23:49:30 +00:00
8c2ed1c8f1
Apply #59
2023-03-04 15:34:44 +00:00
55b3728e7e
Bake the platform name into the version number.
...
This is helpful as we're porting to different operating systems. I guess
it just makes the porting effort more satisfying. Seeing this header
makes me happy:
Server: Telodendria/0.2.0-Haiku
2023-03-01 03:19:21 +00:00
2b77681763
Move getent check to common.sh
2023-03-01 03:11:10 +00:00
dd1b26bad8
Only use getent if the command can be found.
2023-03-01 03:09:46 +00:00
755d08946a
Add some more obscure platforms to td build script.
2023-03-01 03:08:53 +00:00
2e1220621c
Use -pipe, supposedly this speeds things up.
...
The codebase is getting kind of big, we'll need all the help we can get.
2023-03-01 01:26:34 +00:00
26b0f33f96
-not is not portable, grep -v should work good enough though.
2023-02-24 02:02:47 +00:00
d81e8f3a32
We're building up some tools; let's print them out in env.sh
2023-02-17 18:26:08 +00:00
b05e81776a
Be smart about the type of man page we generate.
2023-02-16 17:22:32 +00:00
c78dc3bd31
Fix a memory bug in StrRandom() with RandIntN().
...
We're storing integers in this buffer, so we have to allocate enough
memory for them. An integer is usually more than one byte.
2023-02-16 13:10:09 +00:00
1f1cbc0461
Fix a bad jq parameter.
2023-02-16 02:01:25 +00:00
2ce43ce457
Add a script for conveniently creating new library man pages.
2023-02-16 00:55:10 +00:00
cebc2959cc
Fix a few things that were bothering me.
2023-02-15 21:53:39 +00:00
50aa65617a
Fix some bugs in the man page index generation.
2023-02-15 16:00:36 +00:00
de0ece10e2
Use generated tables instead of hand-crafted tables.
2023-02-15 03:30:52 +00:00
27c4713e5d
I actually decided I don't like this.
2023-02-11 00:07:18 +00:00
71a0181a6a
Break out static options into an environment variable.
...
This allows users to turn off static compilation if the compiler or linker
throws a fit about it. Looking at you, Glibc. And PCC doesn't seem to like
static compilation either; it generates a binary that just segfaults
immediately on executation.
2023-02-05 14:46:20 +00:00
056804810f
Fix man page links on website.
2023-01-17 13:53:31 +00:00
9186cdb13d
Verbose formatting on the terminal, because why not?
2023-01-10 01:21:35 +00:00
a7ab3e757a
Apply #43
2023-01-09 18:20:19 +00:00
02884b6bdb
Fix typo.
2023-01-09 18:01:32 +00:00
a09e15f6bc
Don't output server response.
2023-01-09 18:00:14 +00:00
cdb26b5223
Make Telodendria Bot retry fetching if it failed.
2023-01-09 17:56:24 +00:00
90a74c3b0a
Don't accept connections if the connection queue is full.
2023-01-09 17:44:12 +00:00
148706b517
Use spaces instead of tabs. Tabs don't work over SSH?
2023-01-07 19:22:38 +00:00
472a6ccbf7
Clean up build output on terminals.
...
If we're not writing out to a terminal, then echo each file out as it is
being compiled. Otherwise, if we are on a terminal, overwrite the previous
line.
2023-01-07 19:14:15 +00:00
7cd9fe8bd7
Fix log output by changing __FILE__
2023-01-06 23:00:18 +00:00
69862a1e6e
Use -ansi in compiler flags. I think this more well supported.
2023-01-01 21:16:20 +00:00
eeabe93e3f
Revert using _POSIX_C_SOURCE.
...
It didn't fix the issue.
2022-12-24 00:51:49 +00:00
2d1bfd8b74
Define _POSIX_C_SOURCE again.
2022-12-23 22:53:48 +00:00
f32e5eafce
This release is getting too big to be 0.1.1
2022-12-18 20:11:32 +00:00
5255c3f773
Fix whitespace issues in td
2022-12-14 01:00:52 +00:00
b63eeffb0f
Implement variable substitution for site files.
...
It was such a pain to update the links in site/index.html for v0.1.0, so
this is necessary to prevent me from going insane manually updating all
these version numbers sprinkled everywhere.
2022-12-14 00:54:52 +00:00
5d1451bf88
Bump version number
2022-12-13 20:36:03 +00:00
6d5ef9d6ad
Fix cvs tag command (for real this time)
2022-12-13 19:57:34 +00:00
7533b9f6d1
That didn't work
2022-12-13 19:49:03 +00:00
62fbbacfae
Fix cvs tag command.
2022-12-13 19:45:29 +00:00
b5d55427b8
Update version number and website
2022-12-13 16:44:51 +00:00
a3502adf57
Add telodendria-changelog; prepare for v0.1.0
2022-12-13 15:59:40 +00:00
fb56c3fca6
Clean up output a little
2022-11-22 23:57:58 +00:00
dce9788adf
Fix a bug when overriding CFLAGS with .env
2022-11-22 22:31:53 +00:00
845658e0ac
Obscure bug when using OpenBSD make
2022-11-20 01:40:55 +00:00
71a6842302
Remove install/uninstall recipes, and replace telodendria-setup with package
...
man page.
2022-11-20 00:12:53 +00:00
d61770c772
Make mandoc link to man pages
...
Now web users can just click on the references and be taken to that page.
Unfortunately this generates a lot of broken links as well, for example
all the times I like to a system manual page that I don't copy to the
web server.
2022-11-19 23:15:08 +00:00
fb7363d97e
Don't uninstall the configuration file.
2022-11-18 22:49:06 +00:00
fe29b9f848
Remove unit testing code.
...
Until I can do it properly, I don't want to do it at all.
2022-11-18 22:27:23 +00:00
9494016d2d
Apply #34
2022-11-13 17:10:25 +00:00
6776db5ff9
Accept #33
2022-11-11 01:07:49 +00:00
2c65f4925c
Add install and uninstall recipes
2022-11-06 22:01:59 +00:00
14223614ad
Support incremental builds on DragonFlyBSD
2022-11-03 19:08:24 +00:00
d9991bbd77
Apparently _DEFAULT_SOURCE is required to compile on Linux.
2022-11-01 09:04:41 -04:00
2791dbdcc8
When debugging, only set the required LDFLAGS.
...
This allows us to actually use good debugging symbols when loading the
executable into something like lldb or gdb.
2022-10-28 08:43:58 -04:00
d32742bb25
Make "format" recipe less verbose
2022-10-24 13:30:18 -04:00
14c79a901a
Build improvements so we can easily port to more platforms.
2022-10-15 12:45:21 -04:00
648ce5c4cc
Remove NonPosix.h; it seems to be causing more trouble than it's worth.
2022-10-15 11:45:23 -04:00
e1827da071
As promised, we can now build on Windows with Cygwin.
2022-10-14 19:53:11 -04:00
2d6b80a26e
Move man pages into a proper man directory
2022-09-30 19:11:44 -04:00
b5d538f2ce
Cleaned up argument parsing to match what was in the docs
2022-09-24 19:41:39 -04:00
64eaecfdda
Style man pages like the rest of the site.
2022-09-23 09:51:13 -04:00
b561c3f4fc
Fix echo error
2022-09-23 09:07:06 -04:00
f19f543fd2
Fix up some broken links; make td more verbose when deploying website.
2022-09-23 09:04:16 -04:00
b85e443907
Move header.txt to LICENSE.txt
2022-09-22 17:54:56 -04:00