Browse Source

test

release/v0.1
jl777 9 years ago
parent
commit
916599bdb0
  1. 14
      iguana/iguana_peers.c

14
iguana/iguana_peers.c

@ -313,12 +313,12 @@ int32_t iguana_socket(int32_t bindflag,char *hostname,uint16_t port)
} }
opt = 1; opt = 1;
slen = sizeof(opt); slen = sizeof(opt);
if ( bindflag != 0 ) if ( 0 && bindflag != 0 )
{ {
//timeout.tv_sec = 0; //timeout.tv_sec = 0;
//timeout.tv_usec = 1000; //timeout.tv_usec = 1000;
//setsockopt(sock,SOL_SOCKET,SO_RCVTIMEO,(char *)&timeout,sizeof(timeout)); //setsockopt(sock,SOL_SOCKET,SO_RCVTIMEO,(char *)&timeout,sizeof(timeout));
printf("set keepalive.%d\n",setsockopt(sock,SOL_SOCKET,SO_KEEPALIVE,(void *)&opt,slen)); //printf("set keepalive.%d\n",setsockopt(sock,SOL_SOCKET,SO_KEEPALIVE,(void *)&opt,slen));
opt = 0; opt = 0;
getsockopt(sock,SOL_SOCKET,SO_KEEPALIVE,(void *)&opt,&slen); getsockopt(sock,SOL_SOCKET,SO_KEEPALIVE,(void *)&opt,&slen);
printf("keepalive.%d\n",opt); printf("keepalive.%d\n",opt);
@ -898,6 +898,7 @@ int64_t iguana_peerallocated(struct iguana_info *coin,struct iguana_peer *addr)
void iguana_dedicatedloop(struct iguana_info *coin,struct iguana_peer *addr) void iguana_dedicatedloop(struct iguana_info *coin,struct iguana_peer *addr)
{ {
static uint32_t lastping;
struct pollfd fds; uint8_t *buf,serialized[64]; struct iguana_bundlereq *req; struct pollfd fds; uint8_t *buf,serialized[64]; struct iguana_bundlereq *req;
int32_t bufsize,flag,run,timeout = coin->polltimeout == 0 ? 10 : coin->polltimeout; int32_t bufsize,flag,run,timeout = coin->polltimeout == 0 ? 10 : coin->polltimeout;
#ifdef IGUANA_PEERALLOC #ifdef IGUANA_PEERALLOC
@ -997,6 +998,11 @@ void iguana_dedicatedloop(struct iguana_info *coin,struct iguana_peer *addr)
} }
if ( flag != 0 ) if ( flag != 0 )
run = 0; run = 0;
else if ( time(NULL) > lastping+1 )
{
iguana_send_supernet(coin,addr,"{\"agent\":\"SuperNET\",\"method\":\"getpeers\"}",0);
lastping = time(NULL);
}
if ( coin->isRT != 0 && addr->rank > coin->MAXPEERS && (rand() % 100) == 0 ) if ( coin->isRT != 0 && addr->rank > coin->MAXPEERS && (rand() % 100) == 0 )
{ {
printf("isRT and low rank.%d ",addr->rank); printf("isRT and low rank.%d ",addr->rank);
@ -1086,7 +1092,11 @@ void iguana_peersloop(void *ptr)
} }
} }
if ( flag == 0 ) if ( flag == 0 )
{
if ( time(NULL) > lastping+1 )
iguana_send_supernet(coin,addr,"{\"agent\":\"SuperNET\",\"method\":\"getpeers\"}",0);
usleep(1000); usleep(1000);
} }
}
#endif #endif
} }

Loading…
Cancel
Save