diff --git a/iguana/exchanges/LP_signatures.c b/iguana/exchanges/LP_signatures.c index 91667fa2e..54146c7c8 100644 --- a/iguana/exchanges/LP_signatures.c +++ b/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); memset(&zero,0,sizeof(zero)); 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); LP_reserved_msg(1,qp->srccoin,qp->destcoin,qp->srchash,clonestr(msg)); diff --git a/iguana/exchanges/LP_socket.c b/iguana/exchanges/LP_socket.c index 25391cb51..ba45ca725 100644 --- a/iguana/exchanges/LP_socket.c +++ b/iguana/exchanges/LP_socket.c @@ -201,28 +201,32 @@ int32_t LP_socket(int32_t bindflag,char *hostname,uint16_t port) #endif if ( bindflag == 0 ) { - uint32_t starttime = (uint32_t)time(NULL); - //printf("call connect sock.%d\n",sock); - result = komodo_connect(sock,(struct sockaddr *)&saddr,addrlen); - //printf("called connect result.%d lag.%d\n",result,(int32_t)(time(NULL) - starttime)); - if ( result < 0 ) - return(-1); - timeout.tv_sec = 2; - timeout.tv_usec = 0; - setsockopt(sock,SOL_SOCKET,SO_RCVTIMEO,(void *)&timeout,sizeof(timeout)); - /*if ( result != 0 ) + if ( 1 ) // connect using async to allow timeout, then switch to sync { - if ( errno != ECONNRESET && errno != ENOTCONN && errno != ECONNREFUSED && errno != ETIMEDOUT && errno != EHOSTUNREACH ) + uint32_t starttime = (uint32_t)time(NULL); + //printf("call connect sock.%d\n",sock); + result = komodo_connect(sock,(struct sockaddr *)&saddr,addrlen); + //printf("called connect result.%d lag.%d\n",result,(int32_t)(time(NULL) - starttime)); + if ( result < 0 ) + return(-1); + timeout.tv_sec = 10; + timeout.tv_usec = 0; + setsockopt(sock,SOL_SOCKET,SO_RCVTIMEO,(void *)&timeout,sizeof(timeout)); + } + else + { + result = connect(sock,(struct sockaddr *)&saddr,addrlen); + if ( result != 0 ) { - //printf("%s(%s) port.%d failed: %s sock.%d. errno.%d\n",bindflag!=0?"bind":"connect",hostname,port,strerror(errno),sock,errno); + if ( errno != ECONNRESET && errno != ENOTCONN && errno != ECONNREFUSED && errno != ETIMEDOUT && errno != EHOSTUNREACH ) + { + //printf("%s(%s) port.%d failed: %s sock.%d. errno.%d\n",bindflag!=0?"bind":"connect",hostname,port,strerror(errno),sock,errno); + } + if ( sock >= 0 ) + closesocket(sock); + return(-1); } - if ( sock >= 0 ) - closesocket(sock); - return(-1); - }*/ - timeout.tv_sec = 10; - timeout.tv_usec = 0; - setsockopt(sock,SOL_SOCKET,SO_RCVTIMEO,(void *)&timeout,sizeof(timeout)); + } } else {