Commit Graph

62 Commits

Author SHA1 Message Date
Přemysl Eric Janouch d883f4cc71
Finish the FastCGI backend
Bump liberty, also fixing SCGI.
2018-10-18 06:35:29 +02:00
Přemysl Eric Janouch 62945cceb3
Finish the WebSocket backend
Of course, everything so far hasn't been tested much.
2018-10-18 04:44:40 +02:00
Přemysl Eric Janouch 580f0a0c59
Synthesize EOF events in SCGI 2018-10-18 04:44:39 +02:00
Přemysl Eric Janouch 253e35e1e4
Wrap request::write_cb in a function 2018-10-17 23:34:59 +02:00
Přemysl Eric Janouch cf56921c4e
Allow WebSockets to micromanage shutdowns
They have their reasons, mostly event-related.
2018-10-17 23:26:54 +02:00
Přemysl Eric Janouch a3ec0942f8
Implement basic connection teardown
I finally understand the codebase again.  It's rather complicated.
2018-10-17 22:59:40 +02:00
Přemysl Eric Janouch efd500ca3c
Accelerated daemon quitting 2018-10-17 06:08:11 +02:00
Přemysl Eric Janouch 13892fcd0e
Clean up client de/allocation 2018-10-17 05:16:17 +02:00
Přemysl Eric Janouch 1d638c9170
Say "finalize" instead of "destroy" where appropriate
- _make() returns a struct directly
 - _init() initializes over a pointer
 - _free() deinitializes over a pointer
 - _new() is like _init() but also allocates
 - _destroy() is like _free() but also deallocates

Finalization is a matching concept in garbage-collected languages.
2018-10-17 03:53:07 +02:00
Přemysl Eric Janouch 83363e6383
FastCGI: make it work at least in theory 2018-10-17 03:50:39 +02:00
Přemysl Eric Janouch 272145ace2
Clarify EOF behaviour 2018-10-17 02:21:19 +02:00
Přemysl Eric Janouch 4c54bc42b9
Clean up and better document client_vtable 2018-10-16 04:45:36 +02:00
Přemysl Eric Janouch 7d922352ea
Rename client_vtable::destroy to finalize
Matches a similar concept from garbage-collected languages.
2018-10-16 04:34:00 +02:00
Přemysl Eric Janouch 7f6db9d39f
Improve WebSocket shutdown 2018-10-16 04:33:59 +02:00
Přemysl Eric Janouch 7cefdd496f
Cleanup 2018-10-16 04:05:42 +02:00
Přemysl Eric Janouch e9530f450e
Call ws_handler_start() 2018-10-16 01:47:51 +02:00
Přemysl Eric Janouch dda22c2cd5
Eliminate unnecessary user_data pointers
The CONTAINER_OF macro can find the parent structure just as well.
2018-10-16 01:47:50 +02:00
Přemysl Eric Janouch 7aff9c3475
Improve documentation 2018-10-16 01:47:50 +02:00
Přemysl Eric Janouch a14edb72e9
Make Doxygen a bit more useful 2018-10-15 05:07:57 +02:00
Přemysl Eric Janouch 267a9a561b
Eliminate some warnings 2018-10-15 03:28:09 +02:00
Přemysl Eric Janouch 441c89f654
Handle FastCGI null request IDs better 2018-10-15 03:04:39 +02:00
Přemysl Eric Janouch 14ded260a0
Clarify and degrade FastCGI multiplexing
No need to support more than 255 concurrent requests on one connection.
2018-10-15 03:02:49 +02:00
Přemysl Eric Janouch 8b334e9c91
Fix fcgi_muxer_send()
Outgoing records were missing padding and the reserved field.
2018-10-13 04:08:43 +02:00
Přemysl Eric Janouch fd17b4e504
Update code comments 2018-10-13 04:07:45 +02:00
Přemysl Eric Janouch d182bcef3b
More transient errors 2018-10-12 20:02:42 +02:00
Přemysl Eric Janouch 711d73f481
Fix text message UTF-8 validation 2018-06-24 06:12:16 +02:00
Přemysl Eric Janouch df340c13ed
Add the missing Date header 2018-06-24 06:12:16 +02:00
Přemysl Eric Janouch 131debe985
Bump liberty 2018-06-24 06:12:16 +02:00
Přemysl Eric Janouch 4078c8845c
Relicense to 0BSD, update mail address
I've come to the conclusion that copyright mostly just stands in the way
of software development.  In my jurisdiction I cannot give up my own
copyright and 0BSD seems to be the closest thing to public domain.

The updated mail address, also used in my author/committer lines,
is shorter and looks nicer.  People rarely interact anyway.
2018-06-24 00:21:10 +02:00
Přemysl Eric Janouch ca90e9df83
Fix teardown 2017-06-20 14:01:23 +02:00
Přemysl Eric Janouch b85d1d74a4
Don't respond to notifications 2017-02-06 20:48:14 +01:00
Přemysl Eric Janouch e6f9e53229
Fix segfault in WebSocket parsing 2017-02-06 18:51:52 +01:00
Přemysl Eric Janouch 2986f6cda0
Fix segfault on client destruction etc. 2017-02-06 18:30:02 +01:00
Přemysl Eric Janouch c4ebf2ccd5
Fix segfault on missing Sec-WebSocket-Key 2017-02-06 18:28:53 +01:00
Přemysl Eric Janouch a785dc9670
WebSocket: fix header parsing 2017-02-06 18:28:40 +01:00
Přemysl Eric Janouch 2b7d455471
Fix quitting 2017-02-06 17:18:24 +01:00
Přemysl Eric Janouch 0ec0685714
Bump liberty 2017-02-05 22:44:01 +01:00
Přemysl Eric Janouch 733451cf2a
Fix and update LICENSE 2017-02-03 22:43:09 +01:00
Přemysl Eric Janouch 8b66a3f074 Bump liberty 2016-01-17 04:48:17 +01:00
Přemysl Eric Janouch f273151447 Overall revision after a year
Use something closer to inheritance for clients
2016-01-17 04:48:00 +01:00
Přemysl Eric Janouch a95867dbee Fix daemonization 2016-01-16 22:33:57 +01:00
Přemysl Eric Janouch 5298d802bb Fix compiler warning 2016-01-16 22:16:01 +01:00
Přemysl Eric Janouch af3cb3aaba Bump liberty 2016-01-16 06:41:31 +01:00
Přemysl Eric Janouch 6785d3a9ed Implement shutdown 2015-04-10 02:44:13 +02:00
Přemysl Eric Janouch 4dbdc849d9 Steady progress
On the WebSocket service.

It's not too far from being finished now.  I just have to make some
sense of the code again and make sure it's correct.

Now that json-rpc-shell should be able to run against this, I can
also finally test if both of them work as they should.
2015-04-10 01:42:41 +02:00
Přemysl Eric Janouch db6dff4216 Move a lot of stuff to liberty 2015-03-29 03:14:20 +02:00
Přemysl Eric Janouch 8aa232d32e Add and fix some preliminary tests 2015-03-23 20:12:53 +01:00
Přemysl Eric Janouch 6e9109df4c Don't allow whitespace in base64 2015-03-23 20:12:02 +01:00
Přemysl Eric Janouch 987eae5661 Steady progress
Renamed some constants, added basic UTF-8 validation.
2015-03-23 16:47:21 +01:00
Přemysl Eric Janouch 9b7dd630e3 WebSockets improvements
- validate more HTTP stuff, use the newer RFC
 - validate the base64 key
2015-03-22 22:35:58 +01:00