Commit 7f522ef83c335f26fa11bd9ba230822dd3aa8b93

ckolivas 2012-10-11T14:23:09

Add support for client.get_version for stratum.

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);