X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning-c-bindings%2Fdemo.cpp;h=252bae5e294205e2085df4b6c373db33270165db;hb=cd178385527ffe4e15b935005df984fc042be30f;hp=a4281f56ca707e7c8f6ebd32ff7e463d9184acaf;hpb=22416bd8a74640dc70a49b5167afb28d747886e3;p=ldk-c-bindings diff --git a/lightning-c-bindings/demo.cpp b/lightning-c-bindings/demo.cpp index a4281f5..252bae5 100644 --- a/lightning-c-bindings/demo.cpp +++ b/lightning-c-bindings/demo.cpp @@ -242,6 +242,14 @@ public: PeerManager_disconnect_by_node_id(&net1, ChannelManager_get_our_node_id(&cm2)); assert(!socket_connect(node1_handler, ChannelManager_get_our_node_id(&cm2), (sockaddr*)&listen_addr, sizeof(listen_addr))); + while (true) { + // Wait for the new connection handshake... + LDK::CVec_C2Tuple_PublicKeyCOption_NetAddressZZZ peers_1 = PeerManager_get_peer_node_ids(&net1); + LDK::CVec_C2Tuple_PublicKeyCOption_NetAddressZZZ peers_2 = PeerManager_get_peer_node_ids(&net2); + if (peers_1->datalen == 1 && peers_2->datalen == 1) { break; } + std::this_thread::yield(); + } + // Wait for all our sockets to disconnect (making sure we disconnect any new connections)... while (true) { PeerManager_disconnect_by_node_id(&net1, ChannelManager_get_our_node_id(&cm2)); @@ -423,7 +431,7 @@ LDKCVec_u8Z custom_msg_bytes(const void *this_arg) { } LDKStr custom_msg_debug(const void *this_arg) { return LDKStr { - .chars = NULL, .len = 0, .chars_is_owned = false + .chars = (const unsigned char*) "Custom Message", .len = 14, .chars_is_owned = false }; } @@ -474,7 +482,7 @@ uint64_t get_chan_score(const void *this_arg, uint64_t scid, const LDKNodeId *sr return 42; } -struct LDKCResult_RouteLightningErrorZ custom_find_route(const void *this_arg, struct LDKPublicKey payer, const struct LDKRouteParameters *NONNULL_PTR route_params, struct LDKCVec_ChannelDetailsZ *first_hops, const struct LDKInFlightHtlcs *in_flights) { +struct LDKCResult_RouteLightningErrorZ custom_find_route(const void *this_arg, struct LDKPublicKey payer, const struct LDKRouteParameters *NONNULL_PTR route_params, struct LDKCVec_ChannelDetailsZ *first_hops, const struct LDKInFlightHtlcs *in_flights, LDKThirtyTwoBytes payment_id, LDKThirtyTwoBytes payment_hash) { const LDK::DefaultRouter *router = (LDK::DefaultRouter *)this_arg; assert(first_hops->datalen == 1); assert(ChannelDetails_get_is_usable(&first_hops->data[0])); @@ -545,6 +553,7 @@ int main() { LDKRouter panic_router = { .this_arg = NULL, .find_route = NULL, // Segfault if we ever try to find a route + .find_route_with_id = NULL, // Segfault if we ever try to find a route .free = NULL, }; @@ -890,7 +899,8 @@ int main() { const LDK::DefaultRouter default_router_1 = DefaultRouter_new(&net_graph1, logger1, entropy_source1.get_secure_random_bytes(), std::move(scorer_mtx_trait1)); LDKRouter router1 = { .this_arg = (void*)&default_router_1, - .find_route = custom_find_route, + .find_route = NULL, // LDK currently doesn't use this, its just a default-impl + .find_route_with_id = custom_find_route, .free = NULL, };