Browse Source

Test

etomic
jl777 8 years ago
parent
commit
ac0e1ea593
  1. 2
      iguana/exchanges/LP_forwarding.c
  2. 5
      iguana/exchanges/LP_include.h
  3. 8
      iguana/exchanges/LP_rpc.c

2
iguana/exchanges/LP_forwarding.c

@ -174,7 +174,7 @@ int32_t LP_forwarding_register(bits256 pubkey,char *publicaddr,uint16_t publicpo
free_json(retjson); free_json(retjson);
} }
free(retstr); free(retstr);
} else printf("error registering with %s\n",peer->ipaddr); } else printf("timeout registering with %s errs.%d good.%d\n",peer->ipaddr,peer->errors,peer->good);
if ( retval == 0 ) if ( retval == 0 )
break; break;
} }

5
iguana/exchanges/LP_include.h

@ -32,6 +32,9 @@
#define LP_HTTP_TIMEOUT 2 // 1 is too small due to edge cases of time(NULL) #define LP_HTTP_TIMEOUT 2 // 1 is too small due to edge cases of time(NULL)
#define LP_MAXPEER_ERRORS 3 #define LP_MAXPEER_ERRORS 3
#define LP_MINPEER_GOOD 100
#define LP_PEERGOOD_ERRORDECAY 0.9
#define LP_SWAPSTEP_TIMEOUT 3 #define LP_SWAPSTEP_TIMEOUT 3
#define LP_AUTOTRADE_TIMEOUT 3 #define LP_AUTOTRADE_TIMEOUT 3
#define LP_MIN_TXFEE 10000 #define LP_MIN_TXFEE 10000
@ -191,7 +194,7 @@ struct LP_peerinfo
UT_hash_handle hh; UT_hash_handle hh;
uint64_t ip_port; uint64_t ip_port;
double profitmargin; double profitmargin;
uint32_t ipbits,errortime,errors,numpeers,numutxos,lasttime,connected,lastutxos,lastpeers,diduquery; uint32_t ipbits,errortime,errors,numpeers,numutxos,lasttime,connected,lastutxos,lastpeers,diduquery,good;
int32_t pushsock,subsock; int32_t pushsock,subsock;
uint16_t port; uint16_t port;
char ipaddr[64]; char ipaddr[64];

8
iguana/exchanges/LP_rpc.c

@ -23,14 +23,16 @@ char *LP_issue_curl(char *debugstr,char *destip,uint16_t port,char *url)
char *retstr = 0; int32_t maxerrs; struct LP_peerinfo *peer = 0; char *retstr = 0; int32_t maxerrs; struct LP_peerinfo *peer = 0;
peer = LP_peerfind((uint32_t)calc_ipbits(destip),port); peer = LP_peerfind((uint32_t)calc_ipbits(destip),port);
maxerrs = LP_MAXPEER_ERRORS; maxerrs = LP_MAXPEER_ERRORS;
if ( peer == 0 || peer->errors < maxerrs ) if ( peer == 0 || (peer->errors < maxerrs && peer->good < LP_MINPEER_GOOD) )
{ {
if ( (retstr= issue_curlt(url,LP_HTTP_TIMEOUT)) == 0 ) if ( (retstr= issue_curlt(url,LP_HTTP_TIMEOUT)) == 0 )
{ {
if ( peer != 0 ) if ( peer != 0 )
{
peer->errors++; peer->errors++;
else printf("%s error on (%s:%u) without peer\n",debugstr,destip,port); peer->good *= LP_PEERGOOD_ERRORDECAY;
} } else printf("%s error on (%s:%u) without peer\n",debugstr,destip,port);
} else peer->good++;
} }
return(retstr); return(retstr);
} }

Loading…
Cancel
Save