Browse Source

Remove the method from the command we send to ckdb and put it at the beginning of the message

master
Con Kolivas 11 years ago
parent
commit
91e2b3c942
  1. 2
      src/ckpool.c
  2. 32
      src/stratifier.c

2
src/ckpool.c

@ -335,7 +335,7 @@ char *_json_ckdb_call(const ckpool_t *ckp, const char *idmsg, json_t *val, bool
LOGWARNING("Json dump failed in json_ckdb_call from %s %s:%d", file, func, line);
return buf;
}
ASPRINTF(&msg, "id.%s.json=%s", idmsg, dump);
ASPRINTF(&msg, "%s.id.json=%s", idmsg, dump);
if (!logged) {
char logname[512];

32
src/stratifier.c

@ -278,13 +278,19 @@ static share_t *shares;
static cklock_t share_lock;
#define ID_AUTH 0
#define ID_SHARELOG 1
#define ID_STATS 2
#define ID_WORKINFO 1
#define ID_SHARES 2
#define ID_SHAREERR 3
#define ID_POOLSTATS 4
#define ID_USERSTATS 5
static const char *ckdb_ids[] = {
"authorise",
"sharelog",
"stats"
"workinfo",
"shares",
"shareerror",
"poolstats",
"userstats"
};
static void generate_coinbase(ckpool_t *ckp, workbase_t *wb)
@ -434,8 +440,7 @@ static void send_workinfo(ckpool_t *ckp, workbase_t *wb)
sprintf(cdfield, "%lu,%lu", wb->gentime.tv_sec, wb->gentime.tv_nsec);
val = json_pack("{ss,sI,ss,ss,ss,ss,ss,ss,ss,ss,sI,so,ss,ss,ss,ss}",
"method", "workinfo",
val = json_pack("{sI,ss,ss,ss,ss,ss,ss,ss,ss,sI,so,ss,ss,ss,ss}",
"workinfoid", wb->id,
"poolinstance", ckp->name,
"transactiontree", wb->txn_hashes,
@ -451,7 +456,7 @@ static void send_workinfo(ckpool_t *ckp, workbase_t *wb)
"createby", "code",
"createcode", __func__,
"createinet", "127.0.0.1");
ckdbq_add(ID_SHARELOG, val);
ckdbq_add(ID_WORKINFO, val);
}
static void add_base(ckpool_t *ckp, workbase_t *wb, bool *new_block)
@ -1160,8 +1165,7 @@ static bool send_recv_auth(stratum_instance_t *client)
ts_realtime(&now);
sprintf(cdfield, "%lu,%lu", now.tv_sec, now.tv_nsec);
val = json_pack("{ss,ss,ss,ss,si,ss,ss,ss,ss}",
"method", "authorise",
val = json_pack("{ss,ss,ss,si,ss,ss,ss,ss}",
"username", client->user_instance->username,
"workername", client->workername,
"useragent", client->useragent,
@ -1683,7 +1687,6 @@ out_unlock:
/* Now write to the pool's sharelog, adding workername to json */
sprintf(fname, "%s.sharelog", logdir);
json_set_string(val, "method", "shares");
json_set_string(val, "workername", client->workername);
json_set_string(val, "username", client->user_instance->username);
fp = fopen(fname, "a");
@ -1697,11 +1700,10 @@ out_unlock:
LOGERR("Failed to fwrite to %s", fname);
} else
LOGERR("Failed to fopen %s", fname);
ckdbq_add(ID_SHARELOG, val);
ckdbq_add(ID_SHARES, val);
out:
if (!share) {
val = json_pack("{ss,si,ss,ss,sI,ss,ss,so,si,ss,ss,ss,ss}",
"method", "shareerror",
val = json_pack("{si,ss,ss,sI,ss,ss,so,si,ss,ss,ss,ss}",
"clientid", client->id,
"secondaryuserid", client->secondaryuserid,
"enonce1", client->enonce1,
@ -1714,7 +1716,7 @@ out:
"createby", "code",
"createcode", __func__,
"createinet", "127.0.0.1");
ckdbq_add(ID_SHARELOG, val);
ckdbq_add(ID_SHAREERR, val);
LOGINFO("Invalid share from client %d: %s", client->id, client->workername);
}
return json_boolean(result);
@ -2305,7 +2307,7 @@ static void *statsupdate(void *arg)
"createby", "code",
"createcode", __func__,
"createinet", "127.0.0.1");
ckdbq_add(ID_STATS, val);
ckdbq_add(ID_POOLSTATS, val);
/* Update stats 4 times per minute for smooth values, displaying
* status every minute. */

Loading…
Cancel
Save