Commit Graph

219 Commits

Author SHA1 Message Date
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 329fc9b88f
Bump liberty
Eliminates some fall-through warnings.
2018-10-11 21:03:34 +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 8e986a6040
Remove .travis.yml
We don't depend on any proprietary services no longer.  I'll have to
make my own replacements with blackjack and hookers.  Until then,
the file stays in the commit log as an example.
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 2a071d319b
Remove .travis.yml
We don't depend on any proprietary services no longer.  I'll have to
make my own replacements with blackjack and hookers.  Until then,
the file stays in the commit log as an example.
2018-06-24 05:50:29 +02:00
Přemysl Eric Janouch dc7438447e
Update README 2018-06-24 04:17:04 +02:00
Přemysl Eric Janouch 7c978fe50f
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 04:16:27 +02:00
Přemysl Eric Janouch 54e4bf6bd1
Bump liberty 2018-06-24 04:16:05 +02:00
Přemysl Eric Janouch b312c022ae
Update README 2018-06-24 00:42:59 +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 333efdc70f
CMakeLists.txt: fix variable name 2018-06-24 00:15:53 +02:00
Přemysl Eric Janouch 8d40122372
Display unexpected messages, too 2018-05-11 23:40:26 +02:00
Přemysl Eric Janouch 19e10aaf3e
Fix UTF-8 validation 2018-05-11 22:34:19 +02:00
Přemysl Eric Janouch 2e1127e371
Fix sent close code when failing the connection 2018-05-11 22:34:06 +02:00
Přemysl Eric Janouch 5c380878d5
Better fix for EOF handling with WebSockets
Used to spin.
2018-04-16 22:26:18 +02:00
Přemysl Eric Janouch 3002fb32b0
Fix EOF handling with WebSockets 2018-04-16 16:26:00 +02:00
Přemysl Eric Janouch d8fcb22daf
Bump liberty, fix GNUC detection, update README 2018-04-16 16:25:44 +02:00
Přemysl Eric Janouch 5e88608286
Bump liberty and http-parser 2017-06-20 14:04:40 +02:00
Přemysl Eric Janouch ca90e9df83
Fix teardown 2017-06-20 14:01:23 +02:00
Přemysl Eric Janouch 419147beec
Update README 2017-06-20 14:01:10 +02:00
Přemysl Eric Janouch 989825f7eb
Cleanup 2017-02-07 03:28:15 +01:00
Přemysl Eric Janouch c03af00e30
WebSockets are no longer experimental
Now that I've made it work at all, at least in some cases.
2017-02-06 21:28:40 +01:00
Přemysl Eric Janouch 9531f2b518
WebSocket: fix connection timeout 2017-02-06 21:28:40 +01:00
Přemysl Eric Janouch 06e066a491
WebSocket: avoid closing an invalid FD 2017-02-06 21:12:12 +01:00
Přemysl Eric Janouch 1be02128e3
WebSocket: fix reconnection 2017-02-06 21:11:17 +01:00