Browse Source

Merge pull request #899 from jl777/jl777

Jl777
pass-iguana-arg
jl777 7 years ago
committed by GitHub
parent
commit
6493036458
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      iguana/exchanges/LP_signatures.c
  2. 16
      iguana/exchanges/LP_socket.c

2
iguana/exchanges/LP_signatures.c

@ -722,7 +722,7 @@ void LP_query(void *ctx,char *myipaddr,int32_t mypubsock,char *method,struct LP_
LP_queuecommand(0,msg,IPC_ENDPOINT,-1,0); LP_queuecommand(0,msg,IPC_ENDPOINT,-1,0);
memset(&zero,0,sizeof(zero)); memset(&zero,0,sizeof(zero));
LP_reserved_msg(1,qp->srccoin,qp->destcoin,zero,clonestr(msg)); LP_reserved_msg(1,qp->srccoin,qp->destcoin,zero,clonestr(msg));
//if ( bits256_nonz(qp->srchash) != 0 ) if ( bits256_nonz(qp->srchash) != 0 )
{ {
sleep(1); sleep(1);
LP_reserved_msg(1,qp->srccoin,qp->destcoin,qp->srchash,clonestr(msg)); LP_reserved_msg(1,qp->srccoin,qp->destcoin,qp->srchash,clonestr(msg));

16
iguana/exchanges/LP_socket.c

@ -200,6 +200,8 @@ int32_t LP_socket(int32_t bindflag,char *hostname,uint16_t port)
#endif #endif
#endif #endif
if ( bindflag == 0 ) if ( bindflag == 0 )
{
if ( 1 ) // connect using async to allow timeout, then switch to sync
{ {
uint32_t starttime = (uint32_t)time(NULL); uint32_t starttime = (uint32_t)time(NULL);
//printf("call connect sock.%d\n",sock); //printf("call connect sock.%d\n",sock);
@ -207,10 +209,14 @@ int32_t LP_socket(int32_t bindflag,char *hostname,uint16_t port)
//printf("called connect result.%d lag.%d\n",result,(int32_t)(time(NULL) - starttime)); //printf("called connect result.%d lag.%d\n",result,(int32_t)(time(NULL) - starttime));
if ( result < 0 ) if ( result < 0 )
return(-1); return(-1);
timeout.tv_sec = 2; timeout.tv_sec = 10;
timeout.tv_usec = 0; timeout.tv_usec = 0;
setsockopt(sock,SOL_SOCKET,SO_RCVTIMEO,(void *)&timeout,sizeof(timeout)); setsockopt(sock,SOL_SOCKET,SO_RCVTIMEO,(void *)&timeout,sizeof(timeout));
/*if ( result != 0 ) }
else
{
result = connect(sock,(struct sockaddr *)&saddr,addrlen);
if ( result != 0 )
{ {
if ( errno != ECONNRESET && errno != ENOTCONN && errno != ECONNREFUSED && errno != ETIMEDOUT && errno != EHOSTUNREACH ) if ( errno != ECONNRESET && errno != ENOTCONN && errno != ECONNREFUSED && errno != ETIMEDOUT && errno != EHOSTUNREACH )
{ {
@ -219,10 +225,8 @@ int32_t LP_socket(int32_t bindflag,char *hostname,uint16_t port)
if ( sock >= 0 ) if ( sock >= 0 )
closesocket(sock); closesocket(sock);
return(-1); return(-1);
}*/ }
timeout.tv_sec = 10; }
timeout.tv_usec = 0;
setsockopt(sock,SOL_SOCKET,SO_RCVTIMEO,(void *)&timeout,sizeof(timeout));
} }
else else
{ {

Loading…
Cancel
Save