From 2a55eb01e6ce57ddb25e8d3af1713cff0a535ef8 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Tue, 1 Jul 2008 19:05:18 +0000 Subject: [PATCH] 2008-07-01 20:58 UTC+0200 Viktor Szakats (harbour.01 syenar hu) * source/rtl/hbinet.c % Recently added code fixed to use HB_ERR_FUNCNAME. ! Quick fix to recently added code to compile with MSVC. Please review, it seem that get/setsockopt() 4th parameter is void* in Linux but char* in Windows. --- harbour/ChangeLog | 7 +++++++ harbour/source/rtl/hbinet.c | 34 +++++++++++++++++++++++++--------- 2 files changed, 32 insertions(+), 9 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 2eb1c12de2..577aab533f 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,13 @@ 2008-12-31 13:59 UTC+0100 Foo Bar */ +2008-07-01 20:58 UTC+0200 Viktor Szakats (harbour.01 syenar hu) + * source/rtl/hbinet.c + % Recently added code fixed to use HB_ERR_FUNCNAME. + ! Quick fix to recently added code to compile with MSVC. + Please review, it seem that get/setsockopt() 4th parameter + is void* in Linux but char* in Windows. + 2008-07-01 20:48 UTC+0200 Viktor Szakats (harbour.01 syenar hu) * source/vm/extrap.c ! Fixed MSVC error in new code. diff --git a/harbour/source/rtl/hbinet.c b/harbour/source/rtl/hbinet.c index 6640369e77..df73854f88 100644 --- a/harbour/source/rtl/hbinet.c +++ b/harbour/source/rtl/hbinet.c @@ -778,58 +778,74 @@ HB_FUNC( HB_INETCLEARPERIODCALLBACK ) HB_FUNC( HB_INETGETSNDBUFSIZE ) { - HB_SOCKET_STRUCT *Socket = HB_PARSOCKET( 1 ); + HB_SOCKET_STRUCT * Socket = HB_PARSOCKET( 1 ); if( Socket == NULL ) - hb_errRT_BASE_SubstR( EG_ARG, 3012, NULL, "HB_INETGETSNDBUFSIZE", HB_ERR_ARGS_BASEPARAMS ); + hb_errRT_BASE_SubstR( EG_ARG, 3012, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS ); else { int value; socklen_t len = sizeof( value ); - getsockopt( Socket->com, SOL_SOCKET, SO_SNDBUF, ( void *) &value, &len ); +#if defined( HB_OS_WIN_32 ) + getsockopt( Socket->com, SOL_SOCKET, SO_SNDBUF, ( char * ) &value, &len ); +#else + getsockopt( Socket->com, SOL_SOCKET, SO_SNDBUF, ( void * ) &value, &len ); +#endif hb_retni( value ); } } HB_FUNC( HB_INETGETRCVBUFSIZE ) { - HB_SOCKET_STRUCT *Socket = HB_PARSOCKET( 1 ); + HB_SOCKET_STRUCT * Socket = HB_PARSOCKET( 1 ); if( Socket == NULL ) - hb_errRT_BASE_SubstR( EG_ARG, 3012, NULL, "HB_INETGETRCVBUFSIZE", HB_ERR_ARGS_BASEPARAMS ); + hb_errRT_BASE_SubstR( EG_ARG, 3012, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS ); else { int value; socklen_t len = sizeof( value ); +#if defined( HB_OS_WIN_32 ) + getsockopt( Socket->com, SOL_SOCKET, SO_RCVBUF, ( char * ) &value, &len ); +#else getsockopt( Socket->com, SOL_SOCKET, SO_RCVBUF, ( void * ) &value, &len ); +#endif hb_retni( value ); } } HB_FUNC( HB_INETSETSNDBUFSIZE ) { - HB_SOCKET_STRUCT *Socket = HB_PARSOCKET( 1 ); + HB_SOCKET_STRUCT * Socket = HB_PARSOCKET( 1 ); if( Socket == NULL ) - hb_errRT_BASE_SubstR( EG_ARG, 3012, NULL, "HB_INETSETSNDBUFSIZE", HB_ERR_ARGS_BASEPARAMS ); + hb_errRT_BASE_SubstR( EG_ARG, 3012, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS ); else { int value = hb_parni( 2 ); +#if defined( HB_OS_WIN_32 ) + setsockopt( Socket->com, SOL_SOCKET, SO_SNDBUF, ( char * ) &value, sizeof( value ) ); +#else setsockopt( Socket->com, SOL_SOCKET, SO_SNDBUF, ( void * ) &value, sizeof( value ) ); +#endif hb_retni( value ); } } HB_FUNC( HB_INETSETRCVBUFSIZE ) { - HB_SOCKET_STRUCT *Socket = HB_PARSOCKET( 1 ); + HB_SOCKET_STRUCT * Socket = HB_PARSOCKET( 1 ); if( Socket == NULL ) - hb_errRT_BASE_SubstR( EG_ARG, 3012, NULL, "HB_INETSETRCVBUFSIZE", HB_ERR_ARGS_BASEPARAMS ); + hb_errRT_BASE_SubstR( EG_ARG, 3012, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS ); else { int value = hb_parni( 2 ); +#if defined( HB_OS_WIN_32 ) + setsockopt( Socket->com, SOL_SOCKET, SO_RCVBUF, ( char * ) &value, sizeof( value ) ); +#else setsockopt( Socket->com, SOL_SOCKET, SO_RCVBUF, ( void * ) &value, sizeof( value ) ); +#endif hb_retni( value ); } }