|
@ -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; |
|
|
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; |
|
|
pullsock = pubsock = -1; |
|
|
*pullsockp = *pubsockp = -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; i<Numpsocks; i++)
|
|
|
|
|
|
if ( PSOCKS[i].publicsock == pubp->pairsock ) |
|
|
|
|
|
{ |
|
|
|
|
|
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,pushaddr,ipaddr,publicport); |
|
|
nanomsg_transportname(bindflag,subaddr,ipaddr,subport); |
|
|
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) ) |
|
|
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,pushaddr,ipaddr,publicport); |
|
|
nanomsg_transportname(0,subaddr,ipaddr,subport); |
|
|
nanomsg_transportname(0,subaddr,ipaddr,subport); |
|
|
LP_psockadd(ispaired,pullsock,publicport,pubsock,subport,subaddr,pushaddr,cmdchannel); |
|
|
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; i<Numpsocks; i++) |
|
|
|
|
|
if ( PSOCKS[i].publicsock == pubp->pairsock ) |
|
|
|
|
|
{ |
|
|
|
|
|
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(); |
|
|
retjson = cJSON_CreateObject(); |
|
|
jaddstr(retjson,"result","success"); |
|
|
jaddstr(retjson,"result","success"); |
|
|
jaddstr(retjson,"LPipaddr",ipaddr); |
|
|
jaddstr(retjson,"LPipaddr",ipaddr); |
|
|