Commit Graph

259 Commits

Author SHA1 Message Date
Přemysl Eric Janouch 742632a931
Bump http-parser
Apparently it's reached maturity and there won't be any changes
anytime soon, making this the perfect time for an upgrade.
2020-10-13 04:35:42 +02:00
Přemysl Eric Janouch 2221828763
OpenRPC: avoid eating HTTP/transport errors 2020-10-13 04:35:32 +02:00
Přemysl Eric Janouch c2a00511c0
Document OpenRPC tab completion support
Now that it's functional in both frontends, we can flaunt it.

I still don't want to make it the default.

Closes #1
2020-10-13 04:23:28 +02:00
Přemysl Eric Janouch 2b18ebf314
Implement tab completion under libedit
I haven't tested it with real wide characters but it will have to do.
I wasn't even sure if this piece of crap could be coerced into doing
this at first, so it's a win for me.

It uses a variation of the code in degesch where we /don't/ want to
print the list of candidates on partial failure.

Updates #1
2020-10-13 03:58:26 +02:00
Přemysl Eric Janouch 5d2cd01db0
json-rpc-test-server: fix a potential memory leak 2020-10-13 02:08:53 +02:00
Přemysl Eric Janouch ee79249d23
json-rpc-shell.adoc: update WebSocket notes
https://github.com/open-rpc/client-js also uses WebSockets,
although they don't seem to support notifications (in general).
2020-10-10 05:20:31 +02:00
Přemysl Eric Janouch 160d23018a
Bump liberty
resolve_relative_runtime_unique_filename() used to have a bug.
2020-10-10 05:09:11 +02:00
Přemysl Eric Janouch fed2892ee1
Readline: add trivial OpenRPC support
So far hidden under a switch and only for this frontend.
2020-10-10 05:09:10 +02:00
Přemysl Eric Janouch 667b01cb73
Reorder help message entries a bit
Should be both more useful and more alphabetic this way.
2020-10-10 02:57:14 +02:00
Přemysl Eric Janouch 20c8578084
Fix use of possibly uninitialised memory 2020-10-10 02:57:14 +02:00
Přemysl Eric Janouch 57a3b4e990
Split make_json_rpc_call() in half 2020-10-10 02:57:13 +02:00
Přemysl Eric Janouch e4d1529b4d
Slightly refactor make_json_rpc_call() 2020-10-10 02:57:13 +02:00
Přemysl Eric Janouch 897a263ee7
Readline: make M-Enter insert a newline
Before, it was only possible with C-v C-j but it's too useful
to require such an awkward method.

There is a precedent in, e.g., zsh and fish for the new binding.
2020-10-09 20:41:37 +02:00
Přemysl Eric Janouch 84702fa47d
Fix handling terminal resizes while the terminal is suspended
GNU Readline has a misfeature.
2020-10-09 20:21:52 +02:00
Přemysl Eric Janouch b315892249
Readline: fix a dormant bug in prompt changes
For details, see a similar change in degesch from uirc3.
2020-10-09 20:17:17 +02:00
Přemysl Eric Janouch 710f5f197f
Make a release, create NEWS 2020-09-05 20:42:02 +02:00
Přemysl Eric Janouch ba68585d14
Streamline the manual page a bit
I have consulted `man 7 man-pages` but overall it's a huge mess.
2020-09-05 06:34:00 +02:00
Přemysl Eric Janouch 984e5b4e7f
Use saner defaults
So that most of the time users won't need to use any switches.

--pretty-print has been inverted into jq's --compact-output,
and --auto-id has been replaced with barely, if-at-all useful
--null-as-id.
2020-09-05 06:07:45 +02:00
Přemysl Eric Janouch d57a8bd3c7
Improve AsciiDoc compatibility
I need two renderers to work: hswg/libasciidoc and asciidoctor
in man page mode (and ideally in HTML as well).  That should be
covered now.

The triple-plus thing was the first thing that showed good results,
after trying backslashes, single-plus quoting and [] after ://.

The change of the source code block kind could be considered as
unification.  I'm combining tabs with spaces within one document
though, and I should get rid of the tabs in the rest of it then...
2020-09-05 04:36:43 +02:00
Přemysl Eric Janouch 2962a644da
Write a nice new man page in AsciiDoc
Taking some preliminary steps for inclusion in Linux distributions.

The help message has been slightly improved and the README extended,
with part of it now residing in the man page.

One less GNU dependency, for what it's worth.
2020-09-05 03:51:36 +02:00
Přemysl Eric Janouch 6f5ef30293
Move "connecting..." messages to the debug mode
So that the --verbose option does only one thing.
2020-09-05 03:50:14 +02:00
Přemysl Eric Janouch b7b1198be7
Fix libedit a bit more and discourage from using it 2020-09-02 01:08:09 +02:00
Přemysl Eric Janouch 633f7007d1
json-rpc-test-server: add a "date" method 2020-09-01 23:41:20 +02:00
Přemysl Eric Janouch f4d178b3f6
Update copyright years 2020-09-01 21:03:53 +02:00
Přemysl Eric Janouch ee5317f865
json-rpc-test-server: reject non-null params in "ping" 2020-09-01 20:56:03 +02:00
Přemysl Eric Janouch 20558ecd2b
json-rpc-test-server: make sure to set the id in responses 2020-09-01 20:55:22 +02:00
Přemysl Eric Janouch f6225ac6cc
Warn on unexpected "id" fields 2020-09-01 20:54:23 +02:00
Přemysl Eric Janouch 16ec8261dc
Make the verbose mode also show the raw input
To make it more useful for debugging.  We might also tie this
to the --debug option, though that would be a bit chaotic.
2020-09-01 20:37:08 +02:00
Přemysl Eric Janouch e49ff84b74
Strip trailing newlines from editor output 2020-09-01 19:26:37 +02:00
Přemysl Eric Janouch b7c9bfd9f5
Fix libedit crash
Again, I have no idea why it started to happen, it just occured
to me to try to change the call, and it turns out out it works.
2020-09-01 19:02:41 +02:00
Přemysl Eric Janouch f6165164ee
Fix prompt attributes under libedit
I can only guess why this works, and I'm not sure I want to /know/.
2020-09-01 19:02:41 +02:00
Přemysl Eric Janouch 3a445c2db2
Name change 2020-09-01 19:02:41 +02:00
Přemysl Eric Janouch 45d023147a
Bump liberty 2020-09-01 19:02:40 +02:00
Přemysl Eric Janouch 90b5364b29
Fix running helper programs
A bug was introduced in 5c38087.
2019-09-23 23:07:04 +02:00
Přemysl Eric Janouch 1840ac795e
json-rpc-test-server: fix some outstanding issues 2018-10-19 01:15:12 +02:00
Přemysl Eric Janouch df38bcf775
Merge in a JSON-RPC 2.0 test server 2018-10-18 07:49:36 +02:00
Přemysl Eric Janouch 1c52f9e37e
demo-json-rpc-server -> json-rpc-test-server 2018-10-18 07:27:55 +02:00
Přemysl Eric Janouch 6e152ae37c
More debugging information for static file serving 2018-10-18 07:17:06 +02:00
Přemysl Eric Janouch 8d66435568
Remember to set the server context in SCGI requests 2018-10-18 06:41:12 +02:00
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