diff --git a/Csocket.cpp b/Csocket.cpp index d9ef4552..d751e760 100644 --- a/Csocket.cpp +++ b/Csocket.cpp @@ -28,7 +28,7 @@ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * -* $Revision: 1.62 $ +* $Revision: 1.63 $ */ #include "Csocket.h" @@ -2116,6 +2116,16 @@ int Csock::DNSLookup( EDNSLType eDNSLType ) if ( eDNSLType == DNS_VHOST ) { iRet = GetAddrInfo( m_sBindHost, this, m_bindhost ); +#ifdef HAVE_IPV6 + if( m_bindhost.GetIPv6() ) + { + SetAFRequire( CSSockAddr::RAF_INET6 ); + } + else + { + SetAFRequire( CSSockAddr::RAF_INET ); + } +#endif /* HAVE_IPV6 */ } else { diff --git a/Csocket.h b/Csocket.h index 811dee8a..ef2ba0cb 100644 --- a/Csocket.h +++ b/Csocket.h @@ -28,7 +28,7 @@ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * -* $Revision: 1.178 $ +* $Revision: 1.179 $ */ // note to compile with win32 need to link to winsock2, using gcc its -lws2_32 @@ -1444,7 +1444,7 @@ public: if ( GetSockError() == ECONNREFUSED ) pcSock->ConnectionRefused(); else - pcSock->SockError( ECONNABORTED ); + pcSock->SockError( GetSockError() ); DelSock( a-- ); continue; @@ -1458,7 +1458,7 @@ public: if ( GetSockError() == ECONNREFUSED ) pcSock->ConnectionRefused(); else - pcSock->SockError( ECONNABORTED ); + pcSock->SockError( GetSockError() == 0 ? ECONNABORTED : GetSockError() ); DelSock( a-- ); continue;