projects
/
ldk-c-bindings
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
22416bd
)
Fix connection race in C++ demo
author
Matt Corallo
<git@bluematt.me>
Tue, 28 Feb 2023 06:54:29 +0000
(06:54 +0000)
committer
Matt Corallo
<git@bluematt.me>
Mon, 6 Mar 2023 22:48:29 +0000
(22:48 +0000)
lightning-c-bindings/demo.cpp
patch
|
blob
|
history
diff --git
a/lightning-c-bindings/demo.cpp
b/lightning-c-bindings/demo.cpp
index a4281f56ca707e7c8f6ebd32ff7e463d9184acaf..b6a4c722f53aa3aefef8190abeea23cfbfe261ba 100644
(file)
--- 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)));
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));
// 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));