* contrib/make.hbs
+ Defined _HB_BUILD_=yes to tell .hbp files we're building
for a Harbour build.
* contrib/hbnetio/utils/hbnetio/hbnetioc.hbp
* contrib/hbformat/utils/hbformat.hbp
+ Tweak to not build in -shared mode when directly building
the .hbp file (and not as part of Harbour build).
* contrib/hbnetio/utils/hbnetioq/hbnetioq.hbp
* contrib/hbide/hbide.hbp
+ Added tweak to build in shared mode when building as
part of Harbour build. This will make the distro size
noticeably smaller.
* contrib/hbnetio/utils/hbnetio/netiosrv.prg
* contrib/hbnetio/utils/hbnetio/netiocon.prg
+ Show server config feature converted to client-server.
* contrib/hbplist
+ Added hbnetioc to tools automatically built.
This is management console for hbnetio deamon.
* contrib/hbnetio/utils/hbnetio/hbnetioc.hbp
* Tweak to build hbformat in shared mode for
win/wce/os2 systems.
* utils/hbmk2/hbmk2.hu_HU.po
! Minor fix.
* utils/hbmk2/hbmk2.prg
! Resolved TOFIXes related to cygwin.
+ Added -head=dep option. Nothing fancy, just making room for it.
* utils/hbmk2/hbmk2.prg
+ Changed to use hb_milliSeconds() to measure build time
when using -debugtime option. This will now work precisely
for builds taking more than 1 day.
* utils/hbmk2/hbmk2.prg
+ Added experimental support for creating extern headers in .hbx.
It's currently only supported for static libs (-hblib mode),
and only for gcc based compilers (can be extended to all
platorms where 'nm' tool is available), msvc, pocc, watcom
and bcc compilers. Some of these have not been tested.
The feature implements the same functionality which already
exists in Harbour build system (enabled with HB_REBUILD_EXTERN=yes),
but now integrated into hbmk2 and with few minor enhancements.
* contrib/hbnetio/utils/hbnetio/hbnetio.hbp
* contrib/hbnetio/utils/hbnetio/hbnetioc.hbp
* contrib/hbnetio/utils/hbnetio/netiosrv.prg
+ contrib/hbnetio/utils/hbnetio/netiocon.prg
- contrib/hbnetio/utils/hbnetio/netiocui.prg
+ contrib/hbnetio/utils/hbnetio/netiocmd.prg
+ Split netiocui.prg into cmdline tool and
console logic. The latter is now used by both
the daemon tool and cmdline tool.
* contrib/hbplist
- contrib/hbnetio/utils/netiosrv/netiosrv.hbp
+ contrib/hbnetio/utils/netiosrv/hbnetio.hbp
- contrib/hbnetio/utils/netiosrv/netiocui.hbp
+ contrib/hbnetio/utils/netiosrv/hbnetioc.hbp
- contrib/hbnetio/utils/netiosrq/netiosrq.hbp
+ contrib/hbnetio/utils/netiosrq/hbnetioq.hbp
! Renamed back to get in sync with installer.
; TOFIX: Change hbnetioq to a pure management client without
embedded server daemon code. Pritpal, can you do it?
; TODO: Change hbnetio to be pure server daemon and add separate
management console tool. Or, it's possible to put the
console UI in a lib and keeping it included in daemon
for convenience.
* harbour/src/rdd/wacore.c
% minor optimization
* harbour/src/rdd/usrrdd/usrrdd.c
+ extended USRRDD_ID() to accept RDD name as parameter
* harbour/src/rdd/usrrdd/rdds/arrayrdd.prg
* harbour/src/rdd/usrrdd/rdds/logrdd.prg
! fixed to not use:
( AScan( RDDLIST( RDT_FULL ), "ARRAYRDD" ) - 1 )
to extract RDD ID.
In theory it could work if RDDLIST( 0 ) is used instead
of RDDLIST( RDT_FULL ) anyhow it's much more efficient to
simply store RDD ID in static variable inside *_GETFUNCTABLE()
function
* contrib/hbnetio/utils/netiosrv/netiosrv.prg
* contrib/hbnetio/utils/netiosrv/netiocui.prg
+ Added 'clientinfo <ip:port>' console command. This will
display the self-identification variable sent by the client
to the server on connect. It's fully up to the client what
this info contains. The command works for both normal
and management connections.
+ Added 'adminfo' console command to list management client
connections.
+ Added stream based "cargo" data exchange based on Przemek's
code, purely as an experiment. Cargo data will be shown
in connection lists.
% Optimized out redundant connector code in console UI.
* harbour/include/hbcompdf.h
* harbour/src/compiler/hbmain.c
* save and restore compiler settings when separated .prg files are
compiled as different modules. Files compiled as single module
(i.e. by .clp files, #included, added by DO ... [WITH ...], etc.)
are still compiled using the same settings inheriting any modifications
introduced by #pragma. It's intentional behavior.
* contrib/hbnetio/utils/netiosrv/netiosrv.prg
* contrib/hbnetio/utils/netiosrv/netiocui.prg
+ RPC command names changed to begin with "hbnetiomgm_" (instead of "netio_")
% Using constants for default ip/port and showing them
dynamically in help screens.
+ Cleaned CUI options now there is simple -addr=<ip[:port]> format
supported.
* CUI option -adminpass= renamed to -pass=.
+ CUI now supports disconnect/connect command on the console.
connect will ask for the password if omitted.
It also means that console can now be in 'disconnected' state.
This will be the mode it starts up when no password is
specced on the cmdline.
* contrib/hbnetio/utils/netiosrv/netiosrv.prg
+ Added 'netio_ping' RPC function.
(utilitzed to detect broken connection. Is there a better way?)
* contrib/hbnetio/utils/netiosrv/netiosrv.hbp
- contrib/hbnetio/utils/netiosrv/netiocmd.prg
+ contrib/hbnetio/utils/netiosrv/netiocui.prg
* Renamed console UI source.
+ Added 'exit' command to console UI, to
simply exit the console.
+ Added detection of lost connection in console UI.
% Deleted NETIO_DISCONNECT() call. Not needed ti
NETIO_GETCONNCETION().
+ Added support for standalone console UI
build mode. Added required entry/cmdline help functions.
+ Added error msg when connection to server management
failed.
+ contrib/hbnetio/utils/netiosrv/netiocui.hbp
+ Added .hbp file for standalone console UI.
* harbour/src/pp/hbpp.c
* modified syntax info to keep output well formatted for 80 columns
* harbour/src/pp/hbpp.1
* updated
* harbour/src/rdd/dbf1.c
* harbour/src/rdd/delim1.c
* harbour/src/rdd/sdf1.c
* harbour/contrib/rddsql/sqlbase.c
! added protection against GPF when wrong field index is passed to
{GET|PUT}VALUE[FILE]() methods
* contrib/hbnetio/utils/netiosrv/netiosrv.prg
* contrib/hbnetio/utils/netiosrv/netiocmd.prg
+ Help text now show port and iface defaults.
+ Client info is now stored in the connection
table (not used anywhere ATM). Finally solved it by
using thread ID to identify connections in RPC server side.
+ Added thread ID to the per connection data structure.
+ 'show' command now shows thread ID instead of ordinal.
* contrib/hbnetio/utils/netiosrv/netiosrv.prg
* contrib/hbnetio/utils/netiosrv/netiocmd.prg
! 'netio_logconn()' RPC was returning wrong value.
+ Console UI extended to use NETIO_GETCONNECTION() and
use pConnection to make RPC calls. Which opens the door
to support multiple server connections at the same time.
+ Added experimental code for management client indentification.
Currently the management client will identify itself right
after connection, and this information will be shown on the
server console.
; QUESTION: How to find out in an RPC call on the server side,
which connection it belongs to?
; QUESTION: Should NETIO_DISCONNECT() support optional pConnection
parameter (instead of IP/port pair)?
* contrib/hbnetio/utils/netiosrv/netiosrv.prg
* contrib/hbnetio/utils/netiosrv/netiocmd.prg
+ Console UI moved to separate thread and it's now fully
contained in netiocmd.prg. The only communication between
console UI and netio server is via remote management RPC
interface.
This means the console UI can be easily removed or moved
to separate executable.
+ Added -noui cmdline option which disables interactive console.
; Little rough around the edges, but it show the capabilities.
* contrib/hbnetio/utils/netiosrv/netiosrv.prg
* contrib/hbnetio/tests/netiomt1.prg
+ Added 'netio_conninfo' remote mgmnt command.
It will return all client connections in an array of hashes.
* contrib/hbnetio/utils/netiosrv/netiosrv.prg
* contrib/hbnetio/utils/netiosrv/netiocmd.prg
+ contrib/hbnetio/tests/netiomt1.prg
+ Added secondary server interface for remote management. Little hacky
and incomplete yet.
New options added: -adminport, -adminiface, -adminpass
+ Added remote management function: "netio_shutdown" (similar to 'quit' command)
+ Added 'shconn' and 'noshconn' commands to enable/disable
console feedback when client connects/disconnects.
(this is permanently enabled for management connections)
* contrib/hbnetio/utils/netiosrq/netiosrq.hbp
% Fixed: wrong path.
* contrib/hbnetio/utils/netiosrq/netiosrq.prg
! Adopted: Latest changes in netio_* API.
+ Implemented: Bytes sent and received per connection.
* contrib/hbnetio/utils/netiosrv/netiosrv.prg
* contrib/hbnetio/utils/netiosrv/netiocmd.prg
+ Added command to enable/disable incoming connections.
(noconn/conn commands)
It makes client crash with read error, so I'm not sure if
this is good solution, or how to solve it better.
* Renamed 'conn' command to 'show'.
* contrib/hbnetio/utils/netiosrv/netiosrv.prg
* contrib/hbnetio/utils/netiosrv/netiocmd.prg
+ Added command to stop specific or every connection.
Using 'stop <ip:port>' or 'stop all'.
* harbour/src/vm/itemapi.c
* do not clear parameter when NULL item is passed to
hb_itemParamStore*() functions
* harbour/contrib/hbnetio/netiosrv.c
* harbour/contrib/hbnetio/readme.txt
- removed NETIO_SRVSOCKET()
* harbour/ChangeLog
* marked TODO as DONE
* contrib/hbnetio/utils/netiosrv/netiosrv.hbp
! Corrected relative path to hbnetio.hbc
* contrib/hbnetio/hbnetio.hbc
! Added missing incpath option.
* contrib/hbnetio/hbnetio.ch
* contrib/hbnetio/netiosrv.c
! Typo: NETIO_SRVINFO_PEERADDRES -> NETIO_SRVINFO_PEERADDRESS
* contrib/hbnetio/netiosrv.c
- Deleted: NETIO_OPENFILESCOUNT().
; TODO: Pls update netiosrq to use the new interface.
Same for netiosrv. I'll do it in next commit.
* contrib/hbnetio/hbnetio.ch
! Added notice that this .ch file is used also by .c code.
* harbour/include/hbapiitm.h
* harbour/src/vm/itemapi.c
+ added new C function hb_itemParamStoreRelease()
* modified hb_itemParamStore*() functions to accept NULL items
+ harbour/contrib/hbnetio/hbnetio.ch
* harbour/contrib/hbnetio/netio.h
* harbour/contrib/hbnetio/netiosrv.c
* harbour/contrib/hbnetio/readme.txt
+ extended NETIO_SRVSTATUS() function so now it can be used to
extract some additional information about connection socket:
NETIO_SRVSTATUS( <pConnectionSocket>
[, <nStreamID> | <nSrvInfo>, @<xData> ] )
-> <nStatus>
<nSrvInfo> can be:
NETIO_SRVINFO_FILESCOUNT
NETIO_SRVINFO_BYTESSENT
NETIO_SRVINFO_BYTESRECEIVED
NETIO_SRVINFO_PEERADDRES
; TODO: please eliminate NETIO_SRVSOCKET() from any code using it.
It's too danger so I'll remove this function from HBNETIO soon.
NETIO_SRVOPENFILESCOUNT() is also redundant now and can be
replaced by:
NETIO_SRVSTATUS( pConnSock, NETIO_SRVINFO_FILESCOUNT, @nCount )
so it can be removed too.
* contrib/hbnetio/utils/netiosrv/netiosrv.prg
* contrib/hbnetio/utils/netiosrv/netiocmd.prg
+ Added 'conn' console command to show number of connections
and show information for all connections. The data includes
IP and port, time of connection, no. of open files.
Utilizing some concepts from Pritpal's netiosrq code, but
rewritten, so new code doesn't use STATIC var, it's
little bit more efficient. I didn't implement unfinished
features, like byte counting.
* contrib/hbplist
- contrib/hbnetio/utils/netiosrv/hbnetio.hbp
+ contrib/hbnetio/utils/netiosrv/netiosrv.hbp
* Renamed.
* contrib/hbnetio/netiosrv.c
! Fixed build-stopper typo in this modification:
2011-01-25 12:41 UTC-0800 Pritpal Bedi
I'd like to ask developers to _at least_ do _build test_
before committing to SVN !!!
Obviously this wasn't done for the above commit.
- contrib/hbnetio/utils/netiosrq/netiosrvq.prg
+ contrib/hbnetio/utils/netiosrq/netiosrq.prg
- contrib/hbnetio/utils/netiosrq/netiosrvqt.hbp
+ contrib/hbnetio/utils/netiosrq/netiosrq.hbp
- contrib/hbnetio/utils/netiosrq/netiosrvq.qrc
+ contrib/hbnetio/utils/netiosrq/netiosrq.qrc
- contrib/hbnetio/utils/netiosrq/harbour.ico
! Fixed inconsistent names.
- Deleted Windows specific icon file.
! Fixed long filenames.
+ Added icon for OS/2.
; TOFIX: Build doesn't work due to missing external (CONFIRMBOX).
* contrib/hbhpdf/harupdf.c
+ Added wrapper for HPDF_UseUTFEncodings().
It requires 2.3.0 which is not released yet, so it's also not
the version hosted in Harbour SVN.
* utils/hbmk2/hbmk2.prg
! Minor typo in help text.
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.es_PE.po
+ Updated from source.
* contrib/hbmxml/tests/rem.xml
* contrib/hbmxml/tests/rem_err.xml
! Added missing EOL @ EOF.
* contrib/hbunix/hbposix.h
+ Added generic macro to accept both logical and numeric type for
boolean-like input parameters.
* contrib/hbunix/tests/testdmn.prg
* contrib/hbunix/daemon.c
+ UNIX_DAEMON(): Changed to accept numeric value for logical parameters.
+ UNIX_DAEMON(): Changed to return numeric value.
; Patch by Tamas.
* config/hb_c.cfg
* Changed to align assignments.
! Fixed to align case statments like it's done in Harbour.
* contrib/gtwvg/wvgcuig.c
* contrib/gtwvg/wvgwin.c
* contrib/gtwvg/wvgutils.c
* contrib/gtwvg/wvgcore.c
* contrib/gtwvg/wvgwing.c
* Reformatted with uncrustify.
Results are fantastic with this tool.