Add support for client.get_version for stratum.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
diff --git a/util.c b/util.c
index 316410d..91a6718 100644
--- a/util.c
+++ b/util.c
@@ -1125,6 +1125,21 @@ static bool parse_reconnect(struct pool *pool, json_t *val)
return true;
}
+static bool send_version(struct pool *pool, json_t *val)
+{
+ char s[RBUFSIZE];
+ int id = json_integer_value(json_object_get(val, "id"));
+
+ if (!id)
+ return false;
+
+ sprintf(s, "{\"id\": %d, \"result\": \""PACKAGE"/"VERSION"\", \"error\": null}", id);
+ if (!stratum_send(pool, s, strlen(s)))
+ return false;
+
+ return true;
+}
+
bool parse_method(struct pool *pool, char *s)
{
json_t *val = NULL, *method, *err_val, *params;
@@ -1181,6 +1196,10 @@ bool parse_method(struct pool *pool, char *s)
goto out;
}
+ if (!strncasecmp(buf, "client.get_version", 18) && send_version(pool, val)) {
+ ret = true;
+ goto out;
+ }
out:
if (val)
json_decref(val);