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
This commit is contained in:
Przemysław Czerpak
2015-08-17 15:29:43 +02:00
parent 8bc6d4a0e9
commit 482e06d0fd
5 changed files with 104 additions and 85 deletions

View File

@@ -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

View File

@@ -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 );

View File

@@ -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 );

View File

@@ -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 )

View File

@@ -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 );