From d8fcb22daf58a65c1e519d13cff7f372ef0313ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Janouch?= Date: Mon, 16 Apr 2018 15:53:30 +0200 Subject: [PATCH] Bump liberty, fix GNUC detection, update README --- CMakeLists.txt | 4 ++-- README.adoc | 2 ++ json-rpc-shell.c | 62 +++++++++++++++++------------------------------- liberty | 2 +- 4 files changed, 27 insertions(+), 43 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 465d8b4..172537d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,11 +6,11 @@ option (WANT_READLINE "Use GNU Readline for the UI (better)" ON) option (WANT_LIBEDIT "Use BSD libedit for the UI" OFF) # Moar warnings -if ("${CMAKE_C_COMPILER_ID}" MATCHES "GNU" OR CMAKE_COMPILER_IS_GNUC) +if ("${CMAKE_C_COMPILER_ID}" MATCHES "GNU" OR CMAKE_COMPILER_IS_GNUCC) # -Wunused-function is pretty annoying here, as everything is static set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -Wall -Wextra -Wno-unused-function") -endif ("${CMAKE_C_COMPILER_ID}" MATCHES "GNU" OR CMAKE_COMPILER_IS_GNUC) +endif ("${CMAKE_C_COMPILER_ID}" MATCHES "GNU" OR CMAKE_COMPILER_IS_GNUCC) # Version set (project_VERSION_MAJOR "0") diff --git a/README.adoc b/README.adoc index c18eb67..ca3e2ec 100644 --- a/README.adoc +++ b/README.adoc @@ -77,6 +77,8 @@ Use this project's GitHub to report any bugs, request features, or submit pull requests. If you want to discuss this project, or maybe just hang out with the developer, feel free to join me at irc://irc.janouch.name, channel #dev. +Bitcoin donations: 12r5uEWEgcHC46xd64tt3hHt9EUvYYDHe9 + License ------- 'json-rpc-shell' is written by PÅ™emysl Janouch . diff --git a/json-rpc-shell.c b/json-rpc-shell.c index af250b9..96ac55a 100644 --- a/json-rpc-shell.c +++ b/json-rpc-shell.c @@ -1029,9 +1029,7 @@ get_config_string (struct config_item *root, const char *key) static void save_configuration (struct config_item *root, const char *path_hint) { - struct str data; - str_init (&data); - + struct str data = str_make (); str_append (&data, "# " PROGRAM_NAME " " PROGRAM_VERSION " configuration file\n" "#\n" @@ -1780,8 +1778,7 @@ static bool backend_ws_send_message (struct ws_context *self, enum ws_opcode opcode, const void *data, size_t len) { - struct str header; - str_init (&header); + struct str header = str_make (); str_pack_u8 (&header, 0x80 | (opcode & 0x0F)); if (len > UINT16_MAX) @@ -1870,13 +1867,11 @@ static bool backend_ws_finish_closing_handshake (struct ws_context *self, const struct ws_parser *parser) { - struct str reason; - str_init (&reason); - + struct str reason = str_make (); if (parser->payload_len >= 2) { - struct msg_unpacker unpacker; - msg_unpacker_init (&unpacker, parser->input.str, parser->payload_len); + struct msg_unpacker unpacker = + msg_unpacker_make (parser->input.str, parser->payload_len); uint16_t status_code; msg_unpacker_u16 (&unpacker, &status_code); @@ -2004,8 +1999,7 @@ backend_ws_connect (struct ws_context *self, struct error **e) self->url.field_data[UF_PORT].len) : xstrdup (use_tls ? "443" : "80"); - struct str url_path; - str_init (&url_path); + struct str url_path = str_make (); if (self->url.field_set & (1 << UF_PATH)) str_append_data (&url_path, self->endpoint + self->url.field_data[UF_PATH].off, @@ -2035,16 +2029,13 @@ backend_ws_connect (struct ws_context *self, struct error **e) goto fail_2; } - struct str key_b64; - str_init (&key_b64); + struct str key_b64 = str_make (); base64_encode (key, sizeof key, &key_b64); free (self->key); char *key_b64_string = self->key = str_steal (&key_b64); - struct str request; - str_init (&request); - + struct str request = str_make (); str_append_printf (&request, "GET %s HTTP/1.1\r\n", url_path.str); // TODO: omit the port if it's the default (check RFC for "SHOULD" or ...) str_append_printf (&request, "Host: %s:%s\r\n", url_host, url_port); @@ -2070,7 +2061,7 @@ backend_ws_connect (struct ws_context *self, struct error **e) str_reset (&self->value); str_map_clear (&self->headers); ws_parser_free (&self->parser); - ws_parser_init (&self->parser); + self->parser = ws_parser_make (); self->parser.on_frame_header = backend_ws_on_frame_header; self->parser.on_frame = backend_ws_on_frame; self->parser.user_data = self; @@ -2215,14 +2206,13 @@ backend_ws_new (struct app_context *ctx, self->server_fd = -1; ev_io_init (&self->read_watcher, NULL, 0, 0); http_parser_init (&self->hp, HTTP_RESPONSE); - str_init (&self->field); - str_init (&self->value); - str_map_init (&self->headers); + self->field = str_make (); + self->value = str_make (); + self->headers = str_map_make (free); self->headers.key_xfrm = tolower_ascii_strxfrm; - self->headers.free = free; - ws_parser_init (&self->parser); - str_init (&self->message_data); - strv_init (&self->extra_headers); + self->parser = ws_parser_make (); + self->message_data = str_make (); + self->extra_headers = strv_make (); self->endpoint = xstrdup (endpoint); self->url = *url; @@ -2265,9 +2255,7 @@ validate_json_rpc_content_type (const char *content_type) char *type = NULL; char *subtype = NULL; - struct str_map parameters; - str_map_init (¶meters); - parameters.free = free; + struct str_map parameters = str_map_make (free); parameters.key_xfrm = tolower_ascii_strxfrm; bool result = http_parse_media_type @@ -2431,7 +2419,7 @@ jtokenizer_init (struct jtokenizer *self, const char *p, size_t len) { self->p = p; self->len = len; - str_init (&self->chunk); + self->chunk = str_make (); } static void @@ -2886,9 +2874,7 @@ make_json_rpc_call (struct app_context *ctx, free (req_term); } - struct str buf; - str_init (&buf); - + struct str buf = str_make (); struct error *e = NULL; if (!ctx->backend->vtable->make_call (ctx->backend, req_utf8, id != NULL, &buf, &e)) @@ -3046,8 +3032,7 @@ fail: static char * resolve_relative_runtime_unique_filename (const char *filename) { - struct str path; - str_init (&path); + struct str path = str_make (); const char *runtime_dir = getenv ("XDG_RUNTIME_DIR"); const char *tmpdir = getenv ("TMPDIR"); @@ -3177,9 +3162,7 @@ run_editor (const char *line, void *user_data) static void process_edited_input (struct app_context *ctx) { - struct str input; - str_init (&input); - + struct str input = str_make (); struct error *e = NULL; if (!read_file (ctx->editor_filename, &input, &e)) { @@ -3315,8 +3298,7 @@ parse_program_arguments (struct app_context *ctx, int argc, char **argv, { 0, NULL, NULL, 0, NULL } }; - struct opt_handler oh; - opt_handler_init (&oh, argc, argv, opts, + struct opt_handler oh = opt_handler_make (argc, argv, opts, "ENDPOINT", "Simple JSON-RPC shell."); int c; @@ -3378,7 +3360,7 @@ parse_program_arguments (struct app_context *ctx, int argc, char **argv, int main (int argc, char *argv[]) { - config_init (&g_ctx.config); + g_ctx.config = config_make (); register_config_modules (&g_ctx); config_load (&g_ctx.config, config_item_object ()); diff --git a/liberty b/liberty index 9afcb33..da75b6f 160000 --- a/liberty +++ b/liberty @@ -1 +1 @@ -Subproject commit 9afcb337ada91f87aa1a566ec3feba1a12bc9287 +Subproject commit da75b6f7356e9dc34dc4005ee993cee84c6bf5ba