aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPřemysl Eric Janouch <p@janouch.name>2022-09-04 15:21:14 +0200
committerPřemysl Eric Janouch <p@janouch.name>2022-09-04 15:25:27 +0200
commitba5a6374b691911e630351b50f3df739b159784d (patch)
tree600895a388c354401fa5481776d79729397a7b6b
parent67008963cf4bdb37e5530d77f46a03d6cf93183d (diff)
downloadjson-rpc-shell-ba5a6374b691911e630351b50f3df739b159784d.tar.gz
json-rpc-shell-ba5a6374b691911e630351b50f3df739b159784d.tar.xz
json-rpc-shell-ba5a6374b691911e630351b50f3df739b159784d.zip
json-rpc-test-server: add a "wait" method
Considering the server's nature, the global lock-up it causes shouldn't constitute a major problem.
-rw-r--r--json-rpc-test-server.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/json-rpc-test-server.c b/json-rpc-test-server.c
index 801fb88..99842f5 100644
--- a/json-rpc-test-server.c
+++ b/json-rpc-test-server.c
@@ -1,7 +1,7 @@
/*
* json-rpc-test-server.c: JSON-RPC 2.0 demo server
*
- * Copyright (c) 2015 - 2020, Přemysl Eric Janouch <p@janouch.name>
+ * Copyright (c) 2015 - 2022, Přemysl Eric Janouch <p@janouch.name>
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted.
@@ -1464,7 +1464,7 @@ json_rpc_discover (struct server_context *ctx, json_t *params)
json_t *info = json_pack ("{ssss}",
"title", PROGRAM_NAME, "version", PROGRAM_VERSION);
- json_t *methods = json_pack ("[ooo]",
+ json_t *methods = json_pack ("[oooo]",
open_rpc_describe ("date", json_pack ("{ssso}", "type", "object",
"properties", json_pack ("{s{ss}s{ss}s{ss}s{ss}s{ss}s{ss}}",
"year", "type", "number",
@@ -1475,7 +1475,8 @@ json_rpc_discover (struct server_context *ctx, json_t *params)
"seconds", "type", "number"))),
open_rpc_describe ("ping", json_pack ("{ss}", "type", "string")),
open_rpc_describe ("rpc.discover", json_pack ("{ss}", "$ref",
- "https://github.com/open-rpc/meta-schema/raw/master/schema.json")));
+ "https://github.com/open-rpc/meta-schema/raw/master/schema.json")),
+ open_rpc_describe ("wait", json_pack ("{ss}", "type", "null")));
return json_rpc_response (NULL, json_pack ("{sssoso}",
"openrpc", "1.2.6", "info", info, "methods", methods), NULL);
}
@@ -1493,6 +1494,16 @@ json_rpc_ping (struct server_context *ctx, json_t *params)
}
static json_t *
+json_rpc_wait (struct server_context *ctx, json_t *params)
+{
+ (void) ctx;
+ (void) params;
+
+ sleep (1);
+ return json_rpc_response (NULL, json_null (), NULL);
+}
+
+static json_t *
json_rpc_date (struct server_context *ctx, json_t *params)
{
(void) ctx;
@@ -1524,6 +1535,7 @@ process_json_rpc_request (struct server_context *ctx, json_t *request)
{ "date", json_rpc_date },
{ "ping", json_rpc_ping },
{ "rpc.discover", json_rpc_discover },
+ { "wait", json_rpc_wait },
};
if (!json_is_object (request))