| 69 | } |
| 70 | |
| 71 | static struct htlc_set *new_htlc_set(struct lightningd *ld, |
| 72 | struct htlc_in *hin, |
| 73 | struct amount_msat total_msat) |
| 74 | { |
| 75 | struct htlc_set *set; |
| 76 | |
| 77 | set = tal(ld, struct htlc_set); |
| 78 | set->total_msat = total_msat; |
| 79 | set->payment_hash = hin->payment_hash; |
| 80 | set->so_far = AMOUNT_MSAT(0); |
| 81 | set->htlcs = tal_arr(set, struct htlc_in *, 1); |
| 82 | set->htlcs[0] = hin; |
| 83 | |
| 84 | /* BOLT #4: |
| 85 | * - MUST fail all HTLCs in the HTLC set after some reasonable |
| 86 | * timeout. |
| 87 | * - SHOULD wait for at least 60 seconds after the initial |
| 88 | * HTLC. |
| 89 | */ |
| 90 | set->timeout = new_reltimer(ld->timers, set, time_from_sec(70), |
| 91 | timeout_htlc_set, set); |
| 92 | htlc_set_map_add(&ld->htlc_sets, set); |
| 93 | tal_add_destructor2(set, destroy_htlc_set, &ld->htlc_sets); |
| 94 | return set; |
| 95 | } |
| 96 | |
| 97 | void htlc_set_add(struct lightningd *ld, |
| 98 | struct htlc_in *hin, |
no test coverage detected