@@ -335,6 +335,9 @@ static void try_connect(const tal_t *ctx,
335
335
{
336
336
struct delayed_reconnect * d ;
337
337
struct peer * peer ;
338
+ const struct wireaddr_internal * alt_addr ;
339
+
340
+ alt_addr = wallet_get_peer_alt_addr (ld -> wallet , id );
338
341
339
342
/* Don't stack, unless this is an instant reconnect */
340
343
d = delayed_reconnect_map_get (ld -> delayed_reconnect_map , id );
@@ -349,7 +352,7 @@ static void try_connect(const tal_t *ctx,
349
352
d = tal (ctx , struct delayed_reconnect );
350
353
d -> ld = ld ;
351
354
d -> id = * id ;
352
- d -> addrhint = tal_dup_or_null (d , struct wireaddr_internal , addrhint );
355
+ d -> addrhint = tal_dup_or_null (d , struct wireaddr_internal , alt_addr ? alt_addr : addrhint );
353
356
d -> dns_fallback = dns_fallback ;
354
357
delayed_reconnect_map_add (ld -> delayed_reconnect_map , d );
355
358
tal_add_destructor (d , destroy_delayed_reconnect );
@@ -364,9 +367,6 @@ static void try_connect(const tal_t *ctx,
364
367
/* Update any channel billboards */
365
368
peer = peer_by_id (ld , id );
366
369
if (peer ) {
367
- // struct pubkey pubkey;
368
- // if (pubkey_from_node_id(&pubkey, id)) {
369
- // send_peer_alt_address(peer, &pubkey, (const u8 *)"127.21.21.21"); // THIS MIGHT BE THE RIGHT PLACE IN THE END, NEED TO SEND ANOTHER MSG FROM MASTER -> CHANNELD then????
370
370
struct channel * channel ;
371
371
list_for_each (& peer -> channels , channel , list ) {
372
372
if (!channel_state_wants_peercomms (channel -> state ))
@@ -559,20 +559,21 @@ static void handle_custommsg_in(struct lightningd *ld, const u8 *msg)
559
559
plugin_hook_call_custommsg (ld , NULL , p );
560
560
}
561
561
562
- static void handle_alt_addr_in (struct lightningd * ld , const u8 * msg )
562
+ static void handle_peer_alt_addr_in (struct lightningd * ld , const u8 * msg )
563
563
{
564
- struct pubkey node_id ;
565
- struct node_id id ;
566
- u8 * alt_addr ;
564
+ struct pubkey peer_node_id ;
565
+ u8 * peer_alt_addr ;
567
566
568
- if (!fromwire_connectd_alt_address (tmpctx , msg , & node_id , & alt_addr )) {
567
+ if (!fromwire_connectd_alt_address (tmpctx , msg , & peer_node_id , & peer_alt_addr )) {
569
568
log_broken (ld -> log , "Malformed peer_alt_addr_msg: %s" ,
570
569
tal_hex (tmpctx , msg ));
571
570
return ;
572
571
}
573
572
574
- node_id_from_pubkey (& id , & node_id );
575
- wallet_peer_alt_addr (ld -> wallet -> db , & id , (char * )alt_addr );
573
+ struct node_id id ;
574
+ node_id_from_pubkey (& id , & peer_node_id );
575
+ wallet_add_peer_alt_addr (ld -> wallet -> db , & id , (char * )peer_alt_addr );
576
+ // SHOULD/CAN WE ALSO SAVE IT TO THE peer struct HERE, TO BE ABLE TO GET IN IT CONNECTD LATER FOR THE `connection_in`???
576
577
}
577
578
578
579
static void connectd_start_shutdown_reply (struct subd * connectd ,
@@ -666,7 +667,7 @@ static unsigned connectd_msg(struct subd *connectd, const u8 *msg, const int *fd
666
667
break ;
667
668
668
669
case WIRE_CONNECTD_ALT_ADDRESS :
669
- handle_alt_addr_in (connectd -> ld , msg );
670
+ handle_peer_alt_addr_in (connectd -> ld , msg );
670
671
break ;
671
672
}
672
673
return 0 ;
@@ -788,7 +789,8 @@ int connectd_init(struct lightningd *ld)
788
789
ld -> dev_fast_gossip ,
789
790
ld -> dev_disconnect_fd >= 0 ,
790
791
ld -> dev_no_ping_timer ,
791
- ld -> dev_handshake_no_reply );
792
+ ld -> dev_handshake_no_reply /* , //This is WIP
793
+ ld->our_alt_addr */ );
792
794
793
795
subd_req (ld -> connectd , ld -> connectd , take (msg ), -1 , 0 ,
794
796
connect_init_done , NULL );
0 commit comments