2015-10-12 17:22 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)

* src/rtl/hbsocket.c
    * added support for hb_socketGetIFaces() in DOS wattcp/watt-32 builds
This commit is contained in:
Przemysław Czerpak
2015-10-12 17:22:29 +02:00
parent 3abb37f67e
commit fe13ece4b4
2 changed files with 19 additions and 9 deletions

View File

@@ -10,6 +10,10 @@
* Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment
*/
2015-10-12 17:22 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbsocket.c
* added support for hb_socketGetIFaces() in DOS wattcp/watt-32 builds
2015-10-12 13:32 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/mlcfunc.c
* execute hb_MLEval() codeblock for last empty line if passed string

View File

@@ -3271,7 +3271,7 @@ char * hb_socketGetHostName( const void * pSockAddr, unsigned len )
* IFACEs
*/
#if defined( HB_OS_WIN ) || ( defined( SIOCGIFCONF ) && \
!( ( defined( HB_OS_LINUX ) || defined( HB_OS_DOS ) ) && defined( __WATCOMC__ ) ) )
!( defined( HB_OS_LINUX ) && defined( __WATCOMC__ ) ) )
static void hb_socketArraySetInetAddr( PHB_ITEM pItem, HB_SIZE nPos,
const void * pSockAddr, unsigned len )
{
@@ -3347,17 +3347,23 @@ PHB_ITEM hb_socketGetIFaces( int af, HB_BOOL fNoAliases )
* of 'struct ifreq' and SIOCGIF*
*/
#if defined( SIOCGIFCONF ) && \
!( ( defined( HB_OS_LINUX ) || defined( HB_OS_DOS ) ) && defined( __WATCOMC__ ) )
struct ifconf ifc;
struct ifreq * pifr;
char * buf, * ptr;
const char * pLastName = NULL;
int len = 0, size, iLastName = 0, iLastFamily = 0, flags, family;
!( defined( HB_OS_LINUX ) && defined( __WATCOMC__ ) )
HB_SOCKET sd;
sd = hb_socketOpen( af ? af : HB_SOCKET_AF_INET, HB_SOCKET_PT_DGRAM, 0 );
if( sd != HB_NO_SOCKET )
{
struct ifconf ifc;
struct ifreq * pifr;
char * buf, * ptr;
const char * pLastName = NULL;
int len = 0, size, iLastName = 0, iLastFamily = 0, flags, family;
# if defined( HB_OS_DOS )
# undef ioctl
# define ioctl( s, cmd, argp ) ioctlsocket( ( s ), ( cmd ), ( char * ) ( argp ) )
# endif
# if defined( HB_SOCKET_TRANSLATE_DOMAIN )
af = hb_socketTransDomain( af, NULL );
# endif
@@ -3371,7 +3377,7 @@ PHB_ITEM hb_socketGetIFaces( int af, HB_BOOL fNoAliases )
buf = ( char * ) hb_xgrab( len );
ifc.ifc_len = len;
ifc.ifc_buf = buf;
ifc.ifc_buf = ( caddr_t ) buf;
/* Warning: On some platforms this code can effectively work only with
* IP4 interfaces and IP6 will need different implementation.
@@ -3379,7 +3385,7 @@ PHB_ITEM hb_socketGetIFaces( int af, HB_BOOL fNoAliases )
if( ioctl( sd, SIOCGIFCONF, &ifc ) != -1 )
{
for( ptr = ifc.ifc_buf, size = ifc.ifc_len; size > 0; )
for( ptr = ( char * ) ifc.ifc_buf, size = ifc.ifc_len; size > 0; )
{
pifr = ( struct ifreq * ) ptr;
family = pifr->ifr_addr.sa_family;