mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-03-03 10:46:58 +01:00
paymod: Consolidate step selection and changes in presplit modifier
We skip most payment steps and all sub-payments, so consolidate the skip conditions in one if-statement. We also not use `payment_set_step` to skip any modifiers after us after the step change.
This commit is contained in:
parent
e1c6b977b4
commit
7b4e70effa
1 changed files with 6 additions and 9 deletions
|
@ -2192,10 +2192,7 @@ static void presplit_cb(struct presplit_mod_data *d, struct payment *p)
|
||||||
struct payment *root = payment_root(p);
|
struct payment *root = payment_root(p);
|
||||||
struct amount_msat amt = root->amount;
|
struct amount_msat amt = root->amount;
|
||||||
|
|
||||||
if (d->disable)
|
if (d->disable || p->parent != NULL || !payment_supports_mpp(p))
|
||||||
return payment_continue(p);
|
|
||||||
|
|
||||||
if (!payment_supports_mpp(p))
|
|
||||||
return payment_continue(p);
|
return payment_continue(p);
|
||||||
|
|
||||||
if (p->step == PAYMENT_STEP_ONION_PAYLOAD) {
|
if (p->step == PAYMENT_STEP_ONION_PAYLOAD) {
|
||||||
|
@ -2210,7 +2207,7 @@ static void presplit_cb(struct presplit_mod_data *d, struct payment *p)
|
||||||
fields, root->payment_secret,
|
fields, root->payment_secret,
|
||||||
root->amount.millisatoshis); /* Raw: onion payload */
|
root->amount.millisatoshis); /* Raw: onion payload */
|
||||||
}
|
}
|
||||||
} else if (p == root && p->step == PAYMENT_STEP_INITIALIZED) {
|
} else if (p->step == PAYMENT_STEP_INITIALIZED) {
|
||||||
/* The presplitter only acts on the root and only in the first
|
/* The presplitter only acts on the root and only in the first
|
||||||
* step. */
|
* step. */
|
||||||
size_t count = 0;
|
size_t count = 0;
|
||||||
|
@ -2261,8 +2258,9 @@ static void presplit_cb(struct presplit_mod_data *d, struct payment *p)
|
||||||
payment_start(c);
|
payment_start(c);
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
p->step = PAYMENT_STEP_SPLIT;
|
|
||||||
p->end_time = time_now();
|
p->result = NULL;
|
||||||
|
p->route = NULL;
|
||||||
p->why = tal_fmt(
|
p->why = tal_fmt(
|
||||||
p,
|
p,
|
||||||
"Split into %zu sub-payments due to initial size (%s > "
|
"Split into %zu sub-payments due to initial size (%s > "
|
||||||
|
@ -2270,9 +2268,8 @@ static void presplit_cb(struct presplit_mod_data *d, struct payment *p)
|
||||||
count,
|
count,
|
||||||
type_to_string(tmpctx, struct amount_msat, &root->amount),
|
type_to_string(tmpctx, struct amount_msat, &root->amount),
|
||||||
MPP_TARGET_SIZE);
|
MPP_TARGET_SIZE);
|
||||||
|
payment_set_step(p, PAYMENT_STEP_SPLIT);
|
||||||
plugin_log(p->plugin, LOG_INFORM, "%s", p->why);
|
plugin_log(p->plugin, LOG_INFORM, "%s", p->why);
|
||||||
p->result = NULL;
|
|
||||||
p->route = NULL;
|
|
||||||
}
|
}
|
||||||
payment_continue(p);
|
payment_continue(p);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue