2011-02-07 13:29 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/hbnetio/utils/hbnetioq/netiosrq.prg
! Ebnabled to get information from netiosrv daemon.
Currently only connections info. Time interva to refresh
browser is 10 seconds currently. Still a lot to be
implemented based on latest features of netiosrv daemon.
A work-in-progress.
This commit is contained in:
@@ -16,6 +16,14 @@
|
||||
The license applies to all entries newer than 2009-04-28.
|
||||
*/
|
||||
|
||||
2011-02-07 13:29 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
|
||||
* contrib/hbnetio/utils/hbnetioq/netiosrq.prg
|
||||
! Ebnabled to get information from netiosrv daemon.
|
||||
Currently only connections info. Time interva to refresh
|
||||
browser is 10 seconds currently. Still a lot to be
|
||||
implemented based on latest features of netiosrv daemon.
|
||||
A work-in-progress.
|
||||
|
||||
2011-02-07 17:39 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* contrib/hbcurl/hbcurl.hbc
|
||||
* contrib/hbssl/hbssl.hbc
|
||||
|
||||
@@ -60,8 +60,6 @@ PROCEDURE Main( ... )
|
||||
LOCAL nPort := _NETIOMGM_PORT_DEF
|
||||
LOCAL cPassword := ""
|
||||
|
||||
readINI( @cIP, @nPort, @cPassword )
|
||||
|
||||
FOR EACH cParam IN { ... }
|
||||
DO CASE
|
||||
CASE Lower( Left( cParam, 6 ) ) == "-addr="
|
||||
@@ -87,6 +85,8 @@ PROCEDURE Main( ... )
|
||||
|
||||
RETURN
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
PROCEDURE hbnetiocon_IPPortSplit( cAddr, /* @ */ cIP, /* @ */ nPort )
|
||||
LOCAL tmp
|
||||
|
||||
@@ -102,6 +102,8 @@ PROCEDURE hbnetiocon_IPPortSplit( cAddr, /* @ */ cIP, /* @ */ nPort )
|
||||
|
||||
RETURN
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
STATIC FUNCTION MyClientInfo()
|
||||
LOCAL hInfo := { => }
|
||||
|
||||
@@ -116,34 +118,7 @@ STATIC FUNCTION MyClientInfo()
|
||||
RETURN hInfo
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
STATIC PROCEDURE readINI( /* @ */ cIP, /* @ */ nPort, /* @ */ cPassword )
|
||||
LOCAL cBuffer, aTxt, s, n
|
||||
|
||||
cBuffer := hb_memoread( hb_ProgName() + ".config" )
|
||||
|
||||
IF ! empty( cBuffer )
|
||||
aTxt := hb_atokens( strtran( cBuffer, chr( 13 ) ), chr( 10 ) )
|
||||
FOR EACH s IN aTxt
|
||||
s := alltrim( s )
|
||||
IF left( lower( s ), 2 ) == "ip"
|
||||
IF ( n := at( "=", s ) ) > 0
|
||||
cIP := alltrim( substr( s, n + 1 ) )
|
||||
ENDIF
|
||||
ELSEIF left( lower( s ), 4 ) == "port"
|
||||
IF ( n := at( "=", s ) ) > 0
|
||||
nPort := hb_ntos( substr( s, n + 1 ) )
|
||||
ENDIF
|
||||
ELSEIF left( lower( s ), 8 ) == "password"
|
||||
IF ( n := at( "=", s ) ) > 0
|
||||
cPassword := alltrim( substr( s, n + 1 ) )
|
||||
ENDIF
|
||||
ENDIF
|
||||
NEXT
|
||||
ENDIF
|
||||
|
||||
RETURN
|
||||
|
||||
// NetIOMgmtClient
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
CLASS NetIOMgmtClient
|
||||
@@ -158,6 +133,7 @@ CLASS NetIOMgmtClient
|
||||
DATA lSystemTrayAvailable
|
||||
DATA oSysMenu
|
||||
DATA qTimer
|
||||
DATA qTimerRefresh
|
||||
DATA qLayout
|
||||
DATA qAct1
|
||||
DATA qAct2
|
||||
@@ -166,6 +142,7 @@ CLASS NetIOMgmtClient
|
||||
DATA lQuit INIT .f.
|
||||
DATA nCurRec INIT 1
|
||||
DATA aIPs INIT {}
|
||||
DATA nRefreshInterval INIT 10000
|
||||
DATA aData INIT { { NIL, ; // hSock
|
||||
0 , ; // nSerial
|
||||
.F., ; // lActive
|
||||
@@ -201,6 +178,9 @@ CLASS NetIOMgmtClient
|
||||
METHOD goto( nRec )
|
||||
METHOD manageIPs()
|
||||
|
||||
/* Information retrieval from the daemon */
|
||||
METHOD cmdConnInfo( lManagement )
|
||||
|
||||
ENDCLASS
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
@@ -338,6 +318,9 @@ METHOD NetIOMgmtClient:execEvent( cEvent, p )
|
||||
ENDIF
|
||||
ENDIF
|
||||
EXIT
|
||||
CASE "qTimerRefresh_timeOut"
|
||||
::cmdConnInfo( .f. )
|
||||
EXIT
|
||||
CASE "qTimer_timeOut"
|
||||
::oDlg:hide()
|
||||
::oSys:setToolTip( "Connected to Harbour NetIO Server: " + ::oDlg:title )
|
||||
@@ -474,6 +457,11 @@ METHOD NetIOMgmtClient:buildBrowser()
|
||||
|
||||
::oBrw:oWidget:show()
|
||||
|
||||
::qTimerRefresh := QTimer()
|
||||
::qTimerRefresh:setInterval( ::nRefreshInterval )
|
||||
::qTimerRefresh:connect( "timeout()", {|| ::execEvent( "qTimerRefresh_timeOut" ) } )
|
||||
::qTimerRefresh:start()
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
@@ -685,9 +673,7 @@ METHOD NetIOMgmtClient:buildColumns()
|
||||
aadd( aPP, { XBP_PP_COL_DA_ROWWIDTH , 90 } )
|
||||
//
|
||||
oXbpColumn := XbpColumn():new()
|
||||
oXbpColumn:dataLink := {|n| iif( empty( ::aData[ ::recNo(), DAT_CONNSOCKET ] ), n := ::aData[ ::recNo(), DAT_BYTESIN ], ;
|
||||
netio_srvStatus( ::aData[ ::recNo(), DAT_CONNSOCKET ], NETIO_SRVINFO_BYTESRECEIVED, @n ) ), ;
|
||||
::aData[ ::recNo(), DAT_BYTESIN ] := n, str( n, 10, 0 ) }
|
||||
oXbpColumn:dataLink := {|| ::aData[ ::recNo(), DAT_BYTESIN ] }
|
||||
oXbpColumn:create( , , , , aPP )
|
||||
::oBrw:addColumn( oXbpColumn )
|
||||
|
||||
@@ -704,9 +690,7 @@ METHOD NetIOMgmtClient:buildColumns()
|
||||
aadd( aPP, { XBP_PP_COL_DA_ROWWIDTH , 90 } )
|
||||
//
|
||||
oXbpColumn := XbpColumn():new()
|
||||
oXbpColumn:dataLink := {|n| iif( empty( ::aData[ ::recNo(), DAT_CONNSOCKET ] ), n := ::aData[ ::recNo(), DAT_BYTESOUT ], ;
|
||||
netio_srvStatus( ::aData[ ::recNo(), DAT_CONNSOCKET ], NETIO_SRVINFO_BYTESSENT, @n ) ), ;
|
||||
::aData[ ::recNo(), DAT_BYTESOUT ] := n, str( n, 10, 0 ) }
|
||||
oXbpColumn:dataLink := {|| ::aData[ ::recNo(), DAT_BYTESOUT ] }
|
||||
oXbpColumn:create( , , , , aPP )
|
||||
::oBrw:addColumn( oXbpColumn )
|
||||
|
||||
@@ -723,8 +707,7 @@ METHOD NetIOMgmtClient:buildColumns()
|
||||
aadd( aPP, { XBP_PP_COL_DA_ROWWIDTH , 60 } )
|
||||
//
|
||||
oXbpColumn := XbpColumn():new()
|
||||
oXbpColumn:dataLink := {|n| iif( empty( ::aData[ ::recNo(), DAT_CONNSOCKET ] ), n := 0, ;
|
||||
netio_srvStatus( ::aData[ ::recNo(), DAT_CONNSOCKET ], NETIO_SRVINFO_FILESCOUNT, @n ) ), str( n, 5, 0 ) }
|
||||
oXbpColumn:dataLink := {|| ::aData[ ::recNo(), DAT_OPENFILES ] }
|
||||
oXbpColumn:create( , , , , aPP )
|
||||
::oBrw:addColumn( oXbpColumn )
|
||||
|
||||
@@ -791,6 +774,41 @@ METHOD NetIOMgmtClient:buildSystemTray()
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD NetIOMgmtClient:cmdConnInfo( lManagement )
|
||||
LOCAL aArray
|
||||
LOCAL hConn
|
||||
LOCAL aData
|
||||
LOCAL d_
|
||||
|
||||
IF Empty( ::pConnection )
|
||||
MsgBox( "Not Connected" )
|
||||
ELSE
|
||||
aArray := netio_funcexec( ::pConnection, iif( lManagement, "hbnetiomgm_adminfo", "hbnetiomgm_conninfo" ) )
|
||||
IF ! empty( aArray )
|
||||
aData := {}
|
||||
FOR EACH hConn IN aArray
|
||||
d_:= array( 10 )
|
||||
d_[ DAT_CONNSOCKET ] := NIL
|
||||
d_[ DAT_SERIAL ] := hConn[ "nThreadID" ]
|
||||
d_[ DAT_ACTIVATED ] := .t.
|
||||
d_[ DAT_IP ] := hConn[ "cAddressPeer" ]
|
||||
d_[ DAT_PORT ] := 0
|
||||
d_[ DAT_TIMEIN ] := hb_TToC( hConn[ "tStart" ], "YYYY.MM.DD", "HH:MM:SS" )
|
||||
d_[ DAT_TIMEOUT ] := space( 17 )
|
||||
d_[ DAT_BYTESIN ] := hConn[ "nBytesReceived" ]
|
||||
d_[ DAT_BYTESOUT ] := hConn[ "nBytesSent" ]
|
||||
d_[ DAT_OPENFILES ] := hConn[ "nFilesCount" ]
|
||||
aadd( aData, d_ )
|
||||
NEXT
|
||||
::aData := aData
|
||||
::refresh()
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
RETURN NIL
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
STATIC FUNCTION AppSys()
|
||||
RETURN NIL
|
||||
|
||||
|
||||
Reference in New Issue
Block a user