| 198 | } |
| 199 | |
| 200 | const char *fmt_reservations(const tal_t *ctx, |
| 201 | const struct reserve_htable *reserved, |
| 202 | const struct short_channel_id_dir *scidd, |
| 203 | const struct layer **layers) |
| 204 | { |
| 205 | struct reserve *r; |
| 206 | struct reserve_htable_iter rit; |
| 207 | char *ret = NULL; |
| 208 | |
| 209 | for (r = reserve_htable_getfirst(reserved, scidd, &rit); |
| 210 | r; |
| 211 | r = reserve_htable_getnext(reserved, scidd, &rit)) { |
| 212 | u64 seconds; |
| 213 | if (r->rhop.layer && !layer_in(r->rhop.layer, layers)) |
| 214 | continue; |
| 215 | if (!ret) |
| 216 | ret = tal_strdup(ctx, ""); |
| 217 | else |
| 218 | tal_append_fmt(&ret, ", "); |
| 219 | tal_append_fmt(&ret, "%s by command %s", |
| 220 | fmt_amount_msat(tmpctx, r->rhop.amount), r->cmd_id); |
| 221 | seconds = timemono_between(time_mono(), r->timestamp).ts.tv_sec; |
| 222 | /* Add a note if it's old */ |
| 223 | if (seconds > 0) |
| 224 | tal_append_fmt(&ret, " (%"PRIu64" seconds ago)", seconds); |
| 225 | } |
| 226 | return ret; |
| 227 | } |
no test coverage detected