jl777 7 years ago
parent
commit
a042b8f34e
  1. 6
      iguana/exchanges/LP_network.c
  2. 15
      iguana/exchanges/LP_peers.c
  3. 1
      iguana/exchanges/LP_privkey.c

6
iguana/exchanges/LP_network.c

@ -662,7 +662,7 @@ char *_LP_psock_create(int32_t *pullsockp,int32_t *pubsockp,char *ipaddr,uint16_
break;
}
}
printf("pairsock for %s <- %d\n",bits256_str(str,pubkey),pubp->pairsock);
printf("pairsock for %s <- %d\n",bits256_str(str,pubkey),pullsock);
pubp->pairsock = pullsock;
}
}
@ -675,7 +675,7 @@ char *_LP_psock_create(int32_t *pullsockp,int32_t *pubsockp,char *ipaddr,uint16_
jaddnum(retjson,"cmdchannel",cmdchannel);
jaddstr(retjson,"publicaddr",pushaddr);
jaddnum(retjson,"publicport",publicport);
printf("cmd.%d publicaddr.(%s) for subaddr.(%s), pullsock.%d pubsock.%d\n",cmdchannel,pushaddr,subaddr,pullsock,pubsock);
//printf("cmd.%d publicaddr.(%s) for subaddr.(%s), pullsock.%d pubsock.%d\n",cmdchannel,pushaddr,subaddr,pullsock,pubsock);
*pullsockp = pullsock;
if ( cmdchannel == 0 )
*pubsockp = pubsock;
@ -703,6 +703,8 @@ char *LP_psock(int32_t *pubsockp,char *ipaddr,int32_t ispaired,int32_t cmdchanne
}
else
{
if ( cmdchannel != 0 && bits256_nonz(pubkey) == 0 )
return(clonestr("{\"error\",\"cant do pairsock for null pubkey\"}"));
maxport = 65534;
publicport = subport = Pcmdport++;
}

15
iguana/exchanges/LP_peers.c

@ -71,6 +71,19 @@ void LP_cmdchannel(struct LP_peerinfo *peer)
} else printf("error getting cmdchannel with %s\n",peer->ipaddr);
}
void LP_cmdchannels()
{
struct LP_peerinfo *peer,*tmp;
if ( IAMLP == 0 )
{
HASH_ITER(hh,LP_peerinfos,peer,tmp)
{
if ( peer->pairsock == 0 )
LP_cmdchannel(peer);
}
}
}
struct LP_peerinfo *LP_addpeer(struct LP_peerinfo *mypeer,int32_t mypubsock,char *ipaddr,uint16_t port,uint16_t pushport,uint16_t subport,int32_t isLP,uint32_t sessionid,uint16_t netid)
{
uint32_t ipbits; int32_t valid,pushsock,subsock,timeout; char checkip[64],pushaddr[64],subaddr[64]; struct LP_peerinfo *peer = 0;
@ -237,7 +250,7 @@ void LP_peer_recv(char *ipaddr,int32_t ismine,struct LP_pubkey_info *pubp)
if ( (peer= LP_peerfind((uint32_t)calc_ipbits(ipaddr),RPC_port)) != 0 )
{
peer->numrecv++;
if ( ismine != 0 && (bits256_nonz(peer->pubkey) == 0 || pubp->pairsock <= 0) )
if ( ismine != 0 && bits256_cmp(G.LP_mypub25519,pubp->pubkey) != 0 && (bits256_nonz(peer->pubkey) == 0 || pubp->pairsock <= 0) )
{
peer->pubkey = pubp->pubkey;
pubp->pairsock = peer->pairsock;

1
iguana/exchanges/LP_privkey.c

@ -417,6 +417,7 @@ int32_t LP_passphrase_init(char *passphrase,char *gui,uint16_t netid,char *seedn
LP_priceinfos_clear();
G.USERPASS_COUNTER = counter;
G.initializing = 0;
LP_cmdchannels();
return(0);
}

Loading…
Cancel
Save