| 343 | } |
| 344 | |
| 345 | static struct gossmap_chan *new_channel(struct gossmap *map, |
| 346 | u32 cannounce_off, |
| 347 | u32 plus_scid_off, |
| 348 | bool private, |
| 349 | u32 n1idx, u32 n2idx) |
| 350 | { |
| 351 | struct gossmap_chan *chan = next_free_chan(map); |
| 352 | |
| 353 | chan->cann_off = cannounce_off; |
| 354 | chan->private = private; |
| 355 | chan->plus_scid_off = plus_scid_off; |
| 356 | chan->cupdate_off[0] = chan->cupdate_off[1] = 0; |
| 357 | memset(chan->half, 0, sizeof(chan->half)); |
| 358 | chan->half[0].nodeidx = n1idx; |
| 359 | chan->half[1].nodeidx = n2idx; |
| 360 | node_add_channel(map->node_arr + n1idx, gossmap_chan_idx(map, chan)); |
| 361 | node_add_channel(map->node_arr + n2idx, gossmap_chan_idx(map, chan)); |
| 362 | chanidx_htable_add(&map->channels, chan2ptrint(chan)); |
| 363 | |
| 364 | return chan; |
| 365 | } |
| 366 | |
| 367 | static void remove_chan_from_node(struct gossmap *map, |
| 368 | struct gossmap_node *node, |