diff --git a/pool/page_pplns2.php b/pool/page_pplns2.php
index 398dfa81..3f0d77ed 100644
--- a/pool/page_pplns2.php
+++ b/pool/page_pplns2.php
@@ -40,6 +40,15 @@ function calctx($ans, $count, $miner_sat, $diffacc_total)
$diffacc_user = $ans['diffacc:'.$i];
$pay_sat = $ans['amount:'.$i];
$payaddress = $ans['payaddress:'.$i];
+ if ($payaddress == 'hold')
+ {
+ $dd = '';
+ if ($pay_sat > 0 && $pay_sat < $dust)
+ $dd = ' (dust)';
+ $ers .= "Hold for '$username'$dd ($pay_sat)
";
+ $unpaid += $pay_sat;
+ continue;
+ }
if ($payaddress == 'none')
{
$c0 = substr($username, 0, 1);
@@ -54,7 +63,7 @@ function calctx($ans, $count, $miner_sat, $diffacc_total)
$dd = '';
if ($pay_sat < $dust)
$dd = ' (dust)';
- $ers .= "No address for '$username'$dd
";
+ $ers .= "No address for '$username'$dd ($pay_sat)
";
}
$unpaid += $pay_sat;
continue;
diff --git a/src/ckdb.h b/src/ckdb.h
index dd30fc1d..3b5c9711 100644
--- a/src/ckdb.h
+++ b/src/ckdb.h
@@ -51,7 +51,7 @@
#define DB_VLOCK "1"
#define DB_VERSION "1.0.5"
-#define CKDB_VERSION DB_VERSION"-1.982"
+#define CKDB_VERSION DB_VERSION"-1.983"
#define WHERE_FFL " - from %s %s() line %d"
#define WHERE_FFL_HERE __FILE__, __func__, __LINE__
@@ -1975,6 +1975,11 @@ extern K_LIST *process_pplns_free;
#define PAYOUTS_REJECT_STR "R"
#define PAYREJECT(_status) ((_status)[0] == PAYOUTS_REJECT)
+// UserAtts to hold payouts
+#define HOLD_PAYOUTS "HoldPayouts"
+#define HOLD_ADDRESS "hold"
+#define NONE_ADDRESS "none"
+
// Default number of shifts (payouts) to display on web
#define SHIFTS_DEFAULT 99
/* OptionControl can override it
diff --git a/src/ckdb_cmd.c b/src/ckdb_cmd.c
index 9cf3d9a6..6b41ae28 100644
--- a/src/ckdb_cmd.c
+++ b/src/ckdb_cmd.c
@@ -4761,7 +4761,7 @@ static char *cmd_pplns2(__maybe_unused PGconn *conn, char *cmd, char *id,
char *block_extra, *marks_status = EMPTY;
size_t siz = sizeof(reply);
K_ITEM *i_height;
- K_ITEM b_look, *b_item, *p_item, *mp_item, *pay_item, *u_item;
+ K_ITEM b_look, *b_item, *p_item, *mp_item, *pay_item, *u_item, *ua_item;
K_ITEM *w_item;
MININGPAYOUTS *miningpayouts;
PAYMENTS *payments;
@@ -4920,6 +4920,9 @@ static char *cmd_pplns2(__maybe_unused PGconn *conn, char *cmd, char *id,
goto shazbot;
}
DATA_USERS(users, u_item);
+ K_RLOCK(useratts_free);
+ ua_item = find_useratts(miningpayouts->userid, HOLD_PAYOUTS);
+ K_RUNLOCK(useratts_free);
K_RLOCK(payments_free);
pay_item = find_first_paypayid(miningpayouts->userid,
@@ -4936,7 +4939,8 @@ static char *cmd_pplns2(__maybe_unused PGconn *conn, char *cmd, char *id,
"amount:%d=%"PRId64"%c"
"diffacc:%d=%.1f%c",
rows, payments->subname, FLDSEP,
- rows, payments->payaddress, FLDSEP,
+ rows, ua_item ? HOLD_ADDRESS :
+ payments->payaddress, FLDSEP,
rows, payments->amount, FLDSEP,
rows, payments->diffacc, FLDSEP);
APPEND_REALLOC(buf, off, len, tmp);
@@ -4954,7 +4958,7 @@ static char *cmd_pplns2(__maybe_unused PGconn *conn, char *cmd, char *id,
"amount:%d=%"PRId64"%c"
"diffacc:%d=%.1f%c",
rows, users->username, FLDSEP,
- rows, "none", FLDSEP,
+ rows, NONE_ADDRESS, FLDSEP,
rows, miningpayouts->amount, FLDSEP,
rows, miningpayouts->diffacc, FLDSEP);
APPEND_REALLOC(buf, off, len, tmp);