MCPcopy Create free account
hub / github.com/ElementsProject/lightning / query_channel_range

Function query_channel_range

gossipd/queries.c:396–433  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

394}
395
396bool query_channel_range(struct daemon *daemon,
397 struct peer *peer,
398 u32 first_blocknum, u32 number_of_blocks,
399 enum query_option_flags qflags,
400 void (*cb)(struct peer *,
401 u32, u32,
402 const struct range_query_reply *))
403{
404 u8 *msg;
405 struct tlv_query_channel_range_tlvs *tlvs;
406
407 assert((qflags & ~(QUERY_ADD_TIMESTAMPS|QUERY_ADD_CHECKSUMS)) == 0);
408 assert(peer->gossip_queries_feature);
409 assert(!peer->range_replies);
410 assert(!peer->query_channel_range_cb);
411
412 if (qflags) {
413 tlvs = tlv_query_channel_range_tlvs_new(tmpctx);
414 tlvs->query_option = tal(tlvs, bigsize_t);
415 *tlvs->query_option = qflags;
416 } else
417 tlvs = NULL;
418 status_peer_debug(&peer->id,
419 "sending query_channel_range for blocks %u+%u",
420 first_blocknum, number_of_blocks);
421
422 msg = towire_query_channel_range(NULL, &chainparams->genesis_blockhash,
423 first_blocknum, number_of_blocks,
424 tlvs);
425 queue_peer_msg(peer->daemon, &peer->id, take(msg));
426 peer->range_first_blocknum = first_blocknum;
427 peer->range_end_blocknum = first_blocknum + number_of_blocks;
428 peer->range_blocks_outstanding = number_of_blocks;
429 peer->range_replies = tal_arr(peer, struct range_query_reply, 0);
430 peer->query_channel_range_cb = cb;
431
432 return true;
433}

Callers 2

process_scid_probeFunction · 0.70
peer_gossip_probe_scidsFunction · 0.70

Calls 1

queue_peer_msgFunction · 0.70

Tested by

no test coverage detected