2012-01-29 17:22 UTC+0100 Viktor Szakats (harbour syenar.net)

* src/rtl/tget.prg
  * src/rtl/getsyshb.prg
    + added support for hash GET variables

  * utils/hbmk2/hbmk2.prg
    + added REQUESTs to blowfish, md5, sha1 and few sha2 functions
      for 3rd party plugins

  * contrib/hbhttpd/core.prg
    * fmt
This commit is contained in:
Viktor Szakats
2012-01-29 16:25:03 +00:00
parent 2e18cad2d5
commit e02cbc6c06
5 changed files with 48 additions and 18 deletions

View File

@@ -16,6 +16,18 @@
The license applies to all entries newer than 2009-04-28.
*/
2012-01-29 17:22 UTC+0100 Viktor Szakats (harbour syenar.net)
* src/rtl/tget.prg
* src/rtl/getsyshb.prg
+ added support for hash GET variables
* utils/hbmk2/hbmk2.prg
+ added REQUESTs to blowfish, md5, sha1 and few sha2 functions
for 3rd party plugins
* contrib/hbhttpd/core.prg
* fmt
2012-01-27 22:40 UTC+0100 Viktor Szakats (harbour syenar.net)
* contrib/hbhttpd/tests/eshop.prg
* deleted debug line

View File

@@ -251,7 +251,7 @@ STATIC FUNCTION ParseFirewallFilter( cFilter, aFilter )
nPrefix := 32
DO WHILE hb_bitAnd( nI, 1 ) == 0
nPrefix--
nI := hb_bitShift( nI, - 1 )
nI := hb_bitShift( nI, -1 )
ENDDO
IF nI + 1 != hb_bitShift( 1, nPrefix )
RETURN .F.
@@ -339,7 +339,7 @@ STATIC FUNCTION MY_SSL_READ( hConfig, hSSL, hSocket, cBuf, nTimeout, nError )
ELSE // Both cases: data received and timeout
nError := HB_SOCKET_ERR_TIMEOUT
ENDIF
RETURN - 1
RETURN -1
ELSEIF nErr == HB_SSL_ERROR_WANT_WRITE
nErr := hb_socketSelectWrite( hSocket, nTimeout )
IF nErr < 0
@@ -347,11 +347,11 @@ STATIC FUNCTION MY_SSL_READ( hConfig, hSSL, hSocket, cBuf, nTimeout, nError )
ELSE // Both cases: data sent and timeout
nError := HB_SOCKET_ERR_TIMEOUT
ENDIF
RETURN - 1
RETURN -1
ELSE
Eval( hConfig[ "Trace" ], "SSL_READ() error", nErr )
nError := 1000 + nErr
RETURN - 1
RETURN -1
ENDIF
ENDIF
@@ -368,7 +368,7 @@ STATIC FUNCTION MY_SSL_WRITE( hConfig, hSSL, hSocket, cBuf, nTimeout, nError )
nErr := hb_socketSelectRead( hSocket, nTimeout )
IF nErr < 0
nError := hb_socketGetError()
RETURN - 1
RETURN -1
ELSE // Both cases: data received and timeout
RETURN 0
ENDIF
@@ -376,14 +376,14 @@ STATIC FUNCTION MY_SSL_WRITE( hConfig, hSSL, hSocket, cBuf, nTimeout, nError )
nErr := hb_socketSelectWrite( hSocket, nTimeout )
IF nErr < 0
nError := hb_socketGetError()
RETURN - 1
RETURN -1
ELSE // Both cases: data sent and timeout
RETURN 0
ENDIF
ELSE
Eval( hConfig[ "Trace" ], "SSL_WRITE() error", nErr )
nError := 1000 + nErr
RETURN - 1
RETURN -1
ENDIF
ENDIF
@@ -799,7 +799,7 @@ STATIC FUNCTION ParseRequestHeader( cRequest )
cI := Left( cI, nK )
IF ( nK := At( "=", cI ) ) > 0
/* cookie names are case insensitive, uppercase it */
cookie[UPPER(LEFT(cI, nK - 1))] := SubStr( cI, nK + 1 )
cookie[ Upper( Left( cI, nK - 1 ) ) ] := SubStr( cI, nK + 1 )
ENDIF
EXIT
CASE "CONTENT-LENGTH"
@@ -809,7 +809,7 @@ STATIC FUNCTION ParseRequestHeader( cRequest )
server["CONTENT_TYPE"] := cI
EXIT
OTHERWISE
server["HTTP_" + STRTRAN(UPPER(LEFT(aRequest[nI], nJ - 1 ) ), "-", "_" )] := cI
server["HTTP_" + StrTran( Upper( Left( aRequest[ nI ], nJ - 1 ) ), "-", "_" )] := cI
EXIT
ENDSWITCH
ENDIF
@@ -817,9 +817,9 @@ STATIC FUNCTION ParseRequestHeader( cRequest )
IF !( server["QUERY_STRING"] == "" )
FOR EACH cI IN hb_ATokens( server["QUERY_STRING"], "&" )
IF ( nI := At( "=", cI ) ) > 0
get[UUrlDecode(LEFT(cI, nI - 1))] := UUrlDecode( SubStr( cI, nI + 1 ) )
get[ UUrlDecode( Left( cI, nI - 1 ) ) ] := UUrlDecode( SubStr( cI, nI + 1 ) )
ELSE
get[UUrlDecode(cI)] := NIL
get[ UUrlDecode( cI ) ] := NIL
ENDIF
NEXT
ENDIF
@@ -839,7 +839,7 @@ STATIC FUNCTION ParseRequestBody( cRequest )
IF cEncoding == "UTF-8"
FOR EACH cPart IN hb_ATokens( cRequest, "&" )
IF ( nI := At( "=", cPart ) ) > 0
post[ HB_UTF8TOSTR( UUrlDecode( LEFT( cPart, nI - 1 ) ) ) ] := HB_UTF8TOSTR( UUrlDecode( SubStr( cPart, nI + 1 ) ) )
post[ HB_UTF8TOSTR( UUrlDecode( Left( cPart, nI - 1 ) ) ) ] := HB_UTF8TOSTR( UUrlDecode( SubStr( cPart, nI + 1 ) ) )
ELSE
post[ HB_UTF8TOSTR( UUrlDecode( cPart ) ) ] := NIL
ENDIF
@@ -847,7 +847,7 @@ STATIC FUNCTION ParseRequestBody( cRequest )
ELSE
FOR EACH cPart IN hb_ATokens( cRequest, "&" )
IF ( nI := At( "=", cPart ) ) > 0
post[ UUrlDecode( LEFT( cPart, nI - 1 ) ) ] := UUrlDecode( SubStr( cPart, nI + 1 ) )
post[ UUrlDecode( Left( cPart, nI - 1 ) ) ] := UUrlDecode( SubStr( cPart, nI + 1 ) )
ELSE
post[ UUrlDecode( cPart ) ] := NIL
ENDIF
@@ -1653,7 +1653,7 @@ STATIC FUNCTION compile_file( cFileName, hConfig )
BREAK( nPos )
ENDIF
RECOVER USING nPos
Eval( hConfig[ "Trace" ], HB_STRFORMAT( "Template error: syntax at %s(%d,%d)", cFileName, SUBSTRCOUNT( Chr(10 ), cTpl,, nPos ) + 1, nPos - HB_RAT( Chr(10 ), Left(cTpl, nPos - 1 ) ) ) )
Eval( hConfig[ "Trace" ], HB_STRFORMAT( "Template error: syntax at %s(%d,%d)", cFileName, SUBSTRCOUNT( Chr(10 ), cTpl,, nPos ) + 1, nPos - HB_RAT( Chr(10 ), Left( cTpl, nPos - 1 ) ) ) )
aCode := {}
END SEQUENCE
ELSE

View File

@@ -56,7 +56,19 @@ FUNCTION hb_GetReadVar( oGet )
IF oGet:subScript != NIL
FOR n := 1 TO Len( oGet:subScript )
cName += "[" + hb_NToS( oGet:subScript[ n ] ) + "]"
SWITCH ValType( oGet:subScript[ n ] )
CASE "C"
cName += "[" + '"' + oGet:subScript[ n ] + '"' + "]"
EXIT
CASE "D"
cName += "[0d" + DToS( oGet:subScript[ n ] ) + "]"
EXIT
CASE "T"
cName += '[t"' + hb_TSToStr( oGet:subScript[ n ], .T. ) + '"]'
EXIT
OTHERWISE
cName += "[" + hb_NToS( oGet:subScript[ n ] ) + "]"
ENDSWITCH
NEXT
ENDIF

View File

@@ -511,13 +511,13 @@ METHOD varPut( xValue ) CLASS GET
nLen := Len( aSubs )
aValue := Eval( ::bBlock )
FOR i := 1 TO nLen - 1
IF ISNUMBER( aSubs[ i ] )
IF ValType( aSubs[ i ] ) $ "NCDT"
aValue := aValue[ aSubs[ i ] ]
ELSE
EXIT
ENDIF
NEXT
IF ISNUMBER( aSubs[ i ] )
IF ValType( aSubs[ i ] ) $ "NCDT"
aValue[ aSubs[ i ] ] := xValue
ENDIF
ELSE
@@ -542,7 +542,7 @@ METHOD varGet() CLASS GET
nLen := Len( aSubs )
xValue := Eval( ::bBlock )
FOR i := 1 TO nLen
IF ISNUMBER( aSubs[ i ] )
IF ValType( aSubs[ i ] ) $ "NCDT"
xValue := xValue[ aSubs[ i ] ]
ELSE
EXIT

View File

@@ -523,7 +523,13 @@ REQUEST __HBDOC_LOADDIR
REQUEST __HBDOC_TOSOURCE
REQUEST __HBDOC_SAVEHBD
REQUEST HB_REGEX
REQUEST HB_SHA1
REQUEST HB_SHA256
REQUEST HB_SHA512
REQUEST HB_MD5
REQUEST HB_CRC32
REQUEST HB_BLOWFISHKEY
REQUEST HB_BLOWFISHENCRYPT
REQUEST HB_LIBEXT
REQUEST HB_HKEYAT
REQUEST HB_HDELAT