2011-02-06 20:22 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbnetio/utils/hbnetio/netiosrv.prg
* contrib/hbnetio/utils/hbnetio/netiocon.prg
- Deleted filtering on client host name.
* contrib/hbnetio/utils/hbnetio/netiocon.prg
! Fixed RTE when there were no notifications.
This commit is contained in:
@@ -16,6 +16,14 @@
|
||||
The license applies to all entries newer than 2009-04-28.
|
||||
*/
|
||||
|
||||
2011-02-06 20:22 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* contrib/hbnetio/utils/hbnetio/netiosrv.prg
|
||||
* contrib/hbnetio/utils/hbnetio/netiocon.prg
|
||||
- Deleted filtering on client host name.
|
||||
|
||||
* contrib/hbnetio/utils/hbnetio/netiocon.prg
|
||||
! Fixed RTE when there were no notifications.
|
||||
|
||||
2011-02-06 17:10 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* contrib/make.hbs
|
||||
! Fixed RTE regression in recent hbx updates.
|
||||
|
||||
@@ -54,6 +54,8 @@ PROCEDURE hbnetiocon_cmdUI( cIP, nPort, cPassword )
|
||||
LOCAL pConnection
|
||||
LOCAL nStreamID
|
||||
|
||||
LOCAL aNotification
|
||||
|
||||
SET DATE ANSI
|
||||
SET CENTURY ON
|
||||
SET CONFIRM ON
|
||||
@@ -87,14 +89,14 @@ PROCEDURE hbnetiocon_cmdUI( cIP, nPort, cPassword )
|
||||
"logconn" => { "" , "Enable logging incoming connections." , {|| cmdConnLogEnable( pConnection, .T. ) } },;
|
||||
"filt" => { "" , "Show filters." , {|| cmdConnFilters( pConnection, .F. ) } },;
|
||||
"filtadmin" => { "" , "Show filters for management connections." , {|| cmdConnFilters( pConnection, .T. ) } },;
|
||||
"allowadd" => { "<ip|host>" , "Add allow filter" , {| cCommand | cmdConnFilterMod( pConnection, cCommand, "hbnetiomgm_allowadd" ) } },;
|
||||
"allowdel" => { "<ip|host>" , "Remove allow filter" , {| cCommand | cmdConnFilterMod( pConnection, cCommand, "hbnetiomgm_allowdel" ) } },;
|
||||
"blockadd" => { "<ip|host>" , "Add block filter" , {| cCommand | cmdConnFilterMod( pConnection, cCommand, "hbnetiomgm_blockadd" ) } },;
|
||||
"blockdel" => { "<ip|host>" , "Remove block filter" , {| cCommand | cmdConnFilterMod( pConnection, cCommand, "hbnetiomgm_blockdel" ) } },;
|
||||
"allowaddadmin" => { "<ip|host>" , "Add allow filter for management connections" , {| cCommand | cmdConnFilterMod( pConnection, cCommand, "hbnetiomgm_allowaddadmin" ) } },;
|
||||
"allowdeladmin" => { "<ip|host>" , "Remove allow filter for management connections" , {| cCommand | cmdConnFilterMod( pConnection, cCommand, "hbnetiomgm_allowdeladmin" ) } },;
|
||||
"blockaddadmin" => { "<ip|host>" , "Add block filter for management connections" , {| cCommand | cmdConnFilterMod( pConnection, cCommand, "hbnetiomgm_blockaddadmin" ) } },;
|
||||
"blockdeladmin" => { "<ip|host>" , "Remove block filter for management connections" , {| cCommand | cmdConnFilterMod( pConnection, cCommand, "hbnetiomgm_blockdeladmin" ) } },;
|
||||
"allowadd" => { "<ip>" , "Add allow filter" , {| cCommand | cmdConnFilterMod( pConnection, cCommand, "hbnetiomgm_allowadd" ) } },;
|
||||
"allowdel" => { "<ip>" , "Remove allow filter" , {| cCommand | cmdConnFilterMod( pConnection, cCommand, "hbnetiomgm_allowdel" ) } },;
|
||||
"blockadd" => { "<ip>" , "Add block filter" , {| cCommand | cmdConnFilterMod( pConnection, cCommand, "hbnetiomgm_blockadd" ) } },;
|
||||
"blockdel" => { "<ip>" , "Remove block filter" , {| cCommand | cmdConnFilterMod( pConnection, cCommand, "hbnetiomgm_blockdel" ) } },;
|
||||
"allowaddadmin" => { "<ip>" , "Add allow filter for management connections" , {| cCommand | cmdConnFilterMod( pConnection, cCommand, "hbnetiomgm_allowaddadmin" ) } },;
|
||||
"allowdeladmin" => { "<ip>" , "Remove allow filter for management connections" , {| cCommand | cmdConnFilterMod( pConnection, cCommand, "hbnetiomgm_allowdeladmin" ) } },;
|
||||
"blockaddadmin" => { "<ip>" , "Add block filter for management connections" , {| cCommand | cmdConnFilterMod( pConnection, cCommand, "hbnetiomgm_blockaddadmin" ) } },;
|
||||
"blockdeladmin" => { "<ip>" , "Remove block filter for management connections" , {| cCommand | cmdConnFilterMod( pConnection, cCommand, "hbnetiomgm_blockdeladmin" ) } },;
|
||||
"filtsave" => { "" , "Save filters to disk." , {|| cmdConnFilterSave( pConnection ) } },;
|
||||
"stop" => { "[<ip:port>|all]", "Stop specified connection(s)." , {| cCommand | cmdConnStop( pConnection, cCommand ) } },;
|
||||
"clientinfo" => { "[<ip:port>" , "Show client details." , {| cCommand | cmdConnClientInfo( pConnection, cCommand ) } },;
|
||||
@@ -161,9 +163,12 @@ PROCEDURE hbnetiocon_cmdUI( cIP, nPort, cPassword )
|
||||
|
||||
/* Dump all messages in queue */
|
||||
/* TODO: Move this to a separate thread and display it in a dedicated screen area. */
|
||||
FOR EACH cMsg IN netio_GetData( nStreamID ) /* TODO: Protect against flood */
|
||||
QQOut( "> message from server:", cMsg, hb_eol() )
|
||||
NEXT
|
||||
aNotification := netio_GetData( nStreamID )
|
||||
IF hb_isArray( aNotification )
|
||||
FOR EACH cMsg IN aNotification /* TODO: Protect against flood */
|
||||
QQOut( "> message from server:", cMsg, hb_eol() )
|
||||
NEXT
|
||||
ENDIF
|
||||
|
||||
IF Empty( cCommand )
|
||||
LOOP
|
||||
|
||||
@@ -397,15 +397,12 @@ STATIC PROCEDURE netiosrv_notifyclients( netiomgm, cMsg )
|
||||
STATIC FUNCTION netiosrv_callback( netiomgm, netiosrv, pConnectionSocket, lManagement )
|
||||
LOCAL aAddressPeer
|
||||
LOCAL cAddressPeer
|
||||
LOCAL nAddressFamily
|
||||
LOCAL aNamePeer
|
||||
LOCAL cNamePeer
|
||||
LOCAL lBlocked
|
||||
|
||||
IF netiosrv[ _NETIOSRV_lAcceptConn ]
|
||||
|
||||
netio_srvStatus( pConnectionSocket, NETIO_SRVINFO_PEERADDRESS, @aAddressPeer )
|
||||
cAddressPeer := AddrToIPPort( aAddressPeer, @nAddressFamily )
|
||||
cAddressPeer := AddrToIPPort( aAddressPeer )
|
||||
|
||||
lBlocked := .F.
|
||||
|
||||
@@ -414,20 +411,7 @@ STATIC FUNCTION netiosrv_callback( netiomgm, netiosrv, pConnectionSocket, lManag
|
||||
hb_mutexLock( netiosrv[ _NETIOSRV_mtxFilters ] )
|
||||
IF !( cAddressPeer $ netiosrv[ _NETIOSRV_hAllow ] )
|
||||
IF hb_HScan( netiosrv[ _NETIOSRV_hAllow ], {| tmp | hb_WildMatch( tmp, cAddressPeer ) } ) == 0
|
||||
aNamePeer := hb_socketGetHosts( cAddressPeer, nAddressFamily )
|
||||
IF Empty( aNamePeer )
|
||||
lBlocked := .T.
|
||||
ELSE
|
||||
FOR EACH cNamePeer IN aNamePeer
|
||||
IF !( cNamePeer $ netiosrv[ _NETIOSRV_hAllow ] )
|
||||
IF hb_HScan( netiosrv[ _NETIOSRV_hAllow ], {| tmp | hb_WildMatch( tmp, cNamePeer ) } ) == 0
|
||||
/* Not on allow list */
|
||||
lBlocked := .T.
|
||||
EXIT
|
||||
ENDIF
|
||||
ENDIF
|
||||
NEXT
|
||||
ENDIF
|
||||
lBlocked := .T.
|
||||
ENDIF
|
||||
ENDIF
|
||||
hb_mutexUnlock( netiosrv[ _NETIOSRV_mtxFilters ] )
|
||||
@@ -447,23 +431,6 @@ STATIC FUNCTION netiosrv_callback( netiomgm, netiosrv, pConnectionSocket, lManag
|
||||
ELSE
|
||||
IF hb_HScan( netiosrv[ _NETIOSRV_hBlock ], {| tmp | hb_WildMatch( tmp, cAddressPeer ) } ) > 0
|
||||
lBlocked := .T.
|
||||
ELSE
|
||||
IF aNamePeer == NIL
|
||||
aNamePeer := hb_socketGetHosts( cAddressPeer, nAddressFamily )
|
||||
ENDIF
|
||||
IF ! Empty( aNamePeer )
|
||||
FOR EACH cNamePeer IN aNamePeer
|
||||
IF cNamePeer $ netiosrv[ _NETIOSRV_hBlock ]
|
||||
lBlocked := .T.
|
||||
EXIT
|
||||
ELSE
|
||||
IF hb_HScan( netiosrv[ _NETIOSRV_hBlock ], {| tmp | hb_WildMatch( tmp, cNamePeer ) } ) > 0
|
||||
lBlocked := .T.
|
||||
EXIT
|
||||
ENDIF
|
||||
ENDIF
|
||||
NEXT
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
hb_mutexUnlock( netiosrv[ _NETIOSRV_mtxFilters ] )
|
||||
@@ -795,30 +762,15 @@ STATIC FUNCTION ConnStatusStr( nStatus )
|
||||
|
||||
RETURN "UNKNOWN:" + hb_ntos( nStatus )
|
||||
|
||||
STATIC FUNCTION AddrToIPPort( aAddr, /* @ */ nFamily )
|
||||
STATIC FUNCTION AddrToIPPort( aAddr )
|
||||
LOCAL cIP
|
||||
|
||||
IF hb_isArray( aAddr ) .AND. ;
|
||||
( aAddr[ HB_SOCKET_ADINFO_FAMILY ] == HB_SOCKET_AF_INET .OR. ;
|
||||
aAddr[ HB_SOCKET_ADINFO_FAMILY ] == HB_SOCKET_AF_INET6 )
|
||||
cIP := aAddr[ HB_SOCKET_ADINFO_ADDRESS ] + ":" + hb_ntos( aAddr[ HB_SOCKET_ADINFO_PORT ] )
|
||||
nFamily := aAddr[ HB_SOCKET_ADINFO_FAMILY ]
|
||||
ELSE
|
||||
cIP := "(?)"
|
||||
nFamily := -1
|
||||
ENDIF
|
||||
|
||||
RETURN cIP
|
||||
|
||||
STATIC FUNCTION AddrToIP( aAddr )
|
||||
LOCAL cIP
|
||||
|
||||
IF hb_isArray( aAddr ) .AND. ;
|
||||
( aAddr[ HB_SOCKET_ADINFO_FAMILY ] == HB_SOCKET_AF_INET .OR. ;
|
||||
aAddr[ HB_SOCKET_ADINFO_FAMILY ] == HB_SOCKET_AF_INET6 )
|
||||
cIP := aAddr[ HB_SOCKET_ADINFO_ADDRESS ]
|
||||
ELSE
|
||||
cIP := ""
|
||||
ENDIF
|
||||
|
||||
RETURN cIP
|
||||
|
||||
Reference in New Issue
Block a user