2023-01-17 13:10 UTC-0300 Lailton Fernando Mariano (lailton/at/paysoft.com.br)
* include/hbsocket.h
* src/harbour.def
* src/rtl/hbsocket.c
* src/rtl/hbsockhb.c
+ added functions: Harbour socket API
HB_SOCKETSETNOSIGPIPE( hSocket, lValue ) --> lSuccess
This commit is contained in:
@@ -7,6 +7,14 @@
|
|||||||
Entries may not always be in chronological/commit order.
|
Entries may not always be in chronological/commit order.
|
||||||
See license at the end of file. */
|
See license at the end of file. */
|
||||||
|
|
||||||
|
2023-01-17 13:10 UTC-0300 Lailton Fernando Mariano (lailton/at/paysoft.com.br)
|
||||||
|
* include/hbsocket.h
|
||||||
|
* src/harbour.def
|
||||||
|
* src/rtl/hbsocket.c
|
||||||
|
* src/rtl/hbsockhb.c
|
||||||
|
+ added functions: Harbour socket API
|
||||||
|
HB_SOCKETSETNOSIGPIPE( hSocket, lValue ) --> lSuccess
|
||||||
|
|
||||||
2023-01-17 13:00 UTC-0300 Lailton Fernando Mariano (lailton/at/paysoft.com.br)
|
2023-01-17 13:00 UTC-0300 Lailton Fernando Mariano (lailton/at/paysoft.com.br)
|
||||||
* contrib/hbcurl/hbcurl.hbm
|
* contrib/hbcurl/hbcurl.hbm
|
||||||
* contrib/hbssl/hbssl.hbm
|
* contrib/hbssl/hbssl.hbm
|
||||||
|
|||||||
@@ -99,6 +99,7 @@ extern HB_EXPORT long hb_socketRecv( HB_SOCKET sd, void * data, long len
|
|||||||
extern HB_EXPORT long hb_socketRecvFrom( HB_SOCKET sd, void * data, long len, int flags, void ** pSockAddr, unsigned * puiSockLen, HB_MAXINT timeout );
|
extern HB_EXPORT long hb_socketRecvFrom( HB_SOCKET sd, void * data, long len, int flags, void ** pSockAddr, unsigned * puiSockLen, HB_MAXINT timeout );
|
||||||
extern HB_EXPORT int hb_socketSetBlockingIO( HB_SOCKET sd, HB_BOOL fBlocking );
|
extern HB_EXPORT int hb_socketSetBlockingIO( HB_SOCKET sd, HB_BOOL fBlocking );
|
||||||
extern HB_EXPORT int hb_socketSetNoDelay( HB_SOCKET sd, HB_BOOL fNoDelay );
|
extern HB_EXPORT int hb_socketSetNoDelay( HB_SOCKET sd, HB_BOOL fNoDelay );
|
||||||
|
extern HB_EXPORT int hb_socketSetNoSigPipe( HB_SOCKET sd, HB_BOOL fNoSigPipe );
|
||||||
extern HB_EXPORT int hb_socketSetExclusiveAddr( HB_SOCKET sd, HB_BOOL fExclusive );
|
extern HB_EXPORT int hb_socketSetExclusiveAddr( HB_SOCKET sd, HB_BOOL fExclusive );
|
||||||
extern HB_EXPORT int hb_socketSetReuseAddr( HB_SOCKET sd, HB_BOOL fReuse );
|
extern HB_EXPORT int hb_socketSetReuseAddr( HB_SOCKET sd, HB_BOOL fReuse );
|
||||||
extern HB_EXPORT int hb_socketSetKeepAlive( HB_SOCKET sd, HB_BOOL fKeepAlive );
|
extern HB_EXPORT int hb_socketSetKeepAlive( HB_SOCKET sd, HB_BOOL fKeepAlive );
|
||||||
|
|||||||
@@ -1041,6 +1041,7 @@ HB_FUN_HB_SOCKETSETFILTER
|
|||||||
HB_FUN_HB_SOCKETSETKEEPALIVE
|
HB_FUN_HB_SOCKETSETKEEPALIVE
|
||||||
HB_FUN_HB_SOCKETSETMULTICAST
|
HB_FUN_HB_SOCKETSETMULTICAST
|
||||||
HB_FUN_HB_SOCKETSETNODELAY
|
HB_FUN_HB_SOCKETSETNODELAY
|
||||||
|
HB_FUN_HB_SOCKETSETNOSIGPIPE
|
||||||
HB_FUN_HB_SOCKETSETRCVBUFSIZE
|
HB_FUN_HB_SOCKETSETRCVBUFSIZE
|
||||||
HB_FUN_HB_SOCKETSETREUSEADDR
|
HB_FUN_HB_SOCKETSETREUSEADDR
|
||||||
HB_FUN_HB_SOCKETSETSNDBUFSIZE
|
HB_FUN_HB_SOCKETSETSNDBUFSIZE
|
||||||
@@ -3305,6 +3306,7 @@ hb_socketSetExclusiveAddr
|
|||||||
hb_socketSetKeepAlive
|
hb_socketSetKeepAlive
|
||||||
hb_socketSetMulticast
|
hb_socketSetMulticast
|
||||||
hb_socketSetNoDelay
|
hb_socketSetNoDelay
|
||||||
|
hb_socketSetNoSigPipe
|
||||||
hb_socketSetRcvBufSize
|
hb_socketSetRcvBufSize
|
||||||
hb_socketSetReuseAddr
|
hb_socketSetReuseAddr
|
||||||
hb_socketSetSndBufSize
|
hb_socketSetSndBufSize
|
||||||
|
|||||||
@@ -650,6 +650,14 @@ int hb_socketSetNoDelay( HB_SOCKET sd, HB_BOOL fNoDelay )
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int hb_socketSetNoSigPipe( HB_SOCKET sd, HB_BOOL fNoSigPipe )
|
||||||
|
{
|
||||||
|
HB_SYMBOL_UNUSED( sd );
|
||||||
|
HB_SYMBOL_UNUSED( fNoSigPipe );
|
||||||
|
hb_socketSetError( HB_SOCKET_ERR_INVALIDHANDLE );
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
int hb_socketSetExclusiveAddr( HB_SOCKET sd, HB_BOOL fExclusive )
|
int hb_socketSetExclusiveAddr( HB_SOCKET sd, HB_BOOL fExclusive )
|
||||||
{
|
{
|
||||||
HB_SYMBOL_UNUSED( sd );
|
HB_SYMBOL_UNUSED( sd );
|
||||||
@@ -2848,6 +2856,21 @@ int hb_socketSetNoDelay( HB_SOCKET sd, HB_BOOL fNoDelay )
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int hb_socketSetNoSigPipe( HB_SOCKET sd, HB_BOOL fNoSigPipe )
|
||||||
|
{
|
||||||
|
#if defined( SO_NOSIGPIPE )
|
||||||
|
int val = fNoSigPipe ? 1 : 0, ret;
|
||||||
|
ret = setsockopt( sd, SOL_SOCKET, SO_NOSIGPIPE, ( const char * ) &val, sizeof( val ) );
|
||||||
|
hb_socketSetOsError( ret != -1 ? 0 : HB_SOCK_GETERROR() );
|
||||||
|
return ret;
|
||||||
|
#else
|
||||||
|
HB_SYMBOL_UNUSED( sd );
|
||||||
|
HB_SYMBOL_UNUSED( fNoSigPipe );
|
||||||
|
hb_socketSetError( HB_SOCKET_ERR_NOSUPPORT );
|
||||||
|
return -1;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
/* NOTE: For notes on Windows, see:
|
/* NOTE: For notes on Windows, see:
|
||||||
https://msdn.microsoft.com/library/ms740621
|
https://msdn.microsoft.com/library/ms740621
|
||||||
[vszakats] */
|
[vszakats] */
|
||||||
|
|||||||
@@ -63,6 +63,7 @@
|
|||||||
* hb_socketRecvFrom( hSocket, @cBuffer, [ nLen = Len( cBuffer ) ], [ nFlags = 0 ], @aAddr, [ nTimeout = FOREVER ] ) --> nBytesRecv
|
* hb_socketRecvFrom( hSocket, @cBuffer, [ nLen = Len( cBuffer ) ], [ nFlags = 0 ], @aAddr, [ nTimeout = FOREVER ] ) --> nBytesRecv
|
||||||
* hb_socketSetBlockingIO( hSocket, lValue ) --> nSuccess
|
* hb_socketSetBlockingIO( hSocket, lValue ) --> nSuccess
|
||||||
* hb_socketSetNoDelay( hSocket, lValue ) --> lSuccess
|
* hb_socketSetNoDelay( hSocket, lValue ) --> lSuccess
|
||||||
|
* hb_socketSetNoSigPipe( hSocket, lValue ) --> lSuccess
|
||||||
* hb_socketSetExclusiveAddr( hSocket, lValue ) --> lSuccess
|
* hb_socketSetExclusiveAddr( hSocket, lValue ) --> lSuccess
|
||||||
* hb_socketSetReuseAddr( hSocket, lValue ) --> lSuccess
|
* hb_socketSetReuseAddr( hSocket, lValue ) --> lSuccess
|
||||||
* hb_socketSetKeepAlive( hSocket, lValue ) --> lSuccess
|
* hb_socketSetKeepAlive( hSocket, lValue ) --> lSuccess
|
||||||
@@ -1193,6 +1194,14 @@ HB_FUNC( HB_SOCKETSETNODELAY )
|
|||||||
hb_retl( hb_socketSetNoDelay( socket, hb_parl( 2 ) ) == 0 );
|
hb_retl( hb_socketSetNoDelay( socket, hb_parl( 2 ) ) == 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HB_FUNC( HB_SOCKETSETNOSIGPIPE )
|
||||||
|
{
|
||||||
|
HB_SOCKET socket = hb_socketParam( 1 );
|
||||||
|
|
||||||
|
if( socket != HB_NO_SOCKET )
|
||||||
|
hb_retl( hb_socketSetNoSigPipe( socket, hb_parl( 2 ) ) == 0 );
|
||||||
|
}
|
||||||
|
|
||||||
HB_FUNC( HB_SOCKETSETEXCLUSIVEADDR )
|
HB_FUNC( HB_SOCKETSETEXCLUSIVEADDR )
|
||||||
{
|
{
|
||||||
HB_SOCKET socket = hb_socketParam( 1 );
|
HB_SOCKET socket = hb_socketParam( 1 );
|
||||||
|
|||||||
Reference in New Issue
Block a user