diff --git a/iguana/exchanges/LP_network.c b/iguana/exchanges/LP_network.c index fd9b823df..9a1b7d09f 100644 --- a/iguana/exchanges/LP_network.c +++ b/iguana/exchanges/LP_network.c @@ -686,6 +686,26 @@ char *_LP_psock_create(int32_t *pullsockp,int32_t *pubsockp,char *ipaddr,uint16_ int32_t i,pullsock,bindflag=(IAMLP != 0),pubsock,arg; struct LP_pubkey_info *pubp; char pushaddr[128],subaddr[128]; cJSON *retjson = 0; pullsock = pubsock = -1; *pullsockp = *pubsockp = -1; + if ( IAMLP != 0 && bits256_nonz(pubkey) != 0 ) + { + char str[65]; + if ( (pubp= LP_pubkeyadd(pubkey)) != 0 ) + { + if ( pubp->pairsock >= 0 ) + { + printf("warning %s already has pairsock.%d\n",bits256_str(str,pubkey),pubp->pairsock); + /*for (i=0; ipairsock ) + { + PSOCKS[i].lasttime = (uint32_t)time(NULL) - PSOCK_KEEPALIVE - 1; + break; + }*/ + return(clonestr("{\"error\":\"need to regen json\"}")); + } + //printf("pairsock for %s <- %d\n",bits256_str(str,pubkey),pullsock); + //pubp->pairsock = pullsock; + } + } nanomsg_transportname(bindflag,pushaddr,ipaddr,publicport); nanomsg_transportname(bindflag,subaddr,ipaddr,subport); if ( (pullsock= nn_socket(AF_SP,ispaired!=0?NN_PAIR:NN_PULL)) >= 0 && (cmdchannel != 0 ||(pubsock= nn_socket(AF_SP,ispaired!=0?NN_PAIR:NN_PAIR)) >= 0) ) @@ -707,25 +727,6 @@ char *_LP_psock_create(int32_t *pullsockp,int32_t *pubsockp,char *ipaddr,uint16_ nanomsg_transportname(0,pushaddr,ipaddr,publicport); nanomsg_transportname(0,subaddr,ipaddr,subport); LP_psockadd(ispaired,pullsock,publicport,pubsock,subport,subaddr,pushaddr,cmdchannel); - if ( IAMLP != 0 && bits256_nonz(pubkey) != 0 ) - { - char str[65]; - if ( (pubp= LP_pubkeyadd(pubkey)) != 0 ) - { - if ( pubp->pairsock >= 0 ) - { - //printf("warning %s already has pairsock.%d, mark for purge\n",bits256_str(str,pubkey),pubp->pairsock); - for (i=0; ipairsock ) - { - PSOCKS[i].lasttime = (uint32_t)time(NULL) - PSOCK_KEEPALIVE - 1; - break; - } - } - printf("pairsock for %s <- %d\n",bits256_str(str,pubkey),pullsock); - pubp->pairsock = pullsock; - } - } retjson = cJSON_CreateObject(); jaddstr(retjson,"result","success"); jaddstr(retjson,"LPipaddr",ipaddr);