mirror of
https://github.com/aljazceru/lightning.git
synced 2025-12-22 08:34:20 +01:00
df: move callback up
We're going to call it from the deserialization method here soon
This commit is contained in:
committed by
Christian Decker
parent
99a621dd99
commit
857ff561bc
@@ -354,6 +354,57 @@ static void openchannel2_remove_dualopend(struct subd *dualopend,
|
|||||||
payload->dualopend = NULL;
|
payload->dualopend = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
openchannel2_hook_cb(struct openchannel2_payload *payload STEALS)
|
||||||
|
{
|
||||||
|
struct subd *dualopend = payload->dualopend;
|
||||||
|
u8 *msg;
|
||||||
|
|
||||||
|
/* Free payload regardless of what happens next */
|
||||||
|
tal_steal(tmpctx, payload);
|
||||||
|
|
||||||
|
/* If our daemon died, we're done */
|
||||||
|
if (!dualopend)
|
||||||
|
return;
|
||||||
|
|
||||||
|
tal_del_destructor2(dualopend, openchannel2_remove_dualopend, payload);
|
||||||
|
|
||||||
|
/* If there's no plugin, the funding_feerate_per_kw will be zero.
|
||||||
|
* In this case, we set the funding_feerate_per_kw to the default,
|
||||||
|
* the 'best' */
|
||||||
|
if (payload->funding_feerate_per_kw == 0) {
|
||||||
|
u32 best_feerate
|
||||||
|
= payload->funding_feerate_per_kw
|
||||||
|
= payload->funding_feerate_best;
|
||||||
|
|
||||||
|
/* We use the old checks here now, against the base feerate */
|
||||||
|
if (best_feerate < payload->feerate_our_min) {
|
||||||
|
msg = towire_dualopend_fail(NULL, tal_fmt(tmpctx,
|
||||||
|
"feerate_per_kw %u below"
|
||||||
|
" minimum %u",
|
||||||
|
best_feerate,
|
||||||
|
payload->feerate_our_min));
|
||||||
|
return subd_send_msg(dualopend, take(msg));
|
||||||
|
}
|
||||||
|
if (best_feerate > payload->feerate_our_max) {
|
||||||
|
msg = towire_dualopend_fail(NULL, tal_fmt(tmpctx,
|
||||||
|
"feerate_per_kw %u above"
|
||||||
|
" maximum %u",
|
||||||
|
best_feerate,
|
||||||
|
payload->feerate_our_max));
|
||||||
|
return subd_send_msg(dualopend, take(msg));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
msg = towire_dualopend_got_offer_reply(NULL, payload->accepter_funding,
|
||||||
|
payload->funding_feerate_per_kw,
|
||||||
|
payload->psbt,
|
||||||
|
payload->our_shutdown_scriptpubkey);
|
||||||
|
|
||||||
|
subd_send_msg(dualopend, take(msg));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
openchannel2_hook_deserialize(struct openchannel2_payload *payload,
|
openchannel2_hook_deserialize(struct openchannel2_payload *payload,
|
||||||
const char *buffer,
|
const char *buffer,
|
||||||
@@ -416,56 +467,6 @@ openchannel2_hook_deserialize(struct openchannel2_payload *payload,
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
openchannel2_hook_cb(struct openchannel2_payload *payload STEALS)
|
|
||||||
{
|
|
||||||
struct subd *dualopend = payload->dualopend;
|
|
||||||
u8 *msg;
|
|
||||||
|
|
||||||
/* Free payload regardless of what happens next */
|
|
||||||
tal_steal(tmpctx, payload);
|
|
||||||
|
|
||||||
/* If our daemon died, we're done */
|
|
||||||
if (!dualopend)
|
|
||||||
return;
|
|
||||||
|
|
||||||
tal_del_destructor2(dualopend, openchannel2_remove_dualopend, payload);
|
|
||||||
|
|
||||||
/* If there's no plugin, the funding_feerate_per_kw will be zero.
|
|
||||||
* In this case, we set the funding_feerate_per_kw to the default,
|
|
||||||
* the 'best' */
|
|
||||||
if (payload->funding_feerate_per_kw == 0) {
|
|
||||||
u32 best_feerate
|
|
||||||
= payload->funding_feerate_per_kw
|
|
||||||
= payload->funding_feerate_best;
|
|
||||||
|
|
||||||
/* We use the old checks here now, against the base feerate */
|
|
||||||
if (best_feerate < payload->feerate_our_min) {
|
|
||||||
msg = towire_dualopend_fail(NULL, tal_fmt(tmpctx,
|
|
||||||
"feerate_per_kw %u below"
|
|
||||||
" minimum %u",
|
|
||||||
best_feerate,
|
|
||||||
payload->feerate_our_min));
|
|
||||||
return subd_send_msg(dualopend, take(msg));
|
|
||||||
}
|
|
||||||
if (best_feerate > payload->feerate_our_max) {
|
|
||||||
msg = towire_dualopend_fail(NULL, tal_fmt(tmpctx,
|
|
||||||
"feerate_per_kw %u above"
|
|
||||||
" maximum %u",
|
|
||||||
best_feerate,
|
|
||||||
payload->feerate_our_max));
|
|
||||||
return subd_send_msg(dualopend, take(msg));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
msg = towire_dualopend_got_offer_reply(NULL, payload->accepter_funding,
|
|
||||||
payload->funding_feerate_per_kw,
|
|
||||||
payload->psbt,
|
|
||||||
payload->our_shutdown_scriptpubkey);
|
|
||||||
|
|
||||||
subd_send_msg(dualopend, take(msg));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* dualopend dies? Remove dualopend ptr from payload */
|
/* dualopend dies? Remove dualopend ptr from payload */
|
||||||
static void
|
static void
|
||||||
openchannel2_psbt_remove_dualopend(struct subd *dualopend,
|
openchannel2_psbt_remove_dualopend(struct subd *dualopend,
|
||||||
|
|||||||
Reference in New Issue
Block a user