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
a97a593f21
Format code.
2023-03-16 16:53:18 +00:00
27b3b6cdc6
Add StreamPuts(), don't make StreamVprintf() defer to IoVprintf().
2023-03-16 16:51:41 +00:00
8539a03d5b
Add StreamFile() convenience method.
2023-03-16 16:25:24 +00:00
e0a3760a37
Don't buffer in IoWrite(), indicate that fwrite() returns size_t, not ssize_t.
2023-03-16 14:17:04 +00:00
6ee1857f5f
Format source code.
2023-03-16 12:29:38 +00:00
7d9770fc12
Add some convenience functions for working with Io and Stream.
...
Also broke out IoFd into it's own file, and did the same with IoFile.
2023-03-16 12:28:55 +00:00
65f4c90df3
Rename HttpStream() to HttpServerStream() to match HttpClientStream()
2023-03-16 02:17:48 +00:00
ff52cc78dc
Update TODO
2023-03-15 17:30:14 +00:00
ab4755240a
Add IoCopy() and StreamCopy()
...
Both do buffered reads and writes, but IoCopy() uses IoRead() and
IoWrite() directly, whereas StreamCopy() relies on StreamGetc() and
StreamPutc(), which manipulate the stream buffers.
2023-03-15 17:14:16 +00:00
92da3542a6
Move low-level fopencookie()/funopen() functionality to Io API.
...
The Stream API now provides the buffered I/O functionality analogous to
the C standard library.
2023-03-15 16:47:34 +00:00
5dbaf3c223
Apply #65 , remove printf() in Db, and make tt show login messages.
2023-03-15 13:36:49 +00:00
afc7667737
Begin prototyping Stream API.
2023-03-15 02:40:23 +00:00
ae97d8116c
Apply #64 : Registration tokens.
2023-03-14 00:37:24 +00:00
76bfa120ee
Fix CPU pin if clients don't shutdown() their socket properly.
...
If we haven't read any bytes yet, then we try a few times a few ms apart
to see if we get anything. If not, treat it as an EOF. Otherwise, read
bytes until we get an EOF or EAGAIN. EAGAIN after a consistent read of
bytes is treaded as an EOF immediately.
2023-03-12 15:08:50 +00:00
62cd1cdc98
Misc changes.
2023-03-12 03:37:57 +00:00
7fa982a16f
Fix bug in Uia
2023-03-12 03:36:40 +00:00
aba1ef9251
Add some more documentation.
2023-03-12 03:36:19 +00:00
b4a394c44b
Move send-patch and td to section one of the manual.
...
I think they fit there better.
2023-03-10 23:02:09 +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
3af2d3d12b
Format code, update TODO items.
2023-03-09 03:35:40 +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
c32c3abfd6
Update TODO
2023-03-09 00:10:32 +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
76413f834e
Make json use ^ for removing fields, instead of !
...
Room IDs start with '!', we want to be able to access these.
2023-03-08 22:47:07 +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
7e144ae488
Clean up a few bugs in HttpClient and Uri
2023-03-08 02:53:47 +00:00
3e42da279c
Make improvements to HttpClient, add Uri
2023-03-08 01:54:33 +00:00
313f0e2e73
Add HttpClient API
2023-03-07 23:10:06 +00:00
fc8fbc9a70
I forgot to set the date in the changelog.
2023-03-07 00:51:16 +00:00
7e41251f07
Update README
2023-03-07 00:50:59 +00:00
cfba96edee
Prepare for v0.2.0 release.
2023-03-07 00:44:53 +00:00
04bf8ca1a1
Document Uia API.
2023-03-07 00:28:52 +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
eae8fc5c79
Update Matrix documentation.
2023-03-06 22:49:21 +00:00