2009-07-07 01:31 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* bin/postinst.bat
* bin/hb-func.sh
+ Added libpath= lines to generated hbmk2.cfg files.
- Deleted arch=/comp= lines from generated hbmk.cfg files.
* include/hbextern.ch
+ Added HB_PROCESSRUN().
* contrib/hbtip/client.prg
% Minor optimizations.
* Formatting.
* utils/hbmk2/hbmk2.prg
% Changed to use hb_processRun() natively.
! Fixed doubly added resource stub when -icon is used.
* source/rtl/hbproces.c
* Really minor formatting.
* source/rtl/hbprocfn.c
! Fixed to free memory of hb_storlen_buffer() returns failure.
% Minor optimization: hb_storclen( "", 0, ... ) -> hb_storc( NULL, ... )
This commit is contained in:
@@ -17,6 +17,30 @@
|
||||
past entries belonging to author(s): Viktor Szakats.
|
||||
*/
|
||||
|
||||
2009-07-07 01:31 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* bin/postinst.bat
|
||||
* bin/hb-func.sh
|
||||
+ Added libpath= lines to generated hbmk2.cfg files.
|
||||
- Deleted arch=/comp= lines from generated hbmk.cfg files.
|
||||
|
||||
* include/hbextern.ch
|
||||
+ Added HB_PROCESSRUN().
|
||||
|
||||
* contrib/hbtip/client.prg
|
||||
% Minor optimizations.
|
||||
* Formatting.
|
||||
|
||||
* utils/hbmk2/hbmk2.prg
|
||||
% Changed to use hb_processRun() natively.
|
||||
! Fixed doubly added resource stub when -icon is used.
|
||||
|
||||
* source/rtl/hbproces.c
|
||||
* Really minor formatting.
|
||||
|
||||
* source/rtl/hbprocfn.c
|
||||
! Fixed to free memory of hb_storlen_buffer() returns failure.
|
||||
% Minor optimization: hb_storclen( "", 0, ... ) -> hb_storc( NULL, ... )
|
||||
|
||||
2009-07-07 00:45 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
||||
* harbour/utils/hbmk2/hbmk2.prg
|
||||
% use hb_processRun() to execute commands
|
||||
|
||||
@@ -242,8 +242,12 @@ mk_hbtools()
|
||||
echo "Generating ${hb_hbmkcfg}... "
|
||||
echo "# Harbour Make configuration"> ${hb_hbmkcfg}
|
||||
echo "# Generated by Harbour build process">> ${hb_hbmkcfg}
|
||||
echo "arch=${HB_ARCHITECTURE}">> ${hb_hbmkcfg}
|
||||
echo "comp=${HB_COMPILER}">> ${hb_hbmkcfg}
|
||||
echo "">> ${hb_hbmkcfg}
|
||||
echo "libpaths=../contrib/%%{hb_name}">> ${hb_hbmkcfg}
|
||||
echo "libpaths=../contrib/rddsql/%%{hb_name}">> ${hb_hbmkcfg}
|
||||
echo "libpaths=../addins/%%{hb_name}">> ${hb_hbmkcfg}
|
||||
echo "libpaths=../examples/%%{hb_name}">> ${hb_hbmkcfg}
|
||||
echo "">> ${hb_hbmkcfg}
|
||||
if [ -n "${hb_gt_ori}" ]; then
|
||||
echo "gtdef=${hb_mkdef}${hb_gt_ori}">> ${hb_hbmkcfg}
|
||||
fi
|
||||
|
||||
@@ -16,8 +16,6 @@ rem ---------------------------------------------------------------
|
||||
echo Generating %HB_BIN_INSTALL%\hbmk.cfg...
|
||||
echo # Harbour Make configuration> %HB_BIN_INSTALL%\hbmk.cfg
|
||||
echo # Generated by Harbour build process>> %HB_BIN_INSTALL%\hbmk.cfg
|
||||
echo arch=%HB_ARCHITECTURE%>> %HB_BIN_INSTALL%\hbmk.cfg
|
||||
echo comp=%HB_COMPILER%>> %HB_BIN_INSTALL%\hbmk.cfg
|
||||
echo.>> %HB_BIN_INSTALL%\hbmk.cfg
|
||||
echo libpaths=../contrib/%%{hb_name}>> %HB_BIN_INSTALL%\hbmk.cfg
|
||||
echo libpaths=../contrib/rddsql/%%{hb_name}>> %HB_BIN_INSTALL%\hbmk.cfg
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
* TIP Class oriented Internet protocol library
|
||||
*
|
||||
* Copyright 2003 Giancarlo Niccolai <gian@niccolai.ws>
|
||||
*
|
||||
* www - http://www.harbour-project.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
@@ -68,62 +67,60 @@
|
||||
Added support for proxy connection
|
||||
*/
|
||||
|
||||
#include "hbclass.ch"
|
||||
|
||||
#include "common.ch"
|
||||
#include "error.ch"
|
||||
#include "fileio.ch"
|
||||
#include "hbclass.ch"
|
||||
|
||||
#include "tip.ch"
|
||||
|
||||
#DEFINE RCV_BUF_SIZE Int( ::InetRcvBufSize( ::SocketCon ) / 2 )
|
||||
#DEFINE SND_BUF_SIZE Int( ::InetSndBufSize( ::SocketCon ) / 2 )
|
||||
#define RCV_BUF_SIZE Int( ::InetRcvBufSize( ::SocketCon ) / 2 )
|
||||
#define SND_BUF_SIZE Int( ::InetSndBufSize( ::SocketCon ) / 2 )
|
||||
|
||||
/**
|
||||
* Inet Client class
|
||||
*/
|
||||
CLASS tIPClient
|
||||
CREATE CLASS tIPClient
|
||||
|
||||
CLASSDATA bInitSocks INIT .F.
|
||||
CLASSDATA cCRLF INIT HB_InetCRLF()
|
||||
DATA oUrl /* url to wich to connect */
|
||||
DATA oCredentials /* credential needed to access the service */
|
||||
DATA nStatus /* basic status */
|
||||
DATA SocketCon
|
||||
Data lTrace
|
||||
Data nHandle
|
||||
CLASS VAR bInitSocks INIT .F.
|
||||
CLASS VAR cCRLF INIT hb_inetCRLF()
|
||||
|
||||
DATA nDefaultRcvBuffSize
|
||||
DATA nDefaultSndBuffSize
|
||||
VAR oUrl /* url to wich to connect */
|
||||
VAR oCredentials /* credential needed to access the service */
|
||||
VAR nStatus /* basic status */
|
||||
VAR SocketCon
|
||||
VAR lTrace
|
||||
VAR nHandle
|
||||
|
||||
/* Input stream length */
|
||||
DATA nLength
|
||||
/* Input stream data read by the app*/
|
||||
DATA nRead
|
||||
/* Last physical read amount */
|
||||
DATA nLastRead
|
||||
VAR nDefaultRcvBuffSize
|
||||
VAR nDefaultSndBuffSize
|
||||
|
||||
DATA nDefaultPort
|
||||
DATA nConnTimeout
|
||||
DATA bInitialized
|
||||
VAR nLength /* Input stream length */
|
||||
VAR nRead /* Input stream data read by the app*/
|
||||
VAR nLastRead /* Last physical read amount */
|
||||
|
||||
DATA cReply
|
||||
DATA nAccessMode
|
||||
DATA nWrite
|
||||
DATA nLastWrite
|
||||
VAR nDefaultPort
|
||||
VAR nConnTimeout
|
||||
VAR bInitialized
|
||||
|
||||
DATA bEof
|
||||
DATA isOpen INIT .F.
|
||||
VAR cReply
|
||||
VAR nAccessMode
|
||||
VAR nWrite
|
||||
VAR nLastWrite
|
||||
|
||||
/* Gauge control; it can be a codeblock or a function pointer. */
|
||||
DATA exGauge
|
||||
VAR bEof
|
||||
VAR isOpen INIT .F.
|
||||
|
||||
DATA Cargo
|
||||
VAR exGauge /* Gauge control; it can be a codeblock or a function pointer. */
|
||||
|
||||
VAR Cargo
|
||||
|
||||
/* Data for proxy connection */
|
||||
DATA cProxyHost
|
||||
DATA nProxyPort INIT 0
|
||||
DATA cProxyUser
|
||||
DATA cProxyPassword
|
||||
VAR cProxyHost
|
||||
VAR nProxyPort INIT 0
|
||||
VAR cProxyUser
|
||||
VAR cProxyPassword
|
||||
|
||||
METHOD New( oUrl, lTrace, oCredentials )
|
||||
METHOD Open()
|
||||
@@ -148,7 +145,7 @@ CLASS tIPClient
|
||||
|
||||
PROTECTED:
|
||||
|
||||
DATA nLastError INIT 0
|
||||
VAR nLastError INIT 0
|
||||
|
||||
METHOD OpenProxy( cServer, nPort, cProxy, nProxyPort, cResp, cUserName, cPassWord, nTimeOut, cUserAgent )
|
||||
METHOD ReadHTTPProxyResponse()
|
||||
@@ -167,14 +164,13 @@ CLASS tIPClient
|
||||
|
||||
ENDCLASS
|
||||
|
||||
|
||||
METHOD New( oUrl, lTrace, oCredentials ) CLASS tIPClient
|
||||
LOCAL oErr
|
||||
|
||||
DEFAULT lTrace TO .F.
|
||||
|
||||
IF ! ::bInitSocks
|
||||
HB_InetInit()
|
||||
hb_inetInit()
|
||||
::bInitSocks := .T.
|
||||
ENDIF
|
||||
|
||||
@@ -190,7 +186,7 @@ METHOD New( oUrl, lTrace, oCredentials ) CLASS tIPClient
|
||||
oErr:CanSubstitute := .T.
|
||||
oErr:Description := "unsupported protocol"
|
||||
oErr:GenCode := EG_UNSUPPORTED
|
||||
oErr:Operation := ::className()+":new()"
|
||||
oErr:Operation := ::className() + ":new()"
|
||||
oErr:Severity := ES_ERROR
|
||||
oErr:SubCode := 1081
|
||||
oErr:SubSystem := "BASE"
|
||||
@@ -209,12 +205,9 @@ METHOD New( oUrl, lTrace, oCredentials ) CLASS tIPClient
|
||||
::bEof := .F.
|
||||
::lTrace := lTrace
|
||||
|
||||
RETURN self
|
||||
|
||||
|
||||
RETURN self
|
||||
|
||||
METHOD Open( cUrl ) CLASS tIPClient
|
||||
|
||||
LOCAL nPort
|
||||
LOCAL cResp
|
||||
|
||||
@@ -228,9 +221,9 @@ METHOD Open( cUrl ) CLASS tIPClient
|
||||
nPort := ::oUrl:nPort
|
||||
ENDIF
|
||||
|
||||
::SocketCon := HB_InetCreate()
|
||||
::SocketCon := hb_inetCreate()
|
||||
|
||||
HB_InetTimeout( ::SocketCon, ::nConnTimeout )
|
||||
hb_inetTimeout( ::SocketCon, ::nConnTimeout )
|
||||
IF ! Empty( ::cProxyHost )
|
||||
cResp := ""
|
||||
IF ! ::OpenProxy( ::oUrl:cServer, nPort, ::cProxyHost, ::nProxyPort, @cResp, ::cProxyUser, ::cProxyPassword, ::nConnTimeout, "Mozilla/3.0 compatible" )
|
||||
@@ -244,8 +237,7 @@ METHOD Open( cUrl ) CLASS tIPClient
|
||||
ENDIF
|
||||
ENDIF
|
||||
::isOpen := .T.
|
||||
RETURN .T.
|
||||
|
||||
RETURN .T.
|
||||
|
||||
METHOD OpenProxy( cServer, nPort, cProxy, nProxyPort, cResp, cUserName, cPassWord, nTimeOut, cUserAgent ) CLASS tIPClient
|
||||
LOCAL cRequest := ""
|
||||
@@ -258,7 +250,7 @@ METHOD OpenProxy( cServer, nPort, cProxy, nProxyPort, cResp, cUserName, cPassWor
|
||||
::InetConnect( cProxy, nProxyPort, ::SocketCon )
|
||||
|
||||
IF ( tmp := ::InetErrorCode( ::SocketCon ) ) == 0
|
||||
cRequest += "CONNECT " + cServer + ":" + hb_ntos( nPort ) + " HTTP/1.0" + Chr( 13 ) + Chr( 10 )
|
||||
cRequest += "CONNECT " + cServer + ":" + hb_ntos( nPort ) + " HTTP/1.1" + Chr( 13 ) + Chr( 10 )
|
||||
IF ! Empty( cUserAgent )
|
||||
cRequest += "User-agent: " + cUserAgent + Chr( 13 ) + Chr( 10 )
|
||||
ENDIF
|
||||
@@ -286,10 +278,10 @@ METHOD OpenProxy( cServer, nPort, cProxy, nProxyPort, cResp, cUserName, cPassWor
|
||||
cResp := hb_ntos( tmp )
|
||||
lRet := .F.
|
||||
ENDIF
|
||||
|
||||
RETURN lRet
|
||||
|
||||
METHOD ReadHTTPProxyResponse( dwTimeout, sResponse ) CLASS tIPClient
|
||||
|
||||
LOCAL bMoreDataToRead := .T.
|
||||
LOCAL nLength, nData
|
||||
LOCAL szResponse
|
||||
@@ -314,34 +306,26 @@ METHOD ReadHTTPProxyResponse( dwTimeout, sResponse ) CLASS tIPClient
|
||||
|
||||
RETURN .T.
|
||||
|
||||
|
||||
METHOD Close() CLASS tIPClient
|
||||
|
||||
LOCAL nRet := -1
|
||||
|
||||
IF ! Empty( ::SocketCon )
|
||||
|
||||
nRet := HB_InetClose( ::SocketCon )
|
||||
nRet := hb_inetClose( ::SocketCon )
|
||||
|
||||
::SocketCon := NIL
|
||||
::isOpen := .F.
|
||||
ENDIF
|
||||
|
||||
RETURN nRet
|
||||
|
||||
|
||||
RETURN nRet
|
||||
|
||||
METHOD Reset() CLASS tIPClient
|
||||
::bInitialized := .F.
|
||||
::bEof := .F.
|
||||
RETURN .T.
|
||||
|
||||
|
||||
RETURN .T.
|
||||
|
||||
METHOD Commit() CLASS tIPClient
|
||||
RETURN .T.
|
||||
|
||||
|
||||
RETURN .T.
|
||||
|
||||
METHOD Read( nLen ) CLASS tIPClient
|
||||
LOCAL cStr0
|
||||
@@ -351,7 +335,7 @@ METHOD Read( nLen ) CLASS tIPClient
|
||||
RETURN NIL
|
||||
ENDIF
|
||||
|
||||
IF Empty( nLen ) .OR. nLen < 0 .OR.( ::nLength > 0 .AND. nLen > ::nLength - ::nRead )
|
||||
IF Empty( nLen ) .OR. nLen < 0 .OR. ( ::nLength > 0 .AND. nLen > ::nLength - ::nRead )
|
||||
nLen := ::nLength - ::nRead
|
||||
ENDIF
|
||||
|
||||
@@ -362,7 +346,7 @@ METHOD Read( nLen ) CLASS tIPClient
|
||||
::nLastRead := ::InetRecv( ::SocketCon, @cStr1, RCV_BUF_SIZE )
|
||||
DO WHILE ::nLastRead > 0
|
||||
::nRead += ::nLastRead
|
||||
cStr0 += Substr( cStr1, 1, ::nLastRead )
|
||||
cStr0 += Left( cStr1, ::nLastRead )
|
||||
::nLastRead := ::InetRecv( ::SocketCon, @cStr1, RCV_BUF_SIZE )
|
||||
ENDDO
|
||||
::bEof := .T.
|
||||
@@ -370,8 +354,8 @@ METHOD Read( nLen ) CLASS tIPClient
|
||||
// read an amount of data
|
||||
cStr0 := Space( nLen )
|
||||
|
||||
// S.R. if len of file is less than RCV_BUF_SIZE HB_InetRecvAll return 0
|
||||
// ::nLastRead := HB_InetRecvAll( ::SocketCon, @cStr0, nLen )
|
||||
// S.R. if len of file is less than RCV_BUF_SIZE hb_inetRecvAll return 0
|
||||
// ::nLastRead := hb_inetRecvAll( ::SocketCon, @cStr0, nLen )
|
||||
|
||||
::InetRecvAll( ::SocketCon, @cStr0, nLen )
|
||||
::nLastRead := ::InetCount( ::SocketCon )
|
||||
@@ -379,18 +363,16 @@ METHOD Read( nLen ) CLASS tIPClient
|
||||
|
||||
IF ::nLastRead != nLen
|
||||
::bEof := .T.
|
||||
cStr0 := Substr( cStr0, 1, ::nLastRead )
|
||||
cStr0 := Left( cStr0, ::nLastRead )
|
||||
// S.R. RETURN NIL
|
||||
ENDIF
|
||||
|
||||
IF ::nRead == ::nLength
|
||||
::bEof := .T.
|
||||
ENDIF
|
||||
|
||||
ENDIF
|
||||
RETURN cStr0
|
||||
|
||||
|
||||
RETURN cStr0
|
||||
|
||||
METHOD ReadToFile( cFile, nMode, nSize ) CLASS tIPClient
|
||||
LOCAL nFout
|
||||
@@ -416,11 +398,7 @@ METHOD ReadToFile( cFile, nMode, nSize ) CLASS tIPClient
|
||||
IF nFout != NIL
|
||||
FClose( nFout )
|
||||
ENDIF
|
||||
IF ::InetErrorCode( ::SocketCon ) > 0
|
||||
RETURN .F.
|
||||
ELSE
|
||||
RETURN .T.
|
||||
ENDIF
|
||||
RETURN ::InetErrorCode( ::SocketCon ) == 0
|
||||
ENDIF
|
||||
IF nFout == NIL
|
||||
nFout := FCreate( cFile, nMode )
|
||||
@@ -436,7 +414,7 @@ METHOD ReadToFile( cFile, nMode, nSize ) CLASS tIPClient
|
||||
ENDIF
|
||||
|
||||
nSent += Len( cData )
|
||||
IF !Empty( ::exGauge )
|
||||
IF ! Empty( ::exGauge )
|
||||
HB_ExecFromArray( ::exGauge, { nSent, nSize, Self } )
|
||||
ENDIF
|
||||
|
||||
@@ -449,9 +427,7 @@ METHOD ReadToFile( cFile, nMode, nSize ) CLASS tIPClient
|
||||
::nStatus := 2
|
||||
FClose( nFout )
|
||||
|
||||
RETURN .T.
|
||||
|
||||
|
||||
RETURN .T.
|
||||
|
||||
METHOD WriteFromFile( cFile ) CLASS tIPClient
|
||||
LOCAL nFin
|
||||
@@ -465,7 +441,7 @@ METHOD WriteFromFile( cFile ) CLASS tIPClient
|
||||
IF nFin < 0
|
||||
RETURN .F.
|
||||
ENDIF
|
||||
nSize := FSeek( nFin, 0, 2 )
|
||||
nSize := FSeek( nFin, 0, FS_END )
|
||||
FSeek( nFin, 0 )
|
||||
|
||||
nBufSize := SND_BUF_SIZE
|
||||
@@ -473,7 +449,7 @@ METHOD WriteFromFile( cFile ) CLASS tIPClient
|
||||
// allow initialization of the gauge
|
||||
nSent := 0
|
||||
IF ! Empty( ::exGauge )
|
||||
HB_ExecFromArray( ::exGauge, {nSent, nSize, Self} )
|
||||
HB_ExecFromArray( ::exGauge, { nSent, nSize, Self } )
|
||||
ENDIF
|
||||
|
||||
::nStatus := 1
|
||||
@@ -498,11 +474,10 @@ METHOD WriteFromFile( cFile ) CLASS tIPClient
|
||||
|
||||
::nStatus := 2
|
||||
FClose( nFin )
|
||||
RETURN .T.
|
||||
|
||||
RETURN .T.
|
||||
|
||||
/*
|
||||
HZ: METHOD :getOk() is not declared in TIpClient
|
||||
HZ: METHOD :getOk() is not declared in tIPClient
|
||||
|
||||
METHOD Data( cData ) CLASS tIPClient
|
||||
::InetSendall( ::SocketCon, "DATA" + ::cCRLF )
|
||||
@@ -510,10 +485,9 @@ METHOD Data( cData ) CLASS tIPClient
|
||||
RETURN .F.
|
||||
ENDIF
|
||||
::InetSendall(::SocketCon, cData + ::cCRLF + "." + ::cCRLF )
|
||||
RETURN ::GetOk()
|
||||
RETURN ::GetOk()
|
||||
*/
|
||||
|
||||
|
||||
METHOD Write( cData, nLen, bCommit ) CLASS tIPClient
|
||||
|
||||
IF Empty( nLen )
|
||||
@@ -528,9 +502,7 @@ METHOD Write( cData, nLen, bCommit ) CLASS tIPClient
|
||||
|
||||
::nWrite += ::nLastWrite
|
||||
|
||||
RETURN ::nLastWrite
|
||||
|
||||
|
||||
RETURN ::nLastWrite
|
||||
|
||||
METHOD InetSendAll( SocketCon, cData, nLen ) CLASS tIPClient
|
||||
LOCAL nRet
|
||||
@@ -539,79 +511,60 @@ METHOD InetSendAll( SocketCon, cData, nLen ) CLASS tIPClient
|
||||
nLen := Len( cData )
|
||||
ENDIF
|
||||
|
||||
nRet := HB_InetSendAll( SocketCon, cData, nLen )
|
||||
nRet := hb_inetSendAll( SocketCon, cData, nLen )
|
||||
|
||||
IF ::lTrace
|
||||
::Log( SocketCon, nlen, cData, nRet )
|
||||
ENDIF
|
||||
|
||||
RETURN nRet
|
||||
|
||||
|
||||
RETURN nRet
|
||||
|
||||
METHOD InetCount( SocketCon ) CLASS tIPClient
|
||||
LOCAL nRet
|
||||
|
||||
nRet := HB_InetCount( SocketCon )
|
||||
LOCAL nRet := hb_inetCount( SocketCon )
|
||||
|
||||
IF ::lTrace
|
||||
::Log( SocketCon, nRet )
|
||||
ENDIF
|
||||
|
||||
RETURN nRet
|
||||
|
||||
|
||||
RETURN nRet
|
||||
|
||||
METHOD InetRecv( SocketCon, cStr1, len ) CLASS tIPClient
|
||||
LOCAL nRet
|
||||
|
||||
nRet := HB_InetRecv( SocketCon, @cStr1, len )
|
||||
LOCAL nRet := hb_inetRecv( SocketCon, @cStr1, len )
|
||||
|
||||
IF ::lTrace
|
||||
::Log( SocketCon, "", len, iif( nRet >= 0, cStr1, nRet ) )
|
||||
ENDIF
|
||||
|
||||
RETURN nRet
|
||||
|
||||
|
||||
RETURN nRet
|
||||
|
||||
METHOD InetRecvLine( SocketCon, nLen, size ) CLASS tIPClient
|
||||
LOCAL cRet
|
||||
|
||||
cRet := HB_InetRecvLine( SocketCon, @nLen, size )
|
||||
LOCAL cRet := hb_inetRecvLine( SocketCon, @nLen, size )
|
||||
|
||||
IF ::lTrace
|
||||
::Log( SocketCon, "", size, cRet )
|
||||
ENDIF
|
||||
|
||||
RETURN cRet
|
||||
|
||||
|
||||
RETURN cRet
|
||||
|
||||
METHOD InetRecvAll( SocketCon, cStr1, len ) CLASS tIPClient
|
||||
LOCAL nRet
|
||||
|
||||
nRet := HB_InetRecvAll( SocketCon, @cStr1, len )
|
||||
LOCAL nRet := hb_inetRecvAll( SocketCon, @cStr1, len )
|
||||
|
||||
IF ::lTrace
|
||||
::Log( SocketCon, "", len, iif( nRet >= 0, cStr1, nRet ) )
|
||||
ENDIF
|
||||
|
||||
RETURN nRet
|
||||
|
||||
|
||||
RETURN nRet
|
||||
|
||||
METHOD InetErrorCode( SocketCon ) CLASS tIPClient
|
||||
LOCAL nRet
|
||||
LOCAL nRet := hb_inetErrorCode( SocketCon )
|
||||
|
||||
::nLastError := nRet := HB_InetErrorCode( SocketCon )
|
||||
::nLastError := nRet
|
||||
|
||||
IF ::lTrace
|
||||
::Log( SocketCon, nRet )
|
||||
ENDIF
|
||||
|
||||
RETURN nRet
|
||||
|
||||
RETURN nRet
|
||||
|
||||
METHOD InetErrorDesc( SocketCon ) CLASS tIPClient
|
||||
LOCAL cMsg := ""
|
||||
@@ -619,16 +572,15 @@ METHOD InetErrorDesc( SocketCon ) CLASS tIPClient
|
||||
DEFAULT SocketCon TO ::SocketCon
|
||||
|
||||
IF ! Empty( SocketCon )
|
||||
cMsg := HB_InetErrorDesc( SocketCon )
|
||||
cMsg := hb_inetErrorDesc( SocketCon )
|
||||
ENDIF
|
||||
|
||||
RETURN cMsg
|
||||
|
||||
RETURN cMsg
|
||||
|
||||
/* BROKEN, should test number of parameters and act accordingly, see doc\inet.txt */
|
||||
METHOD InetConnect( cServer, nPort, SocketCon ) CLASS tIPClient
|
||||
|
||||
HB_InetConnect( cServer, nPort, SocketCon )
|
||||
hb_inetConnect( cServer, nPort, SocketCon )
|
||||
|
||||
IF ! Empty( ::nDefaultSndBuffSize )
|
||||
::InetSndBufSize( SocketCon, ::nDefaultSndBuffSize )
|
||||
@@ -642,20 +594,20 @@ METHOD InetConnect( cServer, nPort, SocketCon ) CLASS tIPClient
|
||||
::Log( cServer, nPort, SocketCon )
|
||||
ENDIF
|
||||
|
||||
RETURN NIL
|
||||
RETURN NIL
|
||||
|
||||
/* Methods to manage buffers */
|
||||
METHOD InetRcvBufSize( SocketCon, nSizeBuff ) CLASS tIPClient
|
||||
IF ! Empty( nSizeBuff )
|
||||
HB_InetSetRcvBufSize( SocketCon, nSizeBuff )
|
||||
hb_inetSetRcvBufSize( SocketCon, nSizeBuff )
|
||||
ENDIF
|
||||
RETURN HB_InetGetRcvBufSize( SocketCon )
|
||||
RETURN hb_inetGetRcvBufSize( SocketCon )
|
||||
|
||||
METHOD InetSndBufSize( SocketCon, nSizeBuff ) CLASS tIPClient
|
||||
IF ! Empty( nSizeBuff )
|
||||
HB_InetSetSndBufSize( SocketCon, nSizeBuff )
|
||||
hb_inetSetSndBufSize( SocketCon, nSizeBuff )
|
||||
ENDIF
|
||||
RETURN HB_InetGetSndBufSize( SocketCon )
|
||||
RETURN hb_inetGetSndBufSize( SocketCon )
|
||||
|
||||
/* Called from another method with list of parameters and, as last parameter, return code
|
||||
of function being logged.
|
||||
@@ -678,25 +630,24 @@ METHOD Log( ... ) CLASS tIPClient
|
||||
cMsg += hb_CStr( xVar )
|
||||
ENDIF
|
||||
|
||||
cMsg += iif ( xVar:__enumIndex() < PCount() - 1, ", ", "" )
|
||||
cMsg += iif( xVar:__enumIndex() < PCount() - 1, ", ", "" )
|
||||
|
||||
IF xVar:__enumIndex() == PCount() - 1
|
||||
cMsg += " )" + hb_OsNewLine() + ">> "
|
||||
|
||||
cMsg += " )" + hb_osNewLine() + ">> "
|
||||
ELSEIF xVar:__enumIndex() == PCount()
|
||||
cMsg += " <<" + hb_OsNewLine() + hb_OsNewLine()
|
||||
|
||||
cMsg += " <<" + hb_osNewLine() + hb_osNewLine()
|
||||
ENDIF
|
||||
|
||||
NEXT
|
||||
|
||||
FWrite( ::nHandle, cMsg )
|
||||
|
||||
RETURN Self
|
||||
RETURN Self
|
||||
|
||||
METHOD SetProxy( cProxyHost, nProxyPort, cProxyUser, cProxyPassword ) CLASS tIPClient
|
||||
|
||||
::cProxyHost := cProxyHost
|
||||
::nProxyPort := nProxyPort
|
||||
::cProxyUser := cProxyUser
|
||||
::cProxyPassword := cProxyPassword
|
||||
|
||||
RETURN Self
|
||||
|
||||
@@ -1202,6 +1202,7 @@ EXTERNAL HB_DIRSCAN
|
||||
EXTERNAL HB_PROCESSOPEN
|
||||
EXTERNAL HB_PROCESSVALUE
|
||||
EXTERNAL HB_PROCESSCLOSE
|
||||
EXTERNAL HB_PROCESSRUN
|
||||
EXTERNAL HB_GCSTEP
|
||||
EXTERNAL HB_GCALL
|
||||
EXTERNAL HB_KEYCLEAR
|
||||
|
||||
@@ -906,7 +906,7 @@ BOOL hb_fsProcessClose( HB_FHANDLE hProcess, BOOL fGentle )
|
||||
|
||||
#define HB_STD_BUFFER_SIZE 4096
|
||||
|
||||
int hb_fsProcessRun( const char *pszFilename,
|
||||
int hb_fsProcessRun( const char * pszFilename,
|
||||
const char * pStdInBuf, ULONG ulStdInLen,
|
||||
char ** pStdOutPtr, ULONG * pulStdOut,
|
||||
char ** pStdErrPtr, ULONG * pulStdErr,
|
||||
|
||||
@@ -122,8 +122,8 @@ HB_FUNC( HB_PROCESSCLOSE )
|
||||
[ <lDetach> ] ) -> <nResult> */
|
||||
HB_FUNC( HB_PROCESSRUN )
|
||||
{
|
||||
const char *szName = hb_parc( 1 );
|
||||
const char *szStdIn = hb_parc( 2 );
|
||||
const char * szName = hb_parc( 1 );
|
||||
const char * szStdIn = hb_parc( 2 );
|
||||
PHB_ITEM pStdOut = hb_param( 3, HB_IT_BYREF );
|
||||
PHB_ITEM pStdErr = hb_param( 4, HB_IT_BYREF );
|
||||
BOOL fDetach = hb_parl( 5 );
|
||||
@@ -149,14 +149,20 @@ HB_FUNC( HB_PROCESSRUN )
|
||||
fDetach );
|
||||
|
||||
if( pStdOutBuf )
|
||||
hb_storclen_buffer( pStdOutBuf, ulStdOut, 3 );
|
||||
{
|
||||
if( ! hb_storclen_buffer( pStdOutBuf, ulStdOut, 3 ) )
|
||||
hb_xfree( pStdOutBuf );
|
||||
}
|
||||
else if( pStdOut )
|
||||
hb_storclen( "", 0, 3 );
|
||||
hb_storc( NULL, 3 );
|
||||
|
||||
if( pStdErrBuf )
|
||||
hb_storclen_buffer( pStdErrBuf, ulStdErr, 4 );
|
||||
{
|
||||
if( ! hb_storclen_buffer( pStdErrBuf, ulStdErr, 4 ) )
|
||||
hb_xfree( pStdErrBuf );
|
||||
}
|
||||
else if( pStdErr )
|
||||
hb_storclen( "", 0, 4 );
|
||||
hb_storc( NULL, 4 );
|
||||
|
||||
hb_retni( iResult );
|
||||
}
|
||||
|
||||
@@ -417,14 +417,6 @@ PROCEDURE Main( ... )
|
||||
|
||||
#endif
|
||||
|
||||
STATIC FUNCTION hbmk_run( hbmk, cCmd, cStdOut )
|
||||
|
||||
HB_SYMBOL_UNUSED( hbmk )
|
||||
IF PCount() >= 3
|
||||
RETURN hb_processRun( cCmd,, @cStdOut )
|
||||
ENDIF
|
||||
RETURN hb_processRun( cCmd )
|
||||
|
||||
STATIC PROCEDURE hbmk_COMP_Setup( cARCH, cCOMP, cBasePath )
|
||||
|
||||
/* TODO: Use HB_CCPREFIX instead of PATH modification, where possible. */
|
||||
@@ -3222,7 +3214,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
|
||||
OutStd( cCommand + hb_osNewLine() )
|
||||
ENDIF
|
||||
|
||||
IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp := hbmk_run( hbmk, cCommand ) ) != 0
|
||||
IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp := hb_processRun( cCommand ) ) != 0
|
||||
hbmk_OutErr( hbmk, hb_StrFormat( I_( "Error: Running Harbour compiler. %1$s" ), hb_ntos( tmp ) ) )
|
||||
IF ! hbmk[ _HBMK_lQuiet ]
|
||||
OutErr( cCommand + hb_osNewLine() )
|
||||
@@ -3428,7 +3420,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
|
||||
ENDIF
|
||||
NEXT
|
||||
ELSE
|
||||
l_aRESSRC_TODO := hbmk[ _HBMK_aRESSRC ]
|
||||
l_aRESSRC_TODO := AClone( hbmk[ _HBMK_aRESSRC ] )
|
||||
ENDIF
|
||||
|
||||
IF hbmk[ _HBMK_nHBMODE ] != _HBMODE_RAW_C
|
||||
@@ -3511,7 +3503,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
|
||||
OutStd( cCommand + hb_osNewLine() )
|
||||
ENDIF
|
||||
|
||||
IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp1 := hbmk_run( hbmk, cCommand ) ) != 0
|
||||
IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp1 := hb_processRun( cCommand ) ) != 0
|
||||
hbmk_OutErr( hbmk, hb_StrFormat( I_( "Error: Running resource compiler. %1$s" ), hb_ntos( tmp1 ) ) )
|
||||
IF ! hbmk[ _HBMK_lQuiet ]
|
||||
OutErr( cCommand + hb_osNewLine() )
|
||||
@@ -3550,7 +3542,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp := hbmk_run( hbmk, cCommand ) ) != 0
|
||||
IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp := hb_processRun( cCommand ) ) != 0
|
||||
hbmk_OutErr( hbmk, hb_StrFormat( I_( "Error: Running resource compiler. %1$s" ), hb_ntos( tmp ) ) )
|
||||
IF ! hbmk[ _HBMK_lQuiet ]
|
||||
OutErr( cCommand + hb_osNewLine() )
|
||||
@@ -3680,9 +3672,9 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
|
||||
|
||||
IF ! hbmk[ _HBMK_lDONTEXEC ]
|
||||
IF hb_mtvm() .AND. Len( aTODO:__enumBase() ) > 1
|
||||
AAdd( aThreads, { hb_threadStart( @hbmk_run(), hbmk, cCommand ), cCommand } )
|
||||
AAdd( aThreads, { hb_threadStart( @hb_processRun(), cCommand ), cCommand } )
|
||||
ELSE
|
||||
IF ( tmp := hbmk_run( hbmk, cCommand ) ) != 0
|
||||
IF ( tmp := hb_processRun( cCommand ) ) != 0
|
||||
hbmk_OutErr( hbmk, hb_StrFormat( I_( "Error: Running C compiler. %1$s" ), hb_ntos( tmp ) ) )
|
||||
IF ! hbmk[ _HBMK_lQuiet ]
|
||||
OutErr( cCommand + hb_osNewLine() )
|
||||
@@ -3830,7 +3822,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp := hbmk_run( hbmk, cCommand ) ) != 0
|
||||
IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp := hb_processRun( cCommand ) ) != 0
|
||||
hbmk_OutErr( hbmk, hb_StrFormat( I_( "Error: Running linker. %1$s" ), hb_ntos( tmp ) ) )
|
||||
IF ! hbmk[ _HBMK_lQuiet ]
|
||||
OutErr( cCommand + hb_osNewLine() )
|
||||
@@ -3913,7 +3905,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp := hbmk_run( hbmk, cCommand ) ) != 0
|
||||
IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp := hb_processRun( cCommand ) ) != 0
|
||||
hbmk_OutErr( hbmk, hb_StrFormat( I_( "Error: Running lib command. %1$s" ), hb_ntos( tmp ) ) )
|
||||
IF ! hbmk[ _HBMK_lQuiet ]
|
||||
OutErr( cCommand + hb_osNewLine() )
|
||||
@@ -3973,7 +3965,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp := hbmk_run( hbmk, cCommand ) ) != 0
|
||||
IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp := hb_processRun( cCommand ) ) != 0
|
||||
hbmk_OutErr( hbmk, hb_StrFormat( I_( "Error: Running dynamic lib link command. %1$s" ), hb_ntos( tmp ) ) )
|
||||
IF ! hbmk[ _HBMK_lQuiet ]
|
||||
OutErr( cCommand + hb_osNewLine() )
|
||||
@@ -4031,7 +4023,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
|
||||
OutStd( cCommand + hb_osNewLine() )
|
||||
ENDIF
|
||||
|
||||
IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp := hbmk_run( hbmk, cCommand ) ) != 0
|
||||
IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp := hb_processRun( cCommand ) ) != 0
|
||||
hbmk_OutErr( hbmk, hb_StrFormat( I_( "Warning: Running post processor command. %1$s:" ), hb_ntos( tmp ) ) )
|
||||
IF ! hbmk[ _HBMK_lQuiet ]
|
||||
OutErr( cCommand + hb_osNewLine() )
|
||||
@@ -4095,7 +4087,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
|
||||
OutStd( cCommand + hb_osNewLine() )
|
||||
ENDIF
|
||||
|
||||
IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp := hbmk_run( hbmk, cCommand ) ) != 0
|
||||
IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp := hb_processRun( cCommand ) ) != 0
|
||||
hbmk_OutErr( hbmk, hb_StrFormat( I_( "Warning: Running compression command. %1$s:" ), hb_ntos( tmp ) ) )
|
||||
IF ! hbmk[ _HBMK_lQuiet ]
|
||||
OutErr( cCommand + hb_osNewLine() )
|
||||
@@ -4207,7 +4199,7 @@ STATIC FUNCTION CompileCLoop( hbmk, aTODO, cBin_CompC, cOpt_CompC, cWorkDir, cOb
|
||||
OutStd( cCommand + hb_osNewLine() )
|
||||
ENDIF
|
||||
|
||||
IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp1 := hbmk_run( hbmk, cCommand ) ) != 0
|
||||
IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp1 := hb_processRun( cCommand ) ) != 0
|
||||
IF nJobs > 1
|
||||
hbmk_OutErr( hbmk, hb_StrFormat( I_( "Error: Running C compiler job #%1$s. %2$s" ), hb_ntos( nJob ), hb_ntos( tmp1 ) ) )
|
||||
ELSE
|
||||
@@ -5681,7 +5673,9 @@ STATIC FUNCTION MacroProc( hbmk, cString, cFileName, lLateMode )
|
||||
( nEnd := hb_At( _CMDSUBST_CLOSE, cString, nStart + Len( _CMDSUBST_OPEN ) ) ) > 0
|
||||
cMacro := SubStr( cString, nStart + Len( _CMDSUBST_OPEN ), nEnd - nStart - Len( _CMDSUBST_OPEN ) )
|
||||
cStdOut := ""
|
||||
hbmk_run( hbmk, cMacro, @cStdOut )
|
||||
IF ! Empty( cMacro )
|
||||
hb_processRun( cMacro,, @cStdOut )
|
||||
ENDIF
|
||||
cString := Left( cString, nStart - 1 ) + cStdOut + SubStr( cString, nEnd + Len( _CMDSUBST_CLOSE ) )
|
||||
ENDDO
|
||||
|
||||
@@ -5743,7 +5737,7 @@ STATIC FUNCTION getFirstFunc( hbmk, cFile )
|
||||
NEXT
|
||||
ELSEIF ! Empty( cExecNM := FindInPath( hbmk[ _HBMK_cCCPREFIX ] + "nm" ) )
|
||||
cFuncList := ""
|
||||
hbmk_run( hbmk, cExecNM + " " + cFile + " -g -n --defined-only -C", @cFuncList )
|
||||
hb_processRun( cExecNM + " " + cFile + " -g -n --defined-only -C",, @cFuncList )
|
||||
IF ( n := At( " T HB_FUN_", cFuncList ) ) != 0
|
||||
n += 10
|
||||
DO WHILE ( c := SubStr( cFuncList, n++, 1 ) ) == "_" .OR. ;
|
||||
|
||||
Reference in New Issue
Block a user