Browse Source

Parse the send_version request an return package/version

master
Con Kolivas 11 years ago
parent
commit
a11d64f120
  1. 23
      src/generator.c

23
src/generator.c

@ -218,6 +218,7 @@ static bool send_json_msg(connsock_t *cs, json_t *json_msg)
char *s; char *s;
s = json_dumps(json_msg, JSON_ESCAPE_SLASH); s = json_dumps(json_msg, JSON_ESCAPE_SLASH);
LOGDEBUG("Sending json msg: %s", s);
realloc_strcat(&s, "\n"); realloc_strcat(&s, "\n");
len = strlen(s); len = strlen(s);
sent = write_socket(cs->fd, s, len); sent = write_socket(cs->fd, s, len);
@ -406,13 +407,13 @@ retry:
req = json_pack("{s:i,s:s,s:[s,s]}", req = json_pack("{s:i,s:s,s:[s,s]}",
"id", proxi->id++, "id", proxi->id++,
"method", "mining.subscribe", "method", "mining.subscribe",
"params", "ckproxy", proxi->sessionid); "params", PACKAGE"/"VERSION, proxi->sessionid);
/* Then attempt to connect with just the client description */ /* Then attempt to connect with just the client description */
} else if (!proxi->no_params) { } else if (!proxi->no_params) {
req = json_pack("{s:i,s:s,s:[s]}", req = json_pack("{s:i,s:s,s:[s]}",
"id", proxi->id++, "id", proxi->id++,
"method", "mining.subscribe", "method", "mining.subscribe",
"params", "ckproxy"); "params", PACKAGE"/"VERSION);
/* Then try without any parameters */ /* Then try without any parameters */
} else { } else {
req = json_pack("{s:i,s:s,s:[]}", req = json_pack("{s:i,s:s,s:[]}",
@ -456,7 +457,6 @@ out:
} }
#define parse_reconnect(a, b) true #define parse_reconnect(a, b) true
#define send_version(a, b) true
#define show_message(a, b) true #define show_message(a, b) true
static bool parse_notify(proxy_instance_t *proxi, json_t *val) static bool parse_notify(proxy_instance_t *proxi, json_t *val)
@ -541,6 +541,19 @@ static bool parse_diff(proxy_instance_t *proxi, json_t *val)
return true; return true;
} }
static bool send_version(proxy_instance_t *proxi, json_t *val)
{
json_t *json_msg, *id_val = json_object_get(val, "id");
connsock_t *cs = proxi->cs;
bool ret;
json_msg = json_pack("{sossso}", "id", id_val, "result", PACKAGE"/"VERSION,
"error", json_null());
ret = send_json_msg(cs, json_msg);
json_decref(json_msg);
return ret;
}
static bool parse_method(proxy_instance_t *proxi, const char *msg) static bool parse_method(proxy_instance_t *proxi, const char *msg)
{ {
json_t *val = NULL, *method, *err_val, *params; json_t *val = NULL, *method, *err_val, *params;
@ -736,7 +749,7 @@ static void submit_share(proxy_instance_t *proxi, json_t *val)
mutex_unlock(&proxi->psend_lock); mutex_unlock(&proxi->psend_lock);
} }
static int proxy_loop(proc_instance_t *pi, connsock_t *cs, proxy_instance_t *proxi) static int proxy_loop(proc_instance_t *pi, proxy_instance_t *proxi)
{ {
unixsock_t *us = &pi->us; unixsock_t *us = &pi->us;
ckpool_t *ckp = pi->ckp; ckpool_t *ckp = pi->ckp;
@ -958,7 +971,7 @@ static int proxy_mode(ckpool_t *ckp, proc_instance_t *pi, connsock_t *cs,
cond_init(&proxi.psend_cond); cond_init(&proxi.psend_cond);
create_pthread(&proxi.pth_psend, proxy_send, &proxi); create_pthread(&proxi.pth_psend, proxy_send, &proxi);
ret = proxy_loop(pi, cs, &proxi); ret = proxy_loop(pi, &proxi);
/* Return from the proxy loop means we have received a shutdown /* Return from the proxy loop means we have received a shutdown
* request */ * request */

Loading…
Cancel
Save