diff --git a/ChangeLog.txt b/ChangeLog.txt index 6c1d8b1775..b62f2589d6 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -10,6 +10,17 @@ * Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment */ +2015-08-17 15:29 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) + * include/hbsocket.h + * src/rtl/hbsocket.c + * src/rtl/hbsockhb.c + + added new C functions: + hb_socketAutoInit( void ); + hb_socketSetError( int iError ); + + * contrib/hbtcpio/tcpio.c + ! initialize socket subsystem - it fixes issue #105 + 2015-08-07 16:07 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) * src/rtl/filesys.c * removed dummy code left by mistake diff --git a/contrib/hbtcpio/tcpio.c b/contrib/hbtcpio/tcpio.c index f7bba52e04..e675791add 100644 --- a/contrib/hbtcpio/tcpio.c +++ b/contrib/hbtcpio/tcpio.c @@ -114,6 +114,8 @@ static PHB_FILE s_fileOpen( PHB_FILE_FUNCS pFuncs, const char * pszName, { char * pszAddr, * pszIpAddr; + hb_socketAutoInit(); + pszAddr = hb_strndup( pszHost, nLen ); pszIpAddr = hb_socketResolveAddr( pszAddr, HB_SOCKET_AF_INET ); hb_xfree( pszAddr ); diff --git a/include/hbsocket.h b/include/hbsocket.h index d162d09a0e..cfb63fec38 100644 --- a/include/hbsocket.h +++ b/include/hbsocket.h @@ -64,11 +64,13 @@ typedef HB_SOCKET ( * HB_SOCKET_FUNC )( PHB_ITEM ); #define HB_NO_SOCKET ( ( HB_SOCKET ) -1 ) +extern HB_EXPORT void hb_socketAutoInit( void ); extern HB_EXPORT int hb_socketInit( void ); extern HB_EXPORT void hb_socketCleanup( void ); extern HB_EXPORT int hb_socketGetError( void ); extern HB_EXPORT int hb_socketGetOsError( void ); extern HB_EXPORT const char * hb_socketErrorStr( int iError ); +extern HB_EXPORT void hb_socketSetError( int iError ); extern HB_EXPORT int hb_socketGetAddrFamily( const void * pSockAddr, unsigned len ); extern HB_EXPORT HB_BOOL hb_socketLocalAddr( void ** pSockAddr, unsigned * puiLen, const char * szAddr ); extern HB_EXPORT HB_BOOL hb_socketInetAddr( void ** pSockAddr, unsigned * puiLen, const char * szAddr, int iPort ); diff --git a/src/rtl/hbsocket.c b/src/rtl/hbsocket.c index 3dea723c1e..219227116a 100644 --- a/src/rtl/hbsocket.c +++ b/src/rtl/hbsocket.c @@ -392,7 +392,7 @@ const char * hb_socketErrorStr( int iError ) return ""; } -static void hb_socketSetRawError( int err ) +void hb_socketSetError( int err ) { PHB_IOERRORS pError = hb_stackIOErrors(); @@ -417,7 +417,7 @@ HB_BOOL hb_socketLocalAddr( void ** pSockAddr, unsigned * puiLen, const char * szAddr ) { HB_SYMBOL_UNUSED( szAddr ); - hb_socketSetRawError( HB_SOCKET_ERR_AFNOSUPPORT ); + hb_socketSetError( HB_SOCKET_ERR_AFNOSUPPORT ); *pSockAddr = NULL; *puiLen = 0; return HB_FALSE; @@ -428,7 +428,7 @@ HB_BOOL hb_socketInetAddr( void ** pSockAddr, unsigned * puiLen, { HB_SYMBOL_UNUSED( szAddr ); HB_SYMBOL_UNUSED( iPort ); - hb_socketSetRawError( HB_SOCKET_ERR_AFNOSUPPORT ); + hb_socketSetError( HB_SOCKET_ERR_AFNOSUPPORT ); *pSockAddr = NULL; *puiLen = 0; return HB_FALSE; @@ -439,7 +439,7 @@ HB_BOOL hb_socketInet6Addr( void ** pSockAddr, unsigned * puiLen, { HB_SYMBOL_UNUSED( szAddr ); HB_SYMBOL_UNUSED( iPort ); - hb_socketSetRawError( HB_SOCKET_ERR_AFNOSUPPORT ); + hb_socketSetError( HB_SOCKET_ERR_AFNOSUPPORT ); *pSockAddr = NULL; *puiLen = 0; return HB_FALSE; @@ -449,7 +449,7 @@ char * hb_socketAddrGetName( const void * pSockAddr, unsigned len ) { HB_SYMBOL_UNUSED( pSockAddr ); HB_SYMBOL_UNUSED( len ); - hb_socketSetRawError( HB_SOCKET_ERR_AFNOSUPPORT ); + hb_socketSetError( HB_SOCKET_ERR_AFNOSUPPORT ); return NULL; } @@ -457,14 +457,14 @@ int hb_socketAddrGetPort( const void * pSockAddr, unsigned len ) { HB_SYMBOL_UNUSED( pSockAddr ); HB_SYMBOL_UNUSED( len ); - hb_socketSetRawError( HB_SOCKET_ERR_AFNOSUPPORT ); + hb_socketSetError( HB_SOCKET_ERR_AFNOSUPPORT ); return -1; } HB_BOOL hb_socketAddrFromItem( void ** pSockAddr, unsigned * puiLen, PHB_ITEM pAddrItm ) { HB_SYMBOL_UNUSED( pAddrItm ); - hb_socketSetRawError( HB_SOCKET_ERR_AFNOSUPPORT ); + hb_socketSetError( HB_SOCKET_ERR_AFNOSUPPORT ); *pSockAddr = NULL; *puiLen = 0; return HB_FALSE; @@ -474,14 +474,14 @@ PHB_ITEM hb_socketAddrToItem( const void * pSockAddr, unsigned len ) { HB_SYMBOL_UNUSED( pSockAddr ); HB_SYMBOL_UNUSED( len ); - hb_socketSetRawError( HB_SOCKET_ERR_AFNOSUPPORT ); + hb_socketSetError( HB_SOCKET_ERR_AFNOSUPPORT ); return NULL; } int hb_socketGetSockName( HB_SOCKET sd, void ** pSockAddr, unsigned * puiLen ) { HB_SYMBOL_UNUSED( sd ); - hb_socketSetRawError( HB_SOCKET_ERR_INVALIDHANDLE ); + hb_socketSetError( HB_SOCKET_ERR_INVALIDHANDLE ); *pSockAddr = NULL; *puiLen = 0; return -1; @@ -490,7 +490,7 @@ int hb_socketGetSockName( HB_SOCKET sd, void ** pSockAddr, unsigned * puiLen ) int hb_socketGetPeerName( HB_SOCKET sd, void ** pSockAddr, unsigned * puiLen ) { HB_SYMBOL_UNUSED( sd ); - hb_socketSetRawError( HB_SOCKET_ERR_INVALIDHANDLE ); + hb_socketSetError( HB_SOCKET_ERR_INVALIDHANDLE ); *pSockAddr = NULL; *puiLen = 0; return -1; @@ -501,14 +501,14 @@ HB_SOCKET hb_socketOpen( int domain, int type, int protocol ) HB_SYMBOL_UNUSED( domain ); HB_SYMBOL_UNUSED( type ); HB_SYMBOL_UNUSED( protocol ); - hb_socketSetRawError( HB_SOCKET_ERR_PFNOSUPPORT ); + hb_socketSetError( HB_SOCKET_ERR_PFNOSUPPORT ); return HB_NO_SOCKET; } int hb_socketClose( HB_SOCKET sd ) { HB_SYMBOL_UNUSED( sd ); - hb_socketSetRawError( HB_SOCKET_ERR_INVALIDHANDLE ); + hb_socketSetError( HB_SOCKET_ERR_INVALIDHANDLE ); return -1; } @@ -516,7 +516,7 @@ int hb_socketShutdown( HB_SOCKET sd, int iMode ) { HB_SYMBOL_UNUSED( sd ); HB_SYMBOL_UNUSED( iMode ); - hb_socketSetRawError( HB_SOCKET_ERR_INVALIDHANDLE ); + hb_socketSetError( HB_SOCKET_ERR_INVALIDHANDLE ); return -1; } @@ -525,7 +525,7 @@ int hb_socketBind( HB_SOCKET sd, const void * pSockAddr, unsigned uiLen ) HB_SYMBOL_UNUSED( sd ); HB_SYMBOL_UNUSED( pSockAddr ); HB_SYMBOL_UNUSED( uiLen ); - hb_socketSetRawError( HB_SOCKET_ERR_INVALIDHANDLE ); + hb_socketSetError( HB_SOCKET_ERR_INVALIDHANDLE ); return -1; } @@ -533,7 +533,7 @@ int hb_socketListen( HB_SOCKET sd, int iBacklog ) { HB_SYMBOL_UNUSED( sd ); HB_SYMBOL_UNUSED( iBacklog ); - hb_socketSetRawError( HB_SOCKET_ERR_INVALIDHANDLE ); + hb_socketSetError( HB_SOCKET_ERR_INVALIDHANDLE ); return -1; } @@ -541,7 +541,7 @@ HB_SOCKET hb_socketAccept( HB_SOCKET sd, void ** pSockAddr, unsigned * puiLen, H { HB_SYMBOL_UNUSED( sd ); HB_SYMBOL_UNUSED( timeout ); - hb_socketSetRawError( HB_SOCKET_ERR_INVALIDHANDLE ); + hb_socketSetError( HB_SOCKET_ERR_INVALIDHANDLE ); *pSockAddr = NULL; *puiLen = 0; return HB_NO_SOCKET; @@ -553,7 +553,7 @@ int hb_socketConnect( HB_SOCKET sd, const void * pSockAddr, unsigned uiLen, HB_M HB_SYMBOL_UNUSED( pSockAddr ); HB_SYMBOL_UNUSED( uiLen ); HB_SYMBOL_UNUSED( timeout ); - hb_socketSetRawError( HB_SOCKET_ERR_INVALIDHANDLE ); + hb_socketSetError( HB_SOCKET_ERR_INVALIDHANDLE ); return -1; } @@ -564,7 +564,7 @@ long hb_socketSend( HB_SOCKET sd, const void * data, long len, int flags, HB_MAX HB_SYMBOL_UNUSED( len ); HB_SYMBOL_UNUSED( flags ); HB_SYMBOL_UNUSED( timeout ); - hb_socketSetRawError( HB_SOCKET_ERR_INVALIDHANDLE ); + hb_socketSetError( HB_SOCKET_ERR_INVALIDHANDLE ); return -1; } @@ -577,7 +577,7 @@ long hb_socketSendTo( HB_SOCKET sd, const void * data, long len, int flags, cons HB_SYMBOL_UNUSED( pSockAddr ); HB_SYMBOL_UNUSED( uiSockLen ); HB_SYMBOL_UNUSED( timeout ); - hb_socketSetRawError( HB_SOCKET_ERR_INVALIDHANDLE ); + hb_socketSetError( HB_SOCKET_ERR_INVALIDHANDLE ); return -1; } @@ -588,7 +588,7 @@ long hb_socketRecv( HB_SOCKET sd, void * data, long len, int flags, HB_MAXINT ti HB_SYMBOL_UNUSED( len ); HB_SYMBOL_UNUSED( flags ); HB_SYMBOL_UNUSED( timeout ); - hb_socketSetRawError( HB_SOCKET_ERR_INVALIDHANDLE ); + hb_socketSetError( HB_SOCKET_ERR_INVALIDHANDLE ); return -1; } @@ -599,7 +599,7 @@ long hb_socketRecvFrom( HB_SOCKET sd, void * data, long len, int flags, void ** HB_SYMBOL_UNUSED( len ); HB_SYMBOL_UNUSED( flags ); HB_SYMBOL_UNUSED( timeout ); - hb_socketSetRawError( HB_SOCKET_ERR_INVALIDHANDLE ); + hb_socketSetError( HB_SOCKET_ERR_INVALIDHANDLE ); *pSockAddr = NULL; *puiSockLen = 0; return -1; @@ -609,7 +609,7 @@ int hb_socketSetBlockingIO( HB_SOCKET sd, HB_BOOL fBlocking ) { HB_SYMBOL_UNUSED( sd ); HB_SYMBOL_UNUSED( fBlocking ); - hb_socketSetRawError( HB_SOCKET_ERR_INVALIDHANDLE ); + hb_socketSetError( HB_SOCKET_ERR_INVALIDHANDLE ); return -1; } @@ -617,7 +617,7 @@ int hb_socketSetNoDelay( HB_SOCKET sd, HB_BOOL fNoDelay ) { HB_SYMBOL_UNUSED( sd ); HB_SYMBOL_UNUSED( fNoDelay ); - hb_socketSetRawError( HB_SOCKET_ERR_INVALIDHANDLE ); + hb_socketSetError( HB_SOCKET_ERR_INVALIDHANDLE ); return -1; } @@ -625,7 +625,7 @@ int hb_socketSetExclusiveAddr( HB_SOCKET sd, HB_BOOL fExclusive ) { HB_SYMBOL_UNUSED( sd ); HB_SYMBOL_UNUSED( fExclusive ); - hb_socketSetRawError( HB_SOCKET_ERR_INVALIDHANDLE ); + hb_socketSetError( HB_SOCKET_ERR_INVALIDHANDLE ); return -1; } @@ -633,7 +633,7 @@ int hb_socketSetReuseAddr( HB_SOCKET sd, HB_BOOL fReuse ) { HB_SYMBOL_UNUSED( sd ); HB_SYMBOL_UNUSED( fReuse ); - hb_socketSetRawError( HB_SOCKET_ERR_INVALIDHANDLE ); + hb_socketSetError( HB_SOCKET_ERR_INVALIDHANDLE ); return -1; } @@ -641,7 +641,7 @@ int hb_socketSetKeepAlive( HB_SOCKET sd, HB_BOOL fKeepAlive ) { HB_SYMBOL_UNUSED( sd ); HB_SYMBOL_UNUSED( fKeepAlive ); - hb_socketSetRawError( HB_SOCKET_ERR_INVALIDHANDLE ); + hb_socketSetError( HB_SOCKET_ERR_INVALIDHANDLE ); return -1; } @@ -649,7 +649,7 @@ int hb_socketSetBroadcast( HB_SOCKET sd, HB_BOOL fBroadcast ) { HB_SYMBOL_UNUSED( sd ); HB_SYMBOL_UNUSED( fBroadcast ); - hb_socketSetRawError( HB_SOCKET_ERR_INVALIDHANDLE ); + hb_socketSetError( HB_SOCKET_ERR_INVALIDHANDLE ); return -1; } @@ -657,7 +657,7 @@ int hb_socketSetSndBufSize( HB_SOCKET sd, int iSize ) { HB_SYMBOL_UNUSED( sd ); HB_SYMBOL_UNUSED( iSize ); - hb_socketSetRawError( HB_SOCKET_ERR_INVALIDHANDLE ); + hb_socketSetError( HB_SOCKET_ERR_INVALIDHANDLE ); return -1; } @@ -665,7 +665,7 @@ int hb_socketSetRcvBufSize( HB_SOCKET sd, int iSize ) { HB_SYMBOL_UNUSED( sd ); HB_SYMBOL_UNUSED( iSize ); - hb_socketSetRawError( HB_SOCKET_ERR_INVALIDHANDLE ); + hb_socketSetError( HB_SOCKET_ERR_INVALIDHANDLE ); return -1; } @@ -673,7 +673,7 @@ int hb_socketGetSndBufSize( HB_SOCKET sd, int * piSize ) { HB_SYMBOL_UNUSED( sd ); HB_SYMBOL_UNUSED( piSize ); - hb_socketSetRawError( HB_SOCKET_ERR_INVALIDHANDLE ); + hb_socketSetError( HB_SOCKET_ERR_INVALIDHANDLE ); return -1; } @@ -681,7 +681,7 @@ int hb_socketGetRcvBufSize( HB_SOCKET sd, int * piSize ) { HB_SYMBOL_UNUSED( sd ); HB_SYMBOL_UNUSED( piSize ); - hb_socketSetRawError( HB_SOCKET_ERR_INVALIDHANDLE ); + hb_socketSetError( HB_SOCKET_ERR_INVALIDHANDLE ); return -1; } @@ -690,7 +690,7 @@ int hb_socketSetMulticast( HB_SOCKET sd, int af, const char * szAddr ) HB_SYMBOL_UNUSED( sd ); HB_SYMBOL_UNUSED( af ); HB_SYMBOL_UNUSED( szAddr ); - hb_socketSetRawError( HB_SOCKET_ERR_INVALIDHANDLE ); + hb_socketSetError( HB_SOCKET_ERR_INVALIDHANDLE ); return -1; } @@ -698,7 +698,7 @@ int hb_socketSelectRead( HB_SOCKET sd, HB_MAXINT timeout ) { HB_SYMBOL_UNUSED( sd ); HB_SYMBOL_UNUSED( timeout ); - hb_socketSetRawError( HB_SOCKET_ERR_INVALIDHANDLE ); + hb_socketSetError( HB_SOCKET_ERR_INVALIDHANDLE ); return -1; } @@ -706,7 +706,7 @@ int hb_socketSelectWrite( HB_SOCKET sd, HB_MAXINT timeout ) { HB_SYMBOL_UNUSED( sd ); HB_SYMBOL_UNUSED( timeout ); - hb_socketSetRawError( HB_SOCKET_ERR_INVALIDHANDLE ); + hb_socketSetError( HB_SOCKET_ERR_INVALIDHANDLE ); return -1; } @@ -715,7 +715,7 @@ int hb_socketSelectWriteEx( HB_SOCKET sd, HB_MAXINT timeout ) { HB_SYMBOL_UNUSED( sd ); HB_SYMBOL_UNUSED( timeout ); - hb_socketSetRawError( HB_SOCKET_ERR_INVALIDHANDLE ); + hb_socketSetError( HB_SOCKET_ERR_INVALIDHANDLE ); return -1; } @@ -732,7 +732,7 @@ int hb_socketSelect( PHB_ITEM pArrayRD, HB_BOOL fSetRD, HB_SYMBOL_UNUSED( fSetEX ); HB_SYMBOL_UNUSED( timeout ); HB_SYMBOL_UNUSED( pFunc ); - hb_socketSetRawError( HB_SOCKET_ERR_NOSUPPORT ); + hb_socketSetError( HB_SOCKET_ERR_NOSUPPORT ); return -1; } @@ -740,7 +740,7 @@ HB_BOOL hb_socketResolveInetAddr( void ** pSockAddr, unsigned * puiLen, const ch { HB_SYMBOL_UNUSED( szAddr ); HB_SYMBOL_UNUSED( iPort ); - hb_socketSetRawError( HB_SOCKET_ERR_AFNOSUPPORT ); + hb_socketSetError( HB_SOCKET_ERR_AFNOSUPPORT ); *pSockAddr = NULL; *puiLen = 0; return HB_FALSE; @@ -750,7 +750,7 @@ char * hb_socketResolveAddr( const char * szAddr, int af ) { HB_SYMBOL_UNUSED( szAddr ); HB_SYMBOL_UNUSED( af ); - hb_socketSetRawError( HB_SOCKET_ERR_AFNOSUPPORT ); + hb_socketSetError( HB_SOCKET_ERR_AFNOSUPPORT ); return NULL; } @@ -758,7 +758,7 @@ PHB_ITEM hb_socketGetHosts( const char * szAddr, int af ) { HB_SYMBOL_UNUSED( szAddr ); HB_SYMBOL_UNUSED( af ); - hb_socketSetRawError( HB_SOCKET_ERR_AFNOSUPPORT ); + hb_socketSetError( HB_SOCKET_ERR_AFNOSUPPORT ); return NULL; } @@ -766,7 +766,7 @@ PHB_ITEM hb_socketGetAliases( const char * szAddr, int af ) { HB_SYMBOL_UNUSED( szAddr ); HB_SYMBOL_UNUSED( af ); - hb_socketSetRawError( HB_SOCKET_ERR_AFNOSUPPORT ); + hb_socketSetError( HB_SOCKET_ERR_AFNOSUPPORT ); return NULL; } @@ -774,7 +774,7 @@ char * hb_socketGetHostName( const void * pSockAddr, unsigned len ) { HB_SYMBOL_UNUSED( pSockAddr ); HB_SYMBOL_UNUSED( len ); - hb_socketSetRawError( HB_SOCKET_ERR_AFNOSUPPORT ); + hb_socketSetError( HB_SOCKET_ERR_AFNOSUPPORT ); return NULL; } @@ -782,7 +782,7 @@ PHB_ITEM hb_socketGetIFaces( int af, HB_BOOL fNoAliases ) { HB_SYMBOL_UNUSED( af ); HB_SYMBOL_UNUSED( fNoAliases ); - hb_socketSetRawError( HB_SOCKET_ERR_AFNOSUPPORT ); + hb_socketSetError( HB_SOCKET_ERR_AFNOSUPPORT ); return NULL; } @@ -1698,7 +1698,7 @@ HB_BOOL hb_socketLocalAddr( void ** pSockAddr, unsigned * puiLen, HB_SYMBOL_UNUSED( szAddr ); *pSockAddr = NULL; *puiLen = 0; - hb_socketSetRawError( HB_SOCKET_ERR_AFNOSUPPORT ); + hb_socketSetError( HB_SOCKET_ERR_AFNOSUPPORT ); return HB_FALSE; #endif } @@ -1736,12 +1736,12 @@ HB_BOOL hb_socketInetAddr( void ** pSockAddr, unsigned * puiLen, return HB_TRUE; } else - hb_socketSetRawError( HB_SOCKET_ERR_WRONGADDR ); + hb_socketSetError( HB_SOCKET_ERR_WRONGADDR ); } #else HB_SYMBOL_UNUSED( szAddr ); HB_SYMBOL_UNUSED( iPort ); - hb_socketSetRawError( HB_SOCKET_ERR_AFNOSUPPORT ); + hb_socketSetError( HB_SOCKET_ERR_AFNOSUPPORT ); #endif *pSockAddr = NULL; *puiLen = 0; @@ -1781,9 +1781,9 @@ HB_BOOL hb_socketInet6Addr( void ** pSockAddr, unsigned * puiLen, return HB_TRUE; } else if( err == 0 ) - hb_socketSetRawError( HB_SOCKET_ERR_WRONGADDR ); + hb_socketSetError( HB_SOCKET_ERR_WRONGADDR ); else - hb_socketSetRawError( HB_SOCKET_ERR_AFNOSUPPORT ); + hb_socketSetError( HB_SOCKET_ERR_AFNOSUPPORT ); #else int iTODO; #endif @@ -1791,7 +1791,7 @@ HB_BOOL hb_socketInet6Addr( void ** pSockAddr, unsigned * puiLen, #else HB_SYMBOL_UNUSED( szAddr ); HB_SYMBOL_UNUSED( iPort ); - hb_socketSetRawError( HB_SOCKET_ERR_AFNOSUPPORT ); + hb_socketSetError( HB_SOCKET_ERR_AFNOSUPPORT ); #endif *pSockAddr = NULL; *puiLen = 0; @@ -1867,7 +1867,7 @@ char * hb_socketAddrGetName( const void * pSockAddr, unsigned len ) break; #endif } - hb_socketSetRawError( szName ? 0 : HB_SOCKET_ERR_AFNOSUPPORT ); + hb_socketSetError( szName ? 0 : HB_SOCKET_ERR_AFNOSUPPORT ); return szName; } @@ -1906,7 +1906,7 @@ int hb_socketAddrGetPort( const void * pSockAddr, unsigned len ) break; #endif } - hb_socketSetRawError( iPort != -1 ? 0 : HB_SOCKET_ERR_AFNOSUPPORT ); + hb_socketSetError( iPort != -1 ? 0 : HB_SOCKET_ERR_AFNOSUPPORT ); return iPort; } @@ -1944,7 +1944,7 @@ HB_BOOL hb_socketAddrFromItem( void ** pSockAddr, unsigned * puiLen, PHB_ITEM pA } } } - hb_socketSetRawError( fOK ? 0 : HB_SOCKET_ERR_AFNOSUPPORT ); + hb_socketSetError( fOK ? 0 : HB_SOCKET_ERR_AFNOSUPPORT ); return fOK; } @@ -2028,7 +2028,7 @@ PHB_ITEM hb_socketAddrToItem( const void * pSockAddr, unsigned len ) break; #endif } - hb_socketSetRawError( pAddrItm ? 0 : HB_SOCKET_ERR_AFNOSUPPORT ); + hb_socketSetError( pAddrItm ? 0 : HB_SOCKET_ERR_AFNOSUPPORT ); return pAddrItm; } @@ -2061,7 +2061,7 @@ int hb_socketGetPeerName( HB_SOCKET sd, void ** pSockAddr, unsigned * puiLen ) #if defined( HB_OS_LINUX ) && defined( __WATCOMC__ ) && ( __WATCOMC__ <= 1290 ) /* it's still not supported by Linux OpenWatcom port :-( */ ret = -1; - hb_socketSetRawError( HB_SOCKET_ERR_NOSUPPORT ); + hb_socketSetError( HB_SOCKET_ERR_NOSUPPORT ); #else HB_SOCKADDR_STORAGE st; socklen_t len = sizeof( st ); @@ -2103,7 +2103,7 @@ HB_SOCKET hb_socketOpen( int domain, int type, int protocol ) hb_socketSetOsError( sd != HB_NO_SOCKET ? 0 : HB_SOCK_GETERROR() ); } else - hb_socketSetRawError( err ); + hb_socketSetError( err ); return sd; } @@ -2173,7 +2173,7 @@ int hb_socketShutdown( HB_SOCKET sd, int iMode ) #endif else { - hb_socketSetRawError( HB_SOCKET_ERR_PARAMVALUE ); + hb_socketSetError( HB_SOCKET_ERR_PARAMVALUE ); return -1; } @@ -2182,7 +2182,7 @@ int hb_socketShutdown( HB_SOCKET sd, int iMode ) int iTODO; /* it's still not supported by Linux OpenWatcom port :-( */ ret = -1; - hb_socketSetRawError( HB_SOCKET_ERR_NOSUPPORT ); + hb_socketSetError( HB_SOCKET_ERR_NOSUPPORT ); } #else hb_vmUnlock(); @@ -2262,7 +2262,7 @@ HB_SOCKET hb_socketAccept( HB_SOCKET sd, void ** pSockAddr, unsigned * puiLen, H hb_socketSetOsError( err ); } else if( ret == 0 ) - hb_socketSetRawError( HB_SOCKET_ERR_TIMEOUT ); + hb_socketSetError( HB_SOCKET_ERR_TIMEOUT ); hb_vmLock(); return newsd; } @@ -2288,12 +2288,12 @@ int hb_socketConnect( HB_SOCKET sd, const void * pSockAddr, unsigned uiLen, HB_M ret = hb_socketSelectWRE( sd, timeout ); if( ret > 0 ) { - hb_socketSetRawError( 0 ); + hb_socketSetError( 0 ); ret = 0; } else if( ret == 0 ) { - hb_socketSetRawError( HB_SOCKET_ERR_TIMEOUT ); + hb_socketSetError( HB_SOCKET_ERR_TIMEOUT ); ret = -1; } } @@ -2308,7 +2308,7 @@ int hb_socketConnect( HB_SOCKET sd, const void * pSockAddr, unsigned uiLen, HB_M if( err ) hb_socketSetOsError( err ); else - hb_socketSetRawError( rawerr ); + hb_socketSetError( rawerr ); } hb_vmLock(); @@ -2326,7 +2326,7 @@ long hb_socketSend( HB_SOCKET sd, const void * data, long len, int flags, HB_MAX lSent = hb_socketSelectWR( sd, timeout ); if( lSent == 0 ) { - hb_socketSetRawError( HB_SOCKET_ERR_TIMEOUT ); + hb_socketSetError( HB_SOCKET_ERR_TIMEOUT ); lSent = -1; } } @@ -2368,7 +2368,7 @@ long hb_socketSendTo( HB_SOCKET sd, const void * data, long len, int flags, lSent = hb_socketSelectWR( sd, timeout ); if( lSent == 0 ) { - hb_socketSetRawError( HB_SOCKET_ERR_TIMEOUT ); + hb_socketSetError( HB_SOCKET_ERR_TIMEOUT ); lSent = -1; } } @@ -2406,7 +2406,7 @@ long hb_socketRecv( HB_SOCKET sd, void * data, long len, int flags, HB_MAXINT ti lReceived = hb_socketSelectRD( sd, timeout ); if( lReceived == 0 ) { - hb_socketSetRawError( HB_SOCKET_ERR_TIMEOUT ); + hb_socketSetError( HB_SOCKET_ERR_TIMEOUT ); lReceived = -1; } } @@ -2445,7 +2445,7 @@ long hb_socketRecvFrom( HB_SOCKET sd, void * data, long len, int flags, void ** lReceived = hb_socketSelectRD( sd, timeout ); if( lReceived == 0 ) { - hb_socketSetRawError( HB_SOCKET_ERR_TIMEOUT ); + hb_socketSetError( HB_SOCKET_ERR_TIMEOUT ); lReceived = -1; } } @@ -2522,7 +2522,7 @@ int hb_socketSetBlockingIO( HB_SOCKET sd, HB_BOOL fBlocking ) int iTODO; HB_SYMBOL_UNUSED( sd ); HB_SYMBOL_UNUSED( fBlocking ); - hb_socketSetRawError( HB_SOCKET_ERR_NOSUPPORT ); + hb_socketSetError( HB_SOCKET_ERR_NOSUPPORT ); ret = -1; #endif return ret; @@ -2547,7 +2547,7 @@ int hb_socketSetNoDelay( HB_SOCKET sd, HB_BOOL fNoDelay ) int iTODO; HB_SYMBOL_UNUSED( sd ); HB_SYMBOL_UNUSED( fNoDelay ); - hb_socketSetRawError( HB_SOCKET_ERR_NOSUPPORT ); + hb_socketSetError( HB_SOCKET_ERR_NOSUPPORT ); ret = -1; #endif return ret; @@ -2568,7 +2568,7 @@ int hb_socketSetExclusiveAddr( HB_SOCKET sd, HB_BOOL fExclusive ) #else HB_SYMBOL_UNUSED( sd ); HB_SYMBOL_UNUSED( fExclusive ); - hb_socketSetRawError( HB_SOCKET_ERR_NOSUPPORT ); + hb_socketSetError( HB_SOCKET_ERR_NOSUPPORT ); ret = -1; #endif #else @@ -2593,7 +2593,7 @@ int hb_socketSetReuseAddr( HB_SOCKET sd, HB_BOOL fReuse ) */ HB_SYMBOL_UNUSED( sd ); HB_SYMBOL_UNUSED( fReuse ); - hb_socketSetRawError( HB_SOCKET_ERR_NOSUPPORT ); + hb_socketSetError( HB_SOCKET_ERR_NOSUPPORT ); ret = -1; #else { @@ -2707,9 +2707,9 @@ int hb_socketSetMulticast( HB_SOCKET sd, int af, const char * szAddr ) return ret; } else if( err == 0 ) - hb_socketSetRawError( HB_SOCKET_ERR_WRONGADDR ); + hb_socketSetError( HB_SOCKET_ERR_WRONGADDR ); else - hb_socketSetRawError( HB_SOCKET_ERR_AFNOSUPPORT ); + hb_socketSetError( HB_SOCKET_ERR_AFNOSUPPORT ); return -1; #else int iTODO; @@ -2717,7 +2717,7 @@ int hb_socketSetMulticast( HB_SOCKET sd, int af, const char * szAddr ) } #endif - hb_socketSetRawError( HB_SOCKET_ERR_AFNOSUPPORT ); + hb_socketSetError( HB_SOCKET_ERR_AFNOSUPPORT ); return -1; } @@ -2836,7 +2836,7 @@ int hb_socketSelect( PHB_ITEM pArrayRD, HB_BOOL fSetRD, } else { - hb_socketSetRawError( HB_SOCKET_ERR_INVALIDHANDLE ); + hb_socketSetError( HB_SOCKET_ERR_INVALIDHANDLE ); pSet[ 0 ] = pSet[ 1 ] = pSet[ 2 ] = HB_FALSE; ret = -1; } @@ -2942,7 +2942,7 @@ HB_BOOL hb_socketResolveInetAddr( void ** pSockAddr, unsigned * puiLen, const ch #else HB_SYMBOL_UNUSED( szAddr ); HB_SYMBOL_UNUSED( iPort ); - hb_socketSetRawError( HB_SOCKET_ERR_AFNOSUPPORT ); + hb_socketSetError( HB_SOCKET_ERR_AFNOSUPPORT ); #endif *pSockAddr = NULL; *puiLen = 0; @@ -3182,7 +3182,7 @@ PHB_ITEM hb_socketGetAliases( const char * szAddr, int af ) /* TODO: implement it */ HB_SYMBOL_UNUSED( szAddr ); HB_SYMBOL_UNUSED( af ); - hb_socketSetRawError( HB_SOCKET_ERR_AFNOSUPPORT ); + hb_socketSetError( HB_SOCKET_ERR_AFNOSUPPORT ); return NULL; } @@ -3685,7 +3685,7 @@ PHB_ITEM hb_socketGetIFaces( int af, HB_BOOL fNoAliases ) int iTODO; HB_SYMBOL_UNUSED( af ); HB_SYMBOL_UNUSED( fNoAliases ); - hb_socketSetRawError( HB_SOCKET_ERR_AFNOSUPPORT ); + hb_socketSetError( HB_SOCKET_ERR_AFNOSUPPORT ); #endif if( pItem ) diff --git a/src/rtl/hbsockhb.c b/src/rtl/hbsockhb.c index 35ea9a5b42..1a02dbd088 100644 --- a/src/rtl/hbsockhb.c +++ b/src/rtl/hbsockhb.c @@ -160,7 +160,7 @@ static HB_BOOL socketaddrParam( int iParam, void ** pAddr, unsigned int * puiLen } -static void socket_exit( void * cargo ) +static void s_socket_exit( void * cargo ) { HB_SYMBOL_UNUSED( cargo ); @@ -171,16 +171,20 @@ static void socket_exit( void * cargo ) } } -static void socket_init( void ) +static void s_socket_init( void ) { if( ! s_fInit ) { hb_socketInit(); - hb_vmAtQuit( socket_exit, NULL ); + hb_vmAtQuit( s_socket_exit, NULL ); s_fInit = HB_TRUE; } } +void hb_socketAutoInit( void ) +{ + s_socket_init(); +} HB_FUNC( HB_SOCKETGETERROR ) { @@ -259,7 +263,7 @@ HB_FUNC( HB_SOCKETOPEN ) int iType = hb_parnidef( 2, HB_SOCKET_PT_STREAM ); int iProtocol = hb_parni( 3 ); - socket_init(); + s_socket_init(); if( ( socket = hb_socketOpen( iDomain, iType, iProtocol ) ) != HB_NO_SOCKET ) hb_socketItemPut( hb_stackReturnItem(), socket ); else @@ -602,7 +606,7 @@ static HB_SOCKET socketSelectCallback( PHB_ITEM pItem ) HB_FUNC( HB_SOCKETSELECT ) { - socket_init(); + s_socket_init(); hb_retni( hb_socketSelect( hb_param( 1, HB_IT_ARRAY ), hb_parl( 2 ), hb_param( 3, HB_IT_ARRAY ), hb_parl( 4 ), hb_param( 5, HB_IT_ARRAY ), hb_parl( 6 ), @@ -614,7 +618,7 @@ HB_FUNC( HB_SOCKETRESOLVEINETADDR ) void * addr; unsigned int len; - socket_init(); + s_socket_init(); if( hb_socketResolveInetAddr( &addr, &len, hb_parc( 1 ), hb_parni( 2 ) ) ) { PHB_ITEM pItem = hb_socketAddrToItem( addr, len ); @@ -635,7 +639,7 @@ HB_FUNC( HB_SOCKETRESOLVEADDR ) { char * szAddr; - socket_init(); + s_socket_init(); szAddr = hb_socketResolveAddr( hb_parc( 1 ), hb_parnidef( 2, HB_SOCKET_AF_INET ) ); if( szAddr ) hb_retc_buffer( szAddr ); @@ -669,7 +673,7 @@ HB_FUNC( HB_SOCKETGETHOSTS ) { PHB_ITEM pItem; - socket_init(); + s_socket_init(); pItem = hb_socketGetHosts( szAddr, hb_parnidef( 2, HB_SOCKET_AF_INET ) ); if( pItem ) hb_itemReturnRelease( pItem ); @@ -690,7 +694,7 @@ HB_FUNC( HB_SOCKETGETALIASES ) { PHB_ITEM pItem; - socket_init(); + s_socket_init(); pItem = hb_socketGetAliases( szAddr, hb_parnidef( 2, HB_SOCKET_AF_INET ) ); if( pItem ) hb_itemReturnRelease( pItem ); @@ -706,7 +710,7 @@ HB_FUNC( HB_SOCKETGETIFACES ) { PHB_ITEM pItem; - socket_init(); + s_socket_init(); pItem = hb_socketGetIFaces( hb_parni( 1 ), hb_parl( 2 ) ); if( pItem ) hb_itemReturnRelease( pItem );