diff --git a/iguana/exchanges/LP_nativeDEX.c b/iguana/exchanges/LP_nativeDEX.c index 2681d5dad..7f61ccc17 100644 --- a/iguana/exchanges/LP_nativeDEX.c +++ b/iguana/exchanges/LP_nativeDEX.c @@ -35,6 +35,7 @@ char USERPASS[65],USERPASS_WIFSTR[64],LP_myipaddr[64],USERHOME[512] = { "/root" char *default_LPnodes[] = { "5.9.253.195", "5.9.253.196", "5.9.253.197", "5.9.253.198", "5.9.253.199", "5.9.253.200", "5.9.253.201", "5.9.253.202", "5.9.253.203", };//"5.9.253.204" }; // uint32_t LP_deadman_switch; +uint16_t LP_fixed_pairport; int32_t LP_mypubsock = -1; int32_t USERPASS_COUNTER,IAMLP = 0; double LP_profitratio = 1.; @@ -402,12 +403,15 @@ void LPinit(uint16_t myport,uint16_t mypullport,uint16_t mypubport,double profit if ( jobj(argjson,"canbind") == 0 ) { #ifndef __linux__ - LP_canbind = IAMLP; + LP_canbind = 1; #else LP_canbind = IAMLP; #endif - } - else LP_canbind = jint(argjson,"canbind"); + } else LP_canbind = jint(argjson,"canbind"); + if ( LP_canbind > 1000 && LP_canbind < 65536 ) + LP_fixed_pairport = LP_canbind; + if ( LP_canbind != 0 ) + LP_canbind = 1; srand((int32_t)n); if ( userhome != 0 && userhome[0] != 0 ) { diff --git a/iguana/exchanges/LP_ordermatch.c b/iguana/exchanges/LP_ordermatch.c index 3bc28c3b7..7d16f4b6b 100644 --- a/iguana/exchanges/LP_ordermatch.c +++ b/iguana/exchanges/LP_ordermatch.c @@ -350,6 +350,8 @@ int32_t LP_nanobind(void *ctx,char *pairstr) for (i=0; i<10; i++) { r = (10000 + (rand() % 50000)) & 0xffff; + if ( LP_fixed_pairport != 0 ) + r = LP_fixed_pairport; nanomsg_transportname(0,pairstr,LP_myipaddr,r); nanomsg_transportname(1,bindaddr,LP_myipaddr,r); if ( nn_bind(pairsock,bindaddr) >= 0 ) @@ -360,6 +362,8 @@ int32_t LP_nanobind(void *ctx,char *pairstr) printf("nanobind %s to %d\n",pairstr,pairsock); return(pairsock); } else printf("error binding to %s for %s\n",bindaddr,pairstr); + if ( LP_fixed_pairport != 0 ) + break; } } } else pairsock = LP_initpublicaddr(ctx,&mypullport,pairstr,"127.0.0.1",0,1);