* harbour/include/hbthread.h
* harbour/source/vm/thread.c
* emulate POSIX thread conditional variables in Windows builds.
It should fix some possible bad behavior in MS-Windows Harbour
MT programs.
* harbour/source/rtl/hbinet.c
! fixed typo in HB_INETDATAREADY() - the second parameter (timeout)
was ignored.
* harbour/contrib/examples/uhttpd/uhttpdc.c
* fixed typo in conditional iMsec usage.
* harbour/contrib/examples/uhttpd/uhttpd.prg
* set default timeout for socket operations to 3 sec.
* use timeout parameter in HB_INETDATAREADY() and
increased default timeout for accept to 250 millisecs.
Please correct this modification if you prefer different values.
* utils/hbmk2/hbmk2.prg
+ Normalizing paths of cfg files.
* CCPREFIX, CCPATH renamed to HB_CCPREFIX, HB_CCPATH
(seems these are Harbour specific settings)
* contrib/examples/uhttpd/home/testxmldb.html
* Added Safari as unsupported browser.
(BTW, what would it need to support Safari and Chrome, or
WebKit browsers in general?)
* harbour/contrib/examples/uhttpd/uhttpd.prg
- Commented hb_GCAll() in main loop, I got newly one GPF randomly.
In meanwhile I will do other tests.
! Reverted and corrected closing threads because with last changes
finished threads were not correctly released.
* harbour/source/common/hbgete.c
* added suport for BSD systems
* harbour/contrib/examples/uhttpd/uhttpd.prg
! fixed private declaration - after last modification they were not
declared for threads at all
! fixed close procedure, s_aRunningThreads and s_aServiceThreads
where not protected at all in the moment when these variables
variables where used inside aeval() and other threads were
resizing them removing their pointers. In short word it was
in practice impossible to cleanly close uhttpd server without
GPF, deadlock or other bad side effects. I changed this code so
these arrays are modified only by calling procedure.
I do not know why it was written in such way but I guess it
was workaround for xHarbour bugs. In xHarbour is race condition
inside some functions like ThreadJoin() (RTE if thread finished
just before ThreadJoin(<pThID>)). Harbour does not have such
problems so I simply cleaned this code making it much simpler.
* reactivated hb_gcAll( .T. ) in the main loop for tests.
I made some tests with linux and current uhttpd works perfectly
without any problems with and without hb_gcAll( .t. ).
I haven't noticed any problems. I used this scripts to make
tests:
#!/bin/sh
function GT_UHTTPD()
{
while curl http://127.0.0.1:8082/ > /dev/null
do
if ! curl http://127.0.0.1:8082/serverstatus > /dev/null
then
exit
fi
# disable it if you want to increase traffic
if ! curl http://127.0.0.1:8082/info > /dev/null
then
exit
fi
if [ -f stop ]
then
exit
fi
done
}
for i in `seq 10`
do
GT_UHTTPD &>/dev/null &
done
wait
on three CPU machine. Please make some test with other systems.
* contrib/examples/uhttpd/uhttpdgd.hbm
+ Added *nix GD lib name.
* contrib/hbwin/win_prt.c
! WINPORTWRITE() potential GPF if non char type is passed as 2nd arg.
* harbour/contrib/examples/uhttpd/uhttpd.prg
* Updated uHTTPD (Work in progress)
- Commented hb_GCAll() in main loop, I got one GPF randomly.
* Fixed an error on threads number calculation
* utils/hbmk2/hbmk2.prg
! Fixed -gh switch detection and workings.
(Francesco, pls check now allmod.hbm)
+ -gt switch can now be filtered. (-gtwin{win})
! -gui switch won't anymore add '-Wl,-mwindows' C compiler switch
on *nix systems. Someone pls confirm this is right.
* icc will use -vc postfixed .dlls. They seem to be binary
compatible, but I didn't test.
% Using __PLATFORM__UNIX macro where applicable.
! Ignoring -o Harbour option passed using '-prgflag:'
* INSTALL
+ Added some details.
* mpkg_win.bat
! Don't create install files if the make process returned
with error.
* source/lang/msg_tpl.c
! Removed ending ';'.
* source/vm/Makefile
+ Added icc to generate maindllh.lib.
* source/common/hbfsapi.c
! Removed obsolete 'extern hb_fhnd_ForceLink()'.
* config/rules.cf
* config/lib.cf
* config/bin.cf
% Compiling all .prg files with -n1 switch.
* contrib/examples/uhttpd/uhttpdc.c
* Cleaned Windows headers usage.
#define HB_OS_WIN_USED is safe to use on all platforms,
it just requests the Windows headers, and if compiled on
Windows, it will #include them.
* contrib/examples/uhttpd/uhttpd.prg
+ Automatically sets USE_HB_INET on non-Windows platforms.
- contrib/examples/uhttpd/uhttpd-inet.hbm
- contrib/examples/uhttpd/uhttpdgd-inet.hbm
- Removed files no longer necessary.
* contrib/examples/uhttpd/uhttpd.hbm
+ Added comment about -DUSE_HB_INET option.
% Removed -lhbct
* harbour/contrib/examples/uhttpd/uhttpd.prg
* Updated uHTTPD (Work in progress)
* Updated to work in Linux.
* Fixed PRIVATE use and threads as per Przemek suggestions
* Marked WIN_SYSREFRESH() with USE_WIN_ADDONS define
* Changed WIN_TIMEZONEBIAS() to hb_UTCoffset()
* Changed WIN_SETENV() to hb_SetEnv()
* Minor changes
* harbour/contrib/examples/uhttpd/uhttpdc.c
* Marked WIN_SYSREFRESH() as only windows function
- Deleted WIN_SETENV()
- Deleted WIN_TIMEZONEBIAS()
+ Added hb_UTCoffset()
* harbour/contrib/examples/uhttpd/socket.c
* Guarded for only windows build
* harbour/contrib/examples/uhttpd/session.prg
* Changed FileDate() to hb_FGetDateTime()
* harbour/contrib/examples/uhttpd/uhttpd.ini
* Minor fixes
* harbour/contrib/examples/uhttpd/modules/showcounter.prg
* harbour/contrib/examples/uhttpd/modules/tableservletdb.prg
* fixed Linux build
+ harbour/contrib/examples/uhttpd/uhttpd-inet.hbm
+ harbour/contrib/examples/uhttpd/uhttpdgd-inet.hbm
+ Added as temporary files to build uhttpd under Linux
(they haven't -gui flags that give error as per Przemek
note, instead add -gtxwc as standard gui)
; NOTE:
Przemek please check if hb_UTCOffSet() it is correct, then we have to move in
other place.
Tested all samples and they works.
Modules build need to be fixed (Viktor?) but hrb are built. Need to be copied
manually to ../home/cgi-bin
* include/hbextern.ch
+ Added HB_SETENV()
* utils/hbmk2/hbmk2.prg
* Minor cleanups.
* contrib/examples/uhttpd/uhttpd.hbm
- Removed -n. It's now automatic.
; TODO: Remove the rest.
* INSTALL
* doc/man/hbmk.1
+ config/win/icc.cf
* utils/hbmk2/hbmk2.prg
+ Added Intel(R) C++ compiler support for Windows.
+ Added initial support also in hbmk2.
; This compile is actively developed and its famous of
generating the fastest running code of all C compilers.
It also outputs an extremely detailed warning list.
And the best thing: It compiled Harbour without a single
hitch. hbtest is also running fine. hbmk2 is able to
create executables.
* harbour/contrib/examples/uhttpd/uhttpd.prg
* Updated uHTTPD (Work in progress)
! Fixing memory usage attempt.
Set PRIVATE vars to NIL when not more used and force
collect memory with hb_GCAll( .T. )
* Set Service Threads initial value to 0
+ Added support for directory index files
+ Added support for filters (WIP)
* Added creation of error.log file in case of error
* Minor changes
* harbour/contrib/examples/uhttpd/cgifunc.prg
* Fixed comment
* harbour/contrib/examples/uhttpd/uhttpd.ini
+ DirectoryIndex entry
; NOTE: Please check me for memory usage. I have added a comment
// FSG - memory check
to interested lines. But I'm not sure if this solves the
problem.
* utils/hbmk2/hbmk2.prg
+ Automatically switching to -hbcmp mode if /gh switch is used.
+ In -hbcmp mode it will pass /o option directly to Harbour.
- contrib/examples/uhttpd/modules/bldhrb.bat
+ contrib/examples/uhttpd/modules/allmod.hbm
+ Replaced batch file with hbmk2 make file. It will build
all .hrb files and place them to cgi-bin dir.
* source/rtl/Makefile
* include/hbextern.ch
+ source/rtl/hbstrfmt.c
+ Added HB_STRFORMAT() sprintf()-like formatting.
+ Added hb_StrFormat() C level function.
; Work of Mindaugas sent to the list, with some minor
cleanups applied. Please test on your platform/compiler.
* contrib/examples/uhttpd/uhttpd.prg
* contrib/examples/uhttpd/cgifunc.prg
* contrib/examples/uhttpd/session.prg
* contrib/examples/uhttpd/uhttpd.hbm
* xhb compatibility cleanups.
- xhb lib and header dependency removed.
* utils/hbmk2/hbmk2.prg
* Changed so that libs won't inherit their .hbm file paths.
+ Embedded .hbm files will inherit their parents dir.
- contrib/examples/uhttpd/hbmk.bat
+ contrib/examples/uhttpd/uhttpdgd.hbm
* contrib/examples/uhttpd/uhttpd.prg
* contrib/examples/uhttpd/readme.txt
* Added separate GD enabled .hbm file.
* Remaining hbmk.bat features moved to .prg code and into readme.txt.
* utils/hbmk2/hbmk2.prg
+ Added support for @ and .hbm parameters inside .hbm files.
Currently three levels deep nesting in allowed.
* contrib/xhb/Makefile
+ contrib/xhb/dbf2txt.c
+ Added DBF2TXT() function from xhb.
; TODO: RPC support and HB_SERVICE*() API ?
* INSTALL
* make_b32.bat
* doc/gmake.txt
* bin/postinst.bat
* bin/hb-mkdyn.bat
* make_gnu.bat
* contrib/hbfimage/readme.txt
* contrib/examples/uhttpd/modules/bldhrb.bat
* source/vm/Makefile
* source/rtl/console.c
* source/compiler/gencobj.c
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/examples/winapi.hbp
- config/win/bcc32.cf
+ config/win/bcc.cf
* Long time TODO done: Renamed bcc32 compiler name to bcc.
bcc32 is still accepted by make_gnu.bat, but will be
removed in the future, so it's recommended to update
your local settings to use:
set HB_COMPILER=bcc
- config/dos/bcc16.cf
- Deleted bcc16 compiler support. I didn't work since ages,
and Harbour doesn't support 16-bit compilers anyway.
* config/lib.cf
* config/bin.cf
+ Added -n to Harbour flags to bin.cf.
+ Added -n1 to Harbour flags to lib.cf.
; TOFIX: The former works, the latter doesn't.
Could someone please help why is this
happening?
* utils/hbmk2/hbmk2.prg
- Removed -n from default Harbour switches.
; TODO: Add prgflags=-n to all .hbp files.
; TODO: Add -n to all .hbm files.
; TODO: Add .hbp file to dirs where there are .prgs
needing -n flag.
+ bin/hb-mkdll.bat
+ Added .dll creation for GNU-make. Not yet enabled,
only MSVC supported, and by the nature of the
wonderful world of Microsoft, whole Harbour needs
to be compiled with HB_USER_CFLAGS=-DHB_DYNLIB to
make this work. -DHB_DYNLIB has some drawbacks
though: export table will be generated for all
executables made from these .libs, .exp/.lib will
also be generated for all executables.
; TODO: Solve to compile Harbour lib .prgs using
-n1 switch. (needed for .dll, and this
one has only befenefits for other scenarios)
; TODO: Add hb-mkdll.bat to postinst.bat.
; TODO: Add BCC support, if possible.
; TODO: Rename hb-mkslib.sh to 8.3 name and sync
name with the .bat version (not necessarily
mkdll, but something short.)
* bin/hb-func.sh
! Added system libs for optional components included
in the harbour dynlib. I plan to make some more
changes here, but this should fix missing system
libs with shared option enabled in hbmk2.
* contrib/examples/dbu/dbu.hbm
* contrib/examples/rl/rl.hbm
+ Added -n.
* utils/hbdoc/Makefile
* utils/hbmk2/Makefile
* utils/hbtest/Makefile
* utils/hbi18n/Makefile
* utils/hbrun/Makefile
- Removed explicit -gc0 -n override.
Should now be set automatically for all binaries.
+ contrib/examples/dbu/dbu.hbm
- contrib/examples/dbu/hbmk.bat
* contrib/examples/dbu/readme.txt
+ contrib/examples/rl/rl.hbm
- contrib/examples/rl/hbmk.bat
* contrib/examples/rl/readme.txt
+ Replace Win/DOS specific batch files with hbmk make
file, so now all platforms are equally supported.
- contrib/examples/dbu/hb_dbu.dif
+ contrib/examples/dbu/dbu.dif
* Renamed.
* utils/Makefile
! Fixed broken GNU Make after recent directory rename.
* utils/hbmk/hbmk2.prg
* -q switch changed to -quiet to not collide with harbour option
of the same name.
+ Following C flags will automatically be inheried to
*nix/gcc|gpp compilers regardless of -bldf flag:
-mlp64, -mlp32, -m64, -m32, -fPIC, -fpic
+ Following C flags will be automatically processed and
relevent system libs added:
-DHB_PCRE_REGEX - pcre
-DHB_EXT_ZLIB - z
-DHAVE_GPM_H - gpm
! Stripping 'lib' prefix from lib names for gcc-family compilers.
! Stripping extension from lib names for gcc-family compilers.
; Please review.
* contrib/examples/uhttpd/hbmk.bat
* .lib extensions removed from HB_USER_LIBS.
- tests/hbmk_gnu.bat
- Removed.
* contrib/examples/uhttpd/hbmk.bat
* contrib/examples/dbu/hbmk.bat
* contrib/examples/rl/hbmk.bat
* Made them compatible with Win9x/NT systems again.
* source/lang/msg_tpl.c
+ Added NOTE about date format.
* source/lang/msgbe866.c
* source/lang/msgbewin.c
* source/lang/msgbg866.c
* source/lang/msgbgiso.c
* source/lang/msgbgmik.c
* source/lang/msgbgwin.c
* source/lang/msgit.c
* source/lang/msgnl.c
* source/lang/msgsl437.c
* source/lang/msgsl852.c
* source/lang/msgsliso.c
* source/lang/msgslwin.c
! Fixed date formats to only contain YYYY MM and DD.
Plus the format itself corrected in a few places.
* utils/hbmk/hbmk.prg
+ Added TODO
% Added ANNOUNCE HB_GTSYS / REQUEST HB_GT_STD_DEFAULT.
Since this tools doesn't need anything fullscreen, and
this way it's faster smaller, yet portable.
* ChangeLog
* Few old TODO/TOFIX statuses updated.
* contrib/hbapollo/tests/hbapollo.hbp
+ Added filters.
; TOFIX: hbapollo test doesn't link with MSVC.
- contrib/hbapollo/tests/hbmk.bat
- contrib/gtwvg/tests/hbmk.bat
- contrib/hbbtree/tests/hbmk.bat
- contrib/examples/terminal/hbmk.bat
- contrib/examples/terminal/hbmk_trm_appn.bat
- Removed batch versions of make files.
Go to the directory the source are located and
use the .hbm files where there is one, or just pass
the .prg name to hbmk.exe.
* utils/hbmk/hbmk.prg
! Fixed handling lib/source files with double extensions.
! Fixed to not add empty items to lists in some occasions.
+ Added -q to suppress informational output + header.
* utils/hbmk/hbmk.prg
+ Added support for '#' comment lines in .hbm files.
+ Added support to automatically convert slashes/backslashes
in passed libnames and prg options.
* Cleanup on computing Harbour location. I didn't test all
situations here. This should fix previous versions not
honoring explicit HB_*_INSTALL envvars.
+ Added support for POCC (untested).
+ contrib/hbct/tests/hbct.hbp
+ contrib/examples/terminal/terminal.hbp
+ contrib/examples/terminal/trm_appn.hbm
+ Added new hbmk files to show what it takes to replace
the current system, but this time fully supporting
all Harbour platforms.
To use these just run hbmk, either from the path, or
by directly pointing to it:
..\..\..\bin\hbmk.exe <test.prg>
..\..\..\bin\hbmk.exe trm_appn.hbm
.exe can be dropped as soon as we delete out hbmk.bat file.
* bin/hbmk.bat
+ Added support for pure .c projects. (like pp)
* contrib/examples/pp/hbmk_b32.bat
* contrib/examples/pp/hbmk_vc.bat
* contrib/examples/guestbk/hbmk_b32.bat
* contrib/examples/guestbk/hbmk_vc.bat
* contrib/examples/pe/hbmk_b32.bat
* contrib/examples/pe/hbmk_vc.bat
* contrib/examples/hbsqlit2/tests/hbmk_b32.bat
* contrib/examples/hbsqlit2/tests/hbmk_vc.bat
* contrib/examples/uhttpd/hbmk_b32.bat
* contrib/examples/uhttpd/hbmk_vc.bat
* contrib/examples/dbu/hbmk_b32.bat
* contrib/examples/dbu/hbmk_vc.bat
* contrib/examples/terminal/hbmk_b32.bat
* contrib/examples/terminal/hbmk_b32_trm_appn.bat
* contrib/examples/terminal/hbmk_vc.bat
* contrib/examples/terminal/hbmk_vc_trm_appn.bat
* contrib/examples/hscript/hbmk_b32.bat
* contrib/examples/hscript/hbmk_vc.bat
* contrib/examples/rl/hbmk_b32.bat
* contrib/examples/rl/hbmk_vc.bat
* utils/hbdoc/hbmk_b32.bat
* utils/hbdoc/hbmk_vc.bat
* utils/hbmake/hbmk_b32.bat
* utils/hbmake/hbmk_vc.bat
% Much simplified batch files. Actually the content of vc
and b32 are fully identical, so you can easily create new
flavours for GCC and OpenWatcom by simply making a copy by
the name hbmk_gcc.bat or hbmk_ow.bat. Et voila.
; NOTE: As indicated, these won't work with Win9x anymore.
* contrib/examples/pp/hbppcore.c
+ Added <ctype.h> to make it compile with recent Harbour.
* bin/hbmk.bat
+ Added detection for .PRG written in uppercase.
(needed for DBU original sources.)
! Fixed to set 'echo off'
* contrib/examples/guestbk/hbmk_b32.bat
* contrib/examples/guestbk/hbmk_vc.bat
* contrib/examples/dbu/hbmk_b32.bat
* contrib/examples/dbu/hbmk_vc.bat
* utils/hbdoc/hbmk_b32.bat
* utils/hbdoc/hbmk_vc.bat
* utils/hbmake/hbmk_b32.bat
* utils/hbmake/hbmk_vc.bat
% Switched to use hbmk instead of using local logic.
* ChangeLog
+ Added one item to previous entry.
+ contrib/examples/terminal/hbmk_b32.bat
+ contrib/examples/terminal/hbmk_b32_trm_appn.bat
+ contrib/examples/terminal/hbmk_vc.bat
+ contrib/examples/terminal/hbmk_vc_trm_appn.bat
+ Added build batches, one generic for client and server,
and one special for trm_appn.
; NOTE: Turn off Unicode when building these apps.
* include/hbdefs.h
* contrib/gtwvg/gtwvg.h
* contrib/gtwvg/wvggui.h
* contrib/examples/terminal/trm_client.prg
+ Added HB_EXTERN_START/END.
* include/hbdefs.h
+ Added some comments from the original mail from Przemek.
* harbour/contrib/gtwvg/wvgcore.c
! Fixed hb_wvt_Get|SetStringAttrib()s to respect return errcode.
+ harbour/contrib/examples/terminal
+ harbour/contrib/examples/terminal/terminal.prg
+ harbour/contrib/examples/terminal/terminal.ch
+ harbour/contrib/examples/terminal/trm_server.prg
+ harbour/contrib/examples/terminal/trm_client.prg
+ harbour/contrib/examples/terminal/trm_appn.prg
+ harbour/contrib/examples/terminal/reame.txt
+ Added components for Harbour Terminal Protocol
Welcome in the world of Harbour Terminal Protocol
=================================================
Harbour Terminal Protocol is build on three components:
1) Terminal Server
2) Terminal Client
3) The Harbour Application
Terminal Server
===============
Source => trm_server.prg
Link => GTWVG
Run => trm_server.exe 2011
Parameter => <TCP/IP Port number - [D] 8085 ]
Mode => MT ( Multi Threaded )
Terminal Server will reside on the same machine or network ( as of now )
where Harbour Application resides. Harbour Application must be able
to be run by ShellExecute() WINAPI function issued by the Terminal Server.
Terminal Client
===============
Source => trm_client.prg
Link => GTWVG
Run => trm_client.exe <IP - 127.0.0.1 | vouch.dynalias.com>
<Port where Terminal Server is Listening - 2011>
<Harbour Application - c:\harbour\contrib\examples\terminal\trm_appn.exe>
[Parameters - Norammly Supplied to Appln - Separated by SPACE ]
[InitDirectory - Harbour Application's Startup Folder ]
Mode => ST ( Single Threaded )
Terminal Client can be distributed anywhere there is ACCESS TO designated TCP/IP port,
be it a network clinet or any computer having internet avalable.
Parameters supplied TO Harbour Client can be on command line or as an .ini file.
.Ini file may contain these entries:
ServerIP = 127.0.0.1 | vouch.dynalias.com
ServerPort = 2011
Application = c:\harbour\contrib\examples\terminal\trm_appn.exe
Parameters = any number of parameters separated by a space
InitDirectory = Complete Folder path from where Harbour Appln will be invoked.
IF parameters are supplied as .ini file, then .ini filename ( without path ) will be the
only parameter - note - only one parameter passed on the command line.
Harbour Application
===================
Source(s) => trm_appn.prg | Your program sources +
terminal.prg +
terminal.ch
Link => GTWVG
Run => No
Mode => ST ( Single Thread )
Main() FUNCTION in Harbour Application will have TO be modified TO accept
one additional parameter <cServerInfo> at the END of the usual parameters
your application is accepting as ususal. And make sure that you send the same
number of parameter either on the command line or through .ini file.
<cServerInfo> parameter is supplied by Harbour Terminal Server.
At just start of the Harbour Application, immediately after variable definitions
in main() add these lines:
FUNCTION Main( [p1] [, p2] [, p3], cServerInfo )
LOCAL x, y
// Required it initialize the GTWVG window
SetColor( 'N/W,W/B,W+/N' )
CLS
? ' '
#ifdef __REMOTE__
// cServerInfo will be supplied by the Remote Server
//
RmtSvrSetInfo( cServerInfo )
IF ( nServerPort := RmtSvrSetInfo( 1 ) ) <> NIL .and. nServerPort > 0
IF !RmtSvrInitialize( NTRIM( nServerPort ), 60/*nTimeoutClient*/, 0.5 /*nTimeRefresh*/ )
Quit
ENDIF
ENDIF
#endif
...
...
RETURN
Must remember to issue - ANNOUNCE HB_NOSTARTUPWINDOW - somewhere in your sources
Please note that we do not want to show up the Harbour console on the server so
HB_NOSTARTUPWINDOW symbol must be defined.
And this is the only requirement for your appln to be NET ready.
Technical Overview
==================
Client connects to Server.
Server looks for a free port - 45000+.
Server invokes Harbour Application with client supplied parameters + <cSerrverInfo==45000+>.
Harbour Application itself behaves as server on start listening on designated port.
Server informs back to Client about this port where Harbour Application is listening.
Client connects to Harbour Application on designated port.
If connection is successful, Server closes the connection from Client and Application.
Client and Application then have the direct communication.
Client transmits the keystrokes and Application reacts TO those events as IF supplied via keyboard.
Application transmits the screen buffer back TO client IF there have been any changes.
Application also transmits special commands, call them 'Remote Procedure Calls'.
Client responds TO received buffer according TO instruction it contains.
Client retrieves buffer per command basis.
Events are not serialized.
The Bottom Line
===============
The protocol above works as expected but is not as sophisticated as it should be.
GTNET as Przemek has been talking about will be the perfect solution though this
can be the basis FOR future enhancements. A lot can be improved, i.e., remote
printing, etc., which I hope you Gurus can implement in no times.
It is my humble contribution TO the Harbour world.
Regards
Pritpal Bedi <pritpal@vouchcac.com>
a student of software analysis & design
* harbour/contrib/examples/uhttpd/uhttpd.prg
* Updated uHTTPD (Work in progress)
+ Added support for Sessions
* Fixed ini file support
* harbour/contrib/examples/uhttpd/cgifunc.prg
* Fixed some functions
+ harbour/contrib/examples/uhttpd/session.prg
+ Session class
* harbour/contrib/examples/uhttpd/modules/info.prg
+ Added display of SESSION vars
+ Added a simple example of SESSIONS
* harbour/contrib/examples/uhttpd/hbmk_b32.bat
* harbour/contrib/examples/uhttpd/hbmk_b32.bat
+ Added new files
+ harbour/contrib/examples/uhttpd/sessions
+ Added folder used in samples
* utils/hbrun/hbrun.prg
+ If a .dbf file is passed on the command line, hbrun will
open it.
* contrib/examples/uhttpd/hbmk_vc.bat
* Updated.
* contrib/examples/uhttpd/hbmk_b32.bat
% Minor opt.
* harbour/contrib/examples/uhttpd/uhttpd.prg
* Updated uHTTPD (Work in progress)
+ Added HRB caching (set #define HRB_ACTIVATE_CACHE .T. to enable)
+ Added support for Cookies
* Formatted
! Renamed all public functions with uhttpd_ prefix (TOCHECK)
+ Added support for array content in POST variables
* Optimized some code
+ harbour/contrib/examples/uhttpd/cgifunc.prg
+ Some helper function moved here from uhttpd prg and added
some functions of mine
+ harbour/contrib/examples/uhttpd/cookie.prg
+ Cookie class
+ harbour/contrib/examples/uhttpd/modules/cookie.prg
+ cookie sample module
+ harbour/contrib/examples/uhttpd/home/postsample.html
+ POST example
* harbour/contrib/examples/uhttpd/uhttpd.ini
+ Added new script alias for cookie sample
* harbour/contrib/examples/uhttpd/hbmk_b32.bat
* harbour/contrib/examples/uhttpd/home/index.html
* harbour/contrib/examples/uhttpd/home/testxmldb.html
* harbour/contrib/examples/uhttpd/modules/bldhrb.bat
* harbour/contrib/examples/uhttpd/modules/info.prg
* harbour/contrib/examples/uhttpd/modules/showcounter.prg
* harbour/contrib/examples/uhttpd/modules/tableservletdb.prg
* Updated for new function prefix and some formatting