From 655f7f359d602cbb286f9e7c0b7d6578f831441a Mon Sep 17 00:00:00 2001 From: jl777 Date: Tue, 20 Jun 2017 12:28:37 +0300 Subject: [PATCH] Test --- iguana/exchanges/LP_nativeDEX.c | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/iguana/exchanges/LP_nativeDEX.c b/iguana/exchanges/LP_nativeDEX.c index 60065b77b..77df59431 100644 --- a/iguana/exchanges/LP_nativeDEX.c +++ b/iguana/exchanges/LP_nativeDEX.c @@ -162,11 +162,9 @@ int32_t LP_pullsock_check(char **retstrp,char *myipaddr,int32_t pubsock,int32_t { if ( (recvlen= nn_recv(pullsock,&ptr,NN_MSG,0)) >= 0 ) { - if ( IAMLP == 0 ) - printf("pullsock.%d recv.%d (%s)\n",pullsock,recvlen,(char *)ptr); nonz++; *retstrp = LP_process_message("PULL",myipaddr,pubsock,profitmargin,ptr,recvlen,pullsock); - } //else printf("pullsock.%d recvlen.%d\n",pullsock,recvlen); + } } return(nonz); } @@ -369,7 +367,7 @@ void LP_initpeers(int32_t pubsock,struct LP_peerinfo *mypeer,char *myipaddr,uint void LPinit(uint16_t myport,uint16_t mypullport,uint16_t mypubport,double profitmargin,char *passphrase,int32_t amclient,char *userhome,cJSON *argjson) { - char *myipaddr=0; long filesize,n; int32_t timeout,pullsock=-1,pubsock=-1; struct LP_peerinfo *mypeer=0; char pushaddr[128],subaddr[128],bindaddr[128]; + char *myipaddr=0; long filesize,n; int32_t timeout,pullsock=-1,pubsock=-1; struct LP_peerinfo *mypeer=0; char pushaddr[128],subaddr[128],bindaddr[128],keepalive[128]; IAMLP = !amclient; #ifndef __linux__ if ( IAMLP != 0 ) @@ -458,14 +456,22 @@ void LPinit(uint16_t myport,uint16_t mypullport,uint16_t mypubport,double profit printf("mainloop\n"); if ( LP_mainloop_iter(myipaddr,mypeer,pubsock,pushaddr,mypullport,pullsock,myport,passphrase,profitmargin) == 0 ) usleep(100000); - if ( LP_canbind == 0 && LP_deadman_switch < time(NULL)-777 ) + if ( LP_canbind == 0 ) { - printf("DEAD man's switch activated, register forwarding again\n"); - if ( pullsock >= 0 ) - nn_close(pullsock); - pullsock = LP_initpublicaddr(&mypullport,pushaddr,myipaddr,mypullport,0); - LP_deadman_switch = (uint32_t)time(NULL); - LP_forwarding_register(LP_mypubkey,pushaddr,mypullport,100000); + if ( LP_deadman_switch < time(NULL)-PSOCK_KEEPALIVE ) + { + printf("DEAD man's switch activated, register forwarding again\n"); + if ( pullsock >= 0 ) + nn_close(pullsock); + pullsock = LP_initpublicaddr(&mypullport,pushaddr,myipaddr,mypullport,0); + LP_deadman_switch = (uint32_t)time(NULL); + LP_forwarding_register(LP_mypubkey,pushaddr,mypullport,100000); + } + else + { + sprintf(keepalive,"{\"method\":\"keepalive\"}"); + LP_send(pullsock,keepalive,0); + } } } }