|
@@ -1298,22 +1298,24 @@ static void process_nonces(struct cgpu_info *bflsc, int dev, char *xlink, char *
|
|
|
free_work(work);
|
|
free_work(work);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-static int process_results(struct cgpu_info *bflsc, int dev, char *buf, int *nonces)
|
|
|
|
|
|
|
+static int process_results(struct cgpu_info *bflsc, int dev, char *pbuf, int *nonces)
|
|
|
{
|
|
{
|
|
|
struct bflsc_info *sc_info = (struct bflsc_info *)(bflsc->device_data);
|
|
struct bflsc_info *sc_info = (struct bflsc_info *)(bflsc->device_data);
|
|
|
char **items, *firstname, **fields, *lf;
|
|
char **items, *firstname, **fields, *lf;
|
|
|
int que = 0, i, lines, count;
|
|
int que = 0, i, lines, count;
|
|
|
|
|
+ char *tmp, *tmp2, *buf;
|
|
|
char xlink[17];
|
|
char xlink[17];
|
|
|
- char *tmp, *tmp2;
|
|
|
|
|
bool res;
|
|
bool res;
|
|
|
|
|
|
|
|
*nonces = 0;
|
|
*nonces = 0;
|
|
|
|
|
|
|
|
xlinkstr(xlink, sizeof(xlink), dev, sc_info);
|
|
xlinkstr(xlink, sizeof(xlink), dev, sc_info);
|
|
|
|
|
|
|
|
|
|
+ buf = strdup(pbuf);
|
|
|
res = tolines(bflsc, dev, buf, &lines, &items, C_GETRESULTS);
|
|
res = tolines(bflsc, dev, buf, &lines, &items, C_GETRESULTS);
|
|
|
|
|
+ free(buf);
|
|
|
if (!res || lines < 1) {
|
|
if (!res || lines < 1) {
|
|
|
- tmp = str_text(buf);
|
|
|
|
|
|
|
+ tmp = str_text(pbuf);
|
|
|
applog(LOG_ERR, "%s%i:%s empty result (%s) ignored",
|
|
applog(LOG_ERR, "%s%i:%s empty result (%s) ignored",
|
|
|
bflsc->drv->name, bflsc->device_id, xlink, tmp);
|
|
bflsc->drv->name, bflsc->device_id, xlink, tmp);
|
|
|
free(tmp);
|
|
free(tmp);
|
|
@@ -1321,7 +1323,7 @@ static int process_results(struct cgpu_info *bflsc, int dev, char *buf, int *non
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if (lines < QUE_RES_LINES_MIN) {
|
|
if (lines < QUE_RES_LINES_MIN) {
|
|
|
- tmp = str_text(buf);
|
|
|
|
|
|
|
+ tmp = str_text(pbuf);
|
|
|
applog(LOG_ERR, "%s%i:%s result too small (%s) ignored",
|
|
applog(LOG_ERR, "%s%i:%s result too small (%s) ignored",
|
|
|
bflsc->drv->name, bflsc->device_id, xlink, tmp);
|
|
bflsc->drv->name, bflsc->device_id, xlink, tmp);
|
|
|
free(tmp);
|
|
free(tmp);
|
|
@@ -1330,7 +1332,7 @@ static int process_results(struct cgpu_info *bflsc, int dev, char *buf, int *non
|
|
|
|
|
|
|
|
breakdown(ONECOLON, items[1], &count, &firstname, &fields, &lf);
|
|
breakdown(ONECOLON, items[1], &count, &firstname, &fields, &lf);
|
|
|
if (count < 1) {
|
|
if (count < 1) {
|
|
|
- tmp = str_text(buf);
|
|
|
|
|
|
|
+ tmp = str_text(pbuf);
|
|
|
tmp2 = str_text(items[1]);
|
|
tmp2 = str_text(items[1]);
|
|
|
applog(LOG_ERR, "%s%i:%s empty result count (%s) in (%s) ignoring",
|
|
applog(LOG_ERR, "%s%i:%s empty result count (%s) in (%s) ignoring",
|
|
|
bflsc->drv->name, bflsc->device_id, xlink, tmp2, tmp);
|
|
bflsc->drv->name, bflsc->device_id, xlink, tmp2, tmp);
|
|
@@ -1338,7 +1340,7 @@ static int process_results(struct cgpu_info *bflsc, int dev, char *buf, int *non
|
|
|
free(tmp);
|
|
free(tmp);
|
|
|
goto arigatou;
|
|
goto arigatou;
|
|
|
} else if (count != 1) {
|
|
} else if (count != 1) {
|
|
|
- tmp = str_text(buf);
|
|
|
|
|
|
|
+ tmp = str_text(pbuf);
|
|
|
tmp2 = str_text(items[1]);
|
|
tmp2 = str_text(items[1]);
|
|
|
applog(LOG_ERR, "%s%i:%s incorrect result count %d (%s) in (%s) will try anyway",
|
|
applog(LOG_ERR, "%s%i:%s incorrect result count %d (%s) in (%s) will try anyway",
|
|
|
bflsc->drv->name, bflsc->device_id, xlink, count, tmp2, tmp);
|
|
bflsc->drv->name, bflsc->device_id, xlink, count, tmp2, tmp);
|
|
@@ -1352,7 +1354,7 @@ static int process_results(struct cgpu_info *bflsc, int dev, char *buf, int *non
|
|
|
// 1+ In case the last line isn't 'OK' - try to process it
|
|
// 1+ In case the last line isn't 'OK' - try to process it
|
|
|
que = 1 + lines - QUE_RES_LINES_MIN;
|
|
que = 1 + lines - QUE_RES_LINES_MIN;
|
|
|
|
|
|
|
|
- tmp = str_text(buf);
|
|
|
|
|
|
|
+ tmp = str_text(pbuf);
|
|
|
tmp2 = str_text(items[0]);
|
|
tmp2 = str_text(items[0]);
|
|
|
applog(LOG_ERR, "%s%i:%s incorrect result count %d (%s) will try %d (%s)",
|
|
applog(LOG_ERR, "%s%i:%s incorrect result count %d (%s) will try %d (%s)",
|
|
|
bflsc->drv->name, bflsc->device_id, xlink, i, tmp2, que, tmp);
|
|
bflsc->drv->name, bflsc->device_id, xlink, i, tmp2, que, tmp);
|