aed2388134151a9d7dfd83fa874f13d64ec00c71
13 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
81c9b0506c |
2010-06-04 15:21 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* contrib/*
* Deleted 'www.' from harbour-project.org website name.
(www.harbour-project.org -> harbour-project.org)
|
||
|
|
bfd863c576 |
2010-04-30 11:39 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/hbznet.c
! fixed stupid typo which caused that hb_znetFlush() in encrypted
buffers never returned 0 (the returned value was increased by 4)
* harbour/contrib/hbnetio/netio.h
* harbour/contrib/hbnetio/netiocli.c
* harbour/contrib/hbnetio/netiosrv.c
* harbour/contrib/hbnetio/readme.txt
+ added support for communication streams/channels which allow to
send asynchronously data from server to client.
The following client side functions had been added:
NETIO_OPENDATASTREAM( <cStreamFuncName> [, <params,...>] )
-> <nStreamID>
NETIO_OPENITEMSTREAM( <cStreamFuncName> [, <params,...>] )
-> <nStreamID>
NETIO_CLOSESTREAM( <nStreamID>, [<cServer>], [<nPort>] )
-> <lOK>
NETIO_GETDATA( <nStreamID>, [<cServer>], [<nPort>] )
-> <aData> | <cData> | NIL
The following server side functions had been added:
NETIO_SRVSTATUS( <pConnectionSocket> [, <nStreamID>] )
-> <nStatus>
NETIO_SRVSENDITEM( <pConnectionSocket>, <nStreamID>, <xData> )
-> <lSent>
NETIO_SRVSENDDATA( <pConnectionSocket>, <nStreamID>, <cData> )
-> <lSent>
+ added RT errors to the netio client code. They should help to early
detect any communication problems
! disabled hb_socketSetNoDelay() in client and server code.
I enabled it for some local tests and by mistake committed to SVN
and I didn't noticed it. It could cause serious problems in some cases
i.e. with slow WiFi or WAN connections.
Warning: server signature changed due to extensions in protocol.
both client and server side has to be updated and use
current SVN code.
+ harbour/contrib/hbnetio/tests/netiot03.prg
+ added demonstration/test code for alternative RDD IO API, RPC and
asynchronous data streams in HBNETIO
|
||
|
|
c07ce7ddf9 |
2010-01-16 02:12 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbnetio/tests/netiotst.prg
! Fixed to REQUEST dir related functions to avoid RTE.
- contrib/hbnetio/tests/data
- Deleted. Now it's created by RPC call.
* contrib/hbwin/tests/testprn.prg
* Formatting.
* contrib/hbwin/win_prn1.c
! Using constants for dmOrientation.
|
||
|
|
51934abb5c |
2010-01-12 16:44 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/common/hbstr.c
* Formatting.
* contrib/hbwin/win_prn3.c
+ Added static versions of strlen and strncat working on TCHARs,
to replace lstrlen(), lstrcat() unsafe calls.
* contrib/hbnetio/utils/netiosrv.prg
+ Option renamed: -addr= -> -iface=
+ Added warning for unknown options.
* contrib/hbnetio/tests/netiot02.prg
+ Date setup.
* contrib/hbcurl/hbcurl.c
* contrib/hbssl/ssl.c
* contrib/hbssl/pem.c
! Wrapped hb_vmEvalBlockV() calls between hb_vmRequestReender()
and hb_vmRequestRestore() call pairs.
|
||
|
|
eaa5203f84 |
2010-01-11 16:24 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
+ harbour/contrib/hbnetio/tests/netiot02.prg
+ added yet another example of NETIO client.
It needs netiosrv executed on the same machine,
see comments inside this code for details.
|
||
|
|
839697c9bc |
2010-01-11 14:10 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/contrib/hbnetio/tests/netiotst.prg
* added netio_disconnect() to test code
* harbour/ChangeLog
* harbour/examples/gtwvw/gtwvw.c
! replaced TABs with spaces
* harbour/contrib/hbnetio/tests/hbmk.hbm
* harbour/examples/hbdoc/examples/hbmisc/readme.txt
* harbour/examples/gtwvw/hbgtwvw.h
* harbour/examples/gtwvw/hbole.h
! fixed hardcoded \r\n EOLs
* harbour/src/vm/strapi.c
* harbour/src/common/strwild.c
* harbour/src/nortl/nortl.c
* harbour/src/nortl/Makefile
* harbour/src/rtl/hbascii.c
* harbour/src/rtl/hbsocket.c
* harbour/src/rtl/hbbffnc.c
* harbour/src/rtl/hbznet.c
* harbour/src/rtl/hbbfish.c
* harbour/src/rtl/hbbyte.c
* harbour/src/codepage/uc646_yu.c
* harbour/src/codepage/cphriso.c
* harbour/src/rdd/dbrename.c
* harbour/tests/cpinfo.prg
* harbour/include/hbmsgreg.h
* harbour/include/hbgtreg.h
* harbour/include/hbznet.h
* harbour/include/hbmather.h
* harbour/include/hbsocket.ch
* harbour/include/hbtrace.ch
* harbour/include/hbapistr.h
* harbour/include/hbiniseg.h
* harbour/include/hbsocket.h
* harbour/include/hbbfish.h
* harbour/include/hbcdpreg.h
* harbour/include/hbfloat.h
* harbour/contrib/hbqt/qtgui/QPageSetupDialog.cpp
* harbour/contrib/hbqt/qtgui/QDragEnterEvent.cpp
* harbour/contrib/hbqt/qtgui/TQToolBox.prg
* harbour/contrib/hbqt/qtgui/QGridLayout.cpp
* harbour/contrib/hbqt/qtgui/TQTreeView.prg
* harbour/contrib/hbqt/qtgui/TQTextCharFormat.prg
* harbour/contrib/hbqt/qtgui/QItemSelectionModel.cpp
* harbour/contrib/hbqt/qtgui/TQTextLine.prg
* harbour/contrib/hbqt/qtgui/QConicalGradient.cpp
* harbour/contrib/hbqt/qtgui/QTextLength.cpp
* harbour/contrib/hbqt/qtgui/TQInputEvent.prg
* harbour/contrib/hbqt/qtgui/TQWidgetItem.prg
* harbour/contrib/hbqt/qtgui/TQTextItem.prg
* harbour/contrib/hbqt/qtgui/QGradient.cpp
* harbour/contrib/hbqt/qtgui/TQTimeEdit.prg
* harbour/contrib/hbqt/qtgui/TQDropEvent.prg
* harbour/contrib/hbqt/qtgui/QStandardItemModel.cpp
* harbour/contrib/hbqt/qtgui/QItemSelection.cpp
* harbour/contrib/hbqt/qtgui/TQTextObject.prg
* harbour/contrib/hbqt/qtgui/TQPainterPath.prg
* harbour/contrib/hbqt/qtgui/QTransform.cpp
* harbour/contrib/hbqt/qtgui/QPicture.cpp
* harbour/contrib/hbqt/qtgui/QAction.cpp
* harbour/contrib/hbqt/qtgui/QPaintEvent.cpp
* harbour/contrib/hbqt/qtgui/TQStyleHintReturn.prg
* harbour/contrib/hbqt/qtgui/QStyledItemDelegate.cpp
* harbour/contrib/hbqt/qtgui/QWidget.cpp
* harbour/contrib/hbqt/qtgui/TQProgressBar.prg
* harbour/contrib/hbqt/qtgui/TQFontDatabase.prg
* harbour/contrib/hbqt/qtgui/QFontDialog.cpp
* harbour/contrib/hbqt/qtgui/QToolBox.cpp
* harbour/contrib/hbqt/qtgui/TQLineEdit.prg
* harbour/contrib/hbqt/qtgui/TQHBoxLayout.prg
* harbour/contrib/hbqt/qtgui/QTextListFormat.cpp
* harbour/contrib/hbqt/qtgui/QMouseEvent.cpp
* harbour/contrib/hbqt/qtgui/QTextEdit.cpp
* harbour/contrib/hbqt/qtgui/TQToolBar.prg
* harbour/contrib/hbqt/qtgui/TQTreeWidget.prg
* harbour/contrib/hbqt/qtgui/QFontComboBox.cpp
* harbour/contrib/hbqt/qtgui/TQSplitter.prg
* harbour/contrib/hbqt/qtgui/QStyle.cpp
* harbour/contrib/hbqt/qtgui/QStyleOptionHeader.cpp
* harbour/contrib/hbqt/qtgui/TQComboBox.prg
* harbour/contrib/hbqt/qtgui/QAbstractTextDocumentLayout.cpp
* harbour/contrib/hbqt/qtgui/QListView.cpp
* harbour/contrib/hbqt/qtgui/QWheelEvent.cpp
* harbour/contrib/hbqt/qtgui/TQAbstractItemDelegate.prg
* harbour/contrib/hbqt/qtgui/TQSessionManager.prg
* harbour/contrib/hbqt/qtgui/QRadialGradient.cpp
* harbour/contrib/hbqt/qtgui/QLayout.cpp
* harbour/contrib/hbqt/qtgui/QCursor.cpp
* harbour/contrib/hbqt/qtgui/TQProgressDialog.prg
* harbour/contrib/hbqt/qtgui/QPainterPath.cpp
* harbour/contrib/hbqt/qtgui/QLabel.cpp
* harbour/contrib/hbqt/qtgui/TQBoxLayout.prg
* harbour/contrib/hbqt/qtgui/TQPolygon.prg
* harbour/contrib/hbqt/qtgui/QFocusEvent.cpp
* harbour/contrib/hbqt/qtgui/QBrush.cpp
* harbour/contrib/hbqt/qtgui/QStyleHintReturn.cpp
* harbour/contrib/hbqt/qtgui/QStyleOptionToolButton.cpp
* harbour/contrib/hbqt/qtgui/QStylePainter.cpp
* harbour/contrib/hbqt/qtgui/TQRadioButton.prg
* harbour/contrib/hbqt/qtgui/TQSystemTrayIcon.prg
* harbour/contrib/hbqt/qtgui/QLinearGradient.cpp
* harbour/contrib/hbqt/qtgui/TQListWidgetItem.prg
* harbour/contrib/hbqt/qtgui/QProgressBar.cpp
* harbour/contrib/hbqt/qtgui/TQTextBlock.prg
* harbour/contrib/hbqt/qtgui/TQTextFrame.prg
* harbour/contrib/hbqt/qtgui/QDragLeaveEvent.cpp
* harbour/contrib/hbqt/qtgui/TQStyleOptionViewItem.prg
* harbour/contrib/hbqt/qtgui/TQInputContext.prg
* harbour/contrib/hbqt/qtgui/QClipboard.cpp
* harbour/contrib/hbqt/qtgui/QStyleOptionToolBox.cpp
* harbour/contrib/hbqt/qtgui/QStyleOptionTabBarBase.cpp
* harbour/contrib/hbqt/qtgui/QToolBar.cpp
* harbour/contrib/hbqt/qtgui/TQStatusBar.prg
* harbour/contrib/hbqt/qtgui/TQTextBlockFormat.prg
* harbour/contrib/hbqt/qtgui/TQTextFrameFormat.prg
* harbour/contrib/hbqt/qtgui/QFontMetricsF.cpp
* harbour/contrib/hbqt/qtgui/TQTabWidget.prg
* harbour/contrib/hbqt/qtgui/TQLCDNumber.prg
* harbour/contrib/hbqt/qtgui/TQMainWindow.prg
* harbour/contrib/hbqt/qtgui/QToolButton.cpp
* harbour/contrib/hbqt/qtgui/TQStyleOptionTitleBar.prg
* harbour/contrib/hbqt/qtgui/QWindowsStyle.cpp
* harbour/contrib/hbqt/qtgui/TQDockWidget.prg
* harbour/contrib/hbqt/qtgui/QColor.cpp
* harbour/contrib/hbqt/qtgui/QListWidget.cpp
* harbour/contrib/hbqt/qtgui/QTextLayout.cpp
* harbour/contrib/hbqt/qtgui/QTextCursor.cpp
* harbour/contrib/hbqt/qtgui/TQSound.prg
* harbour/contrib/hbqt/qtgui/QTextDocument.cpp
* harbour/contrib/hbqt/qtgui/TQHelpEvent.prg
* harbour/contrib/hbqt/qtgui/QAbstractProxyModel.cpp
* harbour/contrib/hbqt/qtgui/QPolygon.cpp
* harbour/contrib/hbqt/qtgui/TQGradient.prg
* harbour/contrib/hbqt/qtgui/TQAbstractPrintDialog.prg
* harbour/contrib/hbqt/qtgui/QRadioButton.cpp
* harbour/contrib/hbqt/qtgui/TQWizard.prg
* harbour/contrib/hbqt/qtgui/TQApplication.prg
* harbour/contrib/hbqt/qtgui/QAbstractButton.cpp
* harbour/contrib/hbqt/qtgui/TQSyntaxHighlighter.prg
* harbour/contrib/hbqt/qtgui/QStyleOptionViewItem.cpp
* harbour/contrib/hbqt/qtgui/QFileIconProvider.cpp
* harbour/contrib/hbqt/qtgui/TQTextOption.prg
* harbour/contrib/hbqt/qtgui/QTextFrameFormat.cpp
* harbour/contrib/hbqt/qtgui/QTextBlockFormat.cpp
* harbour/contrib/hbqt/qtgui/TQInputDialog.prg
* harbour/contrib/hbqt/qtgui/TQMovie.prg
* harbour/contrib/hbqt/qtgui/TQKeySequence.prg
* harbour/contrib/hbqt/qtgui/QStyleOptionToolBar.cpp
* harbour/contrib/hbqt/qtgui/QBitmap.cpp
* harbour/contrib/hbqt/qtgui/QCalendarWidget.cpp
* harbour/contrib/hbqt/qtgui/TQPrinter.prg
* harbour/contrib/hbqt/qtgui/QStyleOptionTitleBar.cpp
* harbour/contrib/hbqt/qtgui/QHeaderView.cpp
* harbour/contrib/hbqt/qtgui/QScrollBar.cpp
* harbour/contrib/hbqt/qtgui/TQActionGroup.prg
* harbour/contrib/hbqt/qtgui/TQTextEdit.prg
* harbour/contrib/hbqt/qtgui/QStyleOptionButton.cpp
* harbour/contrib/hbqt/qtgui/TQWizardPage.prg
* harbour/contrib/hbqt/qtgui/QCommandLinkButton.cpp
* harbour/contrib/hbqt/qtgui/TQFontComboBox.prg
* harbour/contrib/hbqt/qtgui/QFocusFrame.cpp
* harbour/contrib/hbqt/qtgui/QSizePolicy.cpp
* harbour/contrib/hbqt/qtgui/TQListView.prg
* harbour/contrib/hbqt/qtgui/TQStyleOptionSizeGrip.prg
* harbour/contrib/hbqt/qtgui/QAbstractPrintDialog.cpp
* harbour/contrib/hbqt/qtgui/QApplication.cpp
* harbour/contrib/hbqt/qtgui/TQTextBlockGroup.prg
* harbour/contrib/hbqt/qtgui/QAbstractSlider.cpp
* harbour/contrib/hbqt/qtgui/QTextFragment.cpp
* harbour/contrib/hbqt/qtgui/TQStyleOptionGroupBox.prg
* harbour/contrib/hbqt/qtgui/Makefile
* harbour/contrib/hbqt/qtgui/QAbstractScrollArea.cpp
* harbour/contrib/hbqt/qtgui/TQPrintEngine.prg
* harbour/contrib/hbqt/qtgui/TQStylePainter.prg
* harbour/contrib/hbqt/qtgui/QPlainTextEdit.cpp
* harbour/contrib/hbqt/qtgui/QInputDialog.cpp
* harbour/contrib/hbqt/qtgui/QKeySequence.cpp
* harbour/contrib/hbqt/qtgui/QPrinter.cpp
* harbour/contrib/hbqt/qtgui/TQMessageBox.prg
* harbour/contrib/hbqt/qtgui/QKeyEvent.cpp
* harbour/contrib/hbqt/qtgui/QActionGroup.cpp
* harbour/contrib/hbqt/qtgui/QTextCharFormat.cpp
* harbour/contrib/hbqt/qtgui/QStyleOptionSlider.cpp
* harbour/contrib/hbqt/qtgui/TQFontMetricsF.prg
* harbour/contrib/hbqt/qtgui/TQDragMoveEvent.prg
* harbour/contrib/hbqt/qtgui/QInputEvent.cpp
* harbour/contrib/hbqt/qtgui/QWidgetItem.cpp
* harbour/contrib/hbqt/qtgui/TQCommonStyle.prg
* harbour/contrib/hbqt/qtgui/QMenu.cpp
* harbour/contrib/hbqt/qtgui/TQWindowsStyle.prg
* harbour/contrib/hbqt/qtgui/TQPushButton.prg
* harbour/contrib/hbqt/qtgui/QStyleOptionSizeGrip.cpp
* harbour/contrib/hbqt/qtgui/TQDoubleSpinBox.prg
* harbour/contrib/hbqt/qtgui/QTextObject.cpp
* harbour/contrib/hbqt/qtgui/TQTreeWidgetItem.prg
* harbour/contrib/hbqt/qtgui/TQTableView.prg
* harbour/contrib/hbqt/qtgui/TQTextDocument.prg
* harbour/contrib/hbqt/qtgui/QStyleOptionGroupBox.cpp
* harbour/contrib/hbqt/qtgui/QPrintEngine.cpp
* harbour/contrib/hbqt/qtgui/QFontInfo.cpp
* harbour/contrib/hbqt/qtgui/QImage.cpp
* harbour/contrib/hbqt/qtgui/TQButtonGroup.prg
* harbour/contrib/hbqt/qtgui/TQFrame.prg
* harbour/contrib/hbqt/qtgui/TQCompleter.prg
* harbour/contrib/hbqt/qtgui/QValidator.cpp
* harbour/contrib/hbqt/qtgui/TQTextFormat.prg
* harbour/contrib/hbqt/qtgui/QIcon.cpp
* harbour/contrib/hbqt/qtgui/TQColorDialog.prg
* harbour/contrib/hbqt/qtgui/TQStyleOptionProgressBar.prg
* harbour/contrib/hbqt/qtgui/QPolygonF.cpp
* harbour/contrib/hbqt/qtgui/TQFileIconProvider.prg
* harbour/contrib/hbqt/qtgui/QHBoxLayout.cpp
* harbour/contrib/hbqt/qtgui/TQStyleHintReturnVariant.prg
* harbour/contrib/hbqt/qtgui/QTreeWidget.cpp
* harbour/contrib/hbqt/qtgui/QCommonStyle.cpp
* harbour/contrib/hbqt/qtgui/TQTextDocumentWriter.prg
* harbour/contrib/hbqt/qtgui/TQStyleOptionTab.prg
* harbour/contrib/hbqt/qtgui/TQStringListModel.prg
* harbour/contrib/hbqt/qtgui/QAbstractItemView.cpp
* harbour/contrib/hbqt/qtgui/QSessionManager.cpp
* harbour/contrib/hbqt/qtgui/TQTextBrowser.prg
* harbour/contrib/hbqt/qtgui/QProgressDialog.cpp
* harbour/contrib/hbqt/qtgui/TQTableWidget.prg
* harbour/contrib/hbqt/qtgui/TQTabBar.prg
* harbour/contrib/hbqt/qtgui/TQSpacerItem.prg
* harbour/contrib/hbqt/qtgui/QButtonGroup.cpp
* harbour/contrib/hbqt/qtgui/QStyleFactory.cpp
* harbour/contrib/hbqt/qtgui/TQDialog.prg
* harbour/contrib/hbqt/qtgui/TQFileDialog.prg
* harbour/contrib/hbqt/qtgui/TQStandardItemModel.prg
* harbour/contrib/hbqt/qtgui/TQFormLayout.prg
* harbour/contrib/hbqt/qtgui/QSystemTrayIcon.cpp
* harbour/contrib/hbqt/qtgui/TQItemSelection.prg
* harbour/contrib/hbqt/qtgui/QListWidgetItem.cpp
* harbour/contrib/hbqt/qtgui/QColorDialog.cpp
* harbour/contrib/hbqt/qtgui/QStyleOptionDockWidget.cpp
* harbour/contrib/hbqt/qtgui/QStyleOptionTabWidgetFrame.cpp
* harbour/contrib/hbqt/qtgui/TQFileSystemModel.prg
* harbour/contrib/hbqt/qtgui/TQAbstractSpinBox.prg
* harbour/contrib/hbqt/qtgui/TQTextFragment.prg
* harbour/contrib/hbqt/qtgui/QInputMethodEvent.cpp
* harbour/contrib/hbqt/qtgui/QDateTimeEdit.cpp
* harbour/contrib/hbqt/qtgui/TQTransform.prg
* harbour/contrib/hbqt/qtgui/TQVBoxLayout.prg
* harbour/contrib/hbqt/qtgui/QStyleOptionFocusRect.cpp
* harbour/contrib/hbqt/qtgui/QMoveEvent.cpp
* harbour/contrib/hbqt/qtgui/TQImageWriter.prg
* harbour/contrib/hbqt/qtgui/QMainWindow.cpp
* harbour/contrib/hbqt/qtgui/QDesktopWidget.cpp
* harbour/contrib/hbqt/qtgui/QTableWidgetSelectionRange.cpp
* harbour/contrib/hbqt/qtgui/QWidgetAction.cpp
* harbour/contrib/hbqt/qtgui/TQMenuBar.prg
* harbour/contrib/hbqt/qtgui/QStringListModel.cpp
* harbour/contrib/hbqt/qtgui/TQKeyEvent.prg
* harbour/contrib/hbqt/qtgui/QDockWidget.cpp
* harbour/contrib/hbqt/qtgui/TQPaintDevice.prg
* harbour/contrib/hbqt/qtgui/TQStyleOptionMenuItem.prg
* harbour/contrib/hbqt/qtgui/TQFontMetrics.prg
* harbour/contrib/hbqt/qtgui/QTextBrowser.cpp
* harbour/contrib/hbqt/qtgui/TQStyle.prg
* harbour/contrib/hbqt/qtgui/QTableWidget.cpp
* harbour/contrib/hbqt/qtgui/TQStyleOptionHeader.prg
* harbour/contrib/hbqt/qtgui/TQMenu.prg
* harbour/contrib/hbqt/qtgui/TQMatrix.prg
* harbour/contrib/hbqt/qtgui/QErrorMessage.cpp
* harbour/contrib/hbqt/qtgui/QWizard.cpp
* harbour/contrib/hbqt/qtgui/QFileSystemModel.cpp
* harbour/contrib/hbqt/qtgui/TQPrintDialog.prg
* harbour/contrib/hbqt/qtgui/QAbstractSpinBox.cpp
* harbour/contrib/hbqt/qtgui/TQPrintPreviewDialog.prg
* harbour/contrib/hbqt/qtgui/TQLabel.prg
* harbour/contrib/hbqt/qtgui/QDial.cpp
* harbour/contrib/hbqt/qtgui/TQStyleOptionComboBox.prg
* harbour/contrib/hbqt/qtgui/TQSlider.prg
* harbour/contrib/hbqt/qtgui/TQFontInfo.prg
* harbour/contrib/hbqt/qtgui/TQStyleOptionToolButton.prg
* harbour/contrib/hbqt/qtgui/QTextOption.cpp
* harbour/contrib/hbqt/qtgui/TQBrush.prg
* harbour/contrib/hbqt/qtgui/QImageWriter.cpp
* harbour/contrib/hbqt/qtgui/TQScrollArea.prg
* harbour/contrib/hbqt/qtgui/TQIcon.prg
* harbour/contrib/hbqt/qtgui/TQLayoutItem.prg
* harbour/contrib/hbqt/qtgui/TQPolygonF.prg
* harbour/contrib/hbqt/qtgui/TQPixmap.prg
* harbour/contrib/hbqt/qtgui/QMenuBar.cpp
* harbour/contrib/hbqt/qtgui/TQClipboard.prg
* harbour/contrib/hbqt/qtgui/TQTextImageFormat.prg
* harbour/contrib/hbqt/qtgui/TQStyleOptionTabBarBase.prg
* harbour/contrib/hbqt/qtgui/QPaintDevice.cpp
* harbour/contrib/hbqt/qtgui/QFontMetrics.cpp
* harbour/contrib/hbqt/qtgui/QStyleOptionMenuItem.cpp
* harbour/contrib/hbqt/qtgui/QWizardPage.cpp
* harbour/contrib/hbqt/qtgui/TQImageReader.prg
* harbour/contrib/hbqt/qtgui/QDropEvent.cpp
* harbour/contrib/hbqt/qtgui/TQAbstractItemView.prg
* harbour/contrib/hbqt/qtgui/TQColor.prg
* harbour/contrib/hbqt/qtgui/TQStyleOptionComplex.prg
* harbour/contrib/hbqt/qtgui/QTextBlockGroup.cpp
* harbour/contrib/hbqt/qtgui/QPrintDialog.cpp
* harbour/contrib/hbqt/qtgui/TQRegion.prg
* harbour/contrib/hbqt/qtgui/QStandardItem.cpp
* harbour/contrib/hbqt/qtgui/QStyleOptionComboBox.cpp
* harbour/contrib/hbqt/qtgui/TQStyleFactory.prg
* harbour/contrib/hbqt/qtgui/TQStyleOptionSpinBox.prg
* harbour/contrib/hbqt/qtgui/TQPalette.prg
* harbour/contrib/hbqt/qtgui/QSplashScreen.cpp
* harbour/contrib/hbqt/qtgui/TQDateTimeEdit.prg
* harbour/contrib/hbqt/qtgui/QSizeGrip.cpp
* harbour/contrib/hbqt/qtgui/TQInputMethodEvent.prg
* harbour/contrib/hbqt/qtgui/TQPainter.prg
* harbour/contrib/hbqt/qtgui/QMessageBox.cpp
* harbour/contrib/hbqt/qtgui/TQResizeEvent.prg
* harbour/contrib/hbqt/qtgui/TQTextTableFormat.prg
* harbour/contrib/hbqt/qtgui/QTextImageFormat.cpp
* harbour/contrib/hbqt/qtgui/TQStyleOptionFocusRect.prg
* harbour/contrib/hbqt/qtgui/QGroupBox.cpp
* harbour/contrib/hbqt/qtgui/QImageReader.cpp
* harbour/contrib/hbqt/qtgui/TQDragEnterEvent.prg
* harbour/contrib/hbqt/qtgui/QTextDocumentFragment.cpp
* harbour/contrib/hbqt/qtgui/QPushButton.cpp
* harbour/contrib/hbqt/qtgui/TQWidgetAction.prg
* harbour/contrib/hbqt/qtgui/TQGridLayout.prg
* harbour/contrib/hbqt/qtgui/TQScrollBar.prg
* harbour/contrib/hbqt/qtgui/TQItemSelectionModel.prg
* harbour/contrib/hbqt/qtgui/TQStyleOptionButton.prg
* harbour/contrib/hbqt/qtgui/TQTextLength.prg
* harbour/contrib/hbqt/qtgui/TQCommandLinkButton.prg
* harbour/contrib/hbqt/qtgui/QTreeWidgetItem.cpp
* harbour/contrib/hbqt/qtgui/QBoxLayout.cpp
* harbour/contrib/hbqt/qtgui/TQErrorMessage.prg
* harbour/contrib/hbqt/qtgui/QTextFormat.cpp
* harbour/contrib/hbqt/qtgui/QPalette.cpp
* harbour/contrib/hbqt/qtgui/QTextFrame.cpp
* harbour/contrib/hbqt/qtgui/QTextBlock.cpp
* harbour/contrib/hbqt/qtgui/QPainter.cpp
* harbour/contrib/hbqt/qtgui/TQDial.prg
* harbour/contrib/hbqt/qtgui/QStyleOptionProgressBar.cpp
* harbour/contrib/hbqt/qtgui/QResizeEvent.cpp
* harbour/contrib/hbqt/qtgui/TQTableWidgetItem.prg
* harbour/contrib/hbqt/qtgui/QTextTableFormat.cpp
* harbour/contrib/hbqt/qtgui/TQAction.prg
* harbour/contrib/hbqt/qtgui/TQPaintEvent.prg
* harbour/contrib/hbqt/qtgui/QStyleHintReturnVariant.cpp
* harbour/contrib/hbqt/qtgui/QStatusBar.cpp
* harbour/contrib/hbqt/qtgui/TQStyledItemDelegate.prg
* harbour/contrib/hbqt/qtgui/TQPlainTextEdit.prg
* harbour/contrib/hbqt/qtgui/QTextInlineObject.cpp
* harbour/contrib/hbqt/qtgui/QTabWidget.cpp
* harbour/contrib/hbqt/qtgui/QContextMenuEvent.cpp
* harbour/contrib/hbqt/qtgui/QLCDNumber.cpp
* harbour/contrib/hbqt/qtgui/TQWidget.prg
* harbour/contrib/hbqt/qtgui/TQFontDialog.prg
* harbour/contrib/hbqt/qtgui/QTextDocumentWriter.cpp
* harbour/contrib/hbqt/qtgui/QStyleOptionTab.cpp
* harbour/contrib/hbqt/qtgui/QDateEdit.cpp
* harbour/contrib/hbqt/qtgui/TQStyleOption.prg
* harbour/contrib/hbqt/qtgui/TQTextListFormat.prg
* harbour/contrib/hbqt/qtgui/TQMouseEvent.prg
* harbour/contrib/hbqt/qtgui/QCheckBox.cpp
* harbour/contrib/hbqt/qtgui/TQStyleOptionSlider.prg
* harbour/contrib/hbqt/qtgui/QSound.cpp
* harbour/contrib/hbqt/qtgui/QHelpEvent.cpp
* harbour/contrib/hbqt/qtgui/QTabBar.cpp
* harbour/contrib/hbqt/qtgui/QSpacerItem.cpp
* harbour/contrib/hbqt/qtgui/TQAbstractTextDocumentLayout.prg
* harbour/contrib/hbqt/qtgui/QFileDialog.cpp
* harbour/contrib/hbqt/qtgui/QDirModel.cpp
* harbour/contrib/hbqt/qtgui/QDialog.cpp
* harbour/contrib/hbqt/qtgui/TQWheelEvent.prg
* harbour/contrib/hbqt/qtgui/QFormLayout.cpp
* harbour/contrib/hbqt/qtgui/QStyleOptionFrame.cpp
* harbour/contrib/hbqt/qtgui/TQRadialGradient.prg
* harbour/contrib/hbqt/qtgui/QSyntaxHighlighter.cpp
* harbour/contrib/hbqt/qtgui/QFont.cpp
* harbour/contrib/hbqt/qtgui/TQCursor.prg
* harbour/contrib/hbqt/qtgui/TQLayout.prg
* harbour/contrib/hbqt/qtgui/TQStandardItem.prg
* harbour/contrib/hbqt/qtgui/QTableWidgetItem.cpp
* harbour/contrib/hbqt/qtgui/TQFocusEvent.prg
* harbour/contrib/hbqt/qtgui/QVBoxLayout.cpp
* harbour/contrib/hbqt/qtgui/TQImage.prg
* harbour/contrib/hbqt/qtgui/TQSpinBox.prg
* harbour/contrib/hbqt/qtgui/QMovie.cpp
* harbour/contrib/hbqt/qtgui/TQValidator.prg
* harbour/contrib/hbqt/qtgui/TQLinearGradient.prg
* harbour/contrib/hbqt/qtgui/TQSplashScreen.prg
* harbour/contrib/hbqt/qtgui/TQDragLeaveEvent.prg
* harbour/contrib/hbqt/qtgui/TQSizeGrip.prg
* harbour/contrib/hbqt/qtgui/QStyleOption.cpp
* harbour/contrib/hbqt/qtgui/TQStyleHintReturnMask.prg
* harbour/contrib/hbqt/qtgui/QTreeView.cpp
* harbour/contrib/hbqt/qtgui/TQStyleOptionToolBox.prg
* harbour/contrib/hbqt/qtgui/QTextLine.cpp
* harbour/contrib/hbqt/qtgui/TQGroupBox.prg
* harbour/contrib/hbqt/qtgui/TQTextDocumentFragment.prg
* harbour/contrib/hbqt/qtgui/QTextItem.cpp
* harbour/contrib/hbqt/qtgui/TQToolButton.prg
* harbour/contrib/hbqt/qtgui/QTimeEdit.cpp
* harbour/contrib/hbqt/qtgui/QMatrix.cpp
* harbour/contrib/hbqt/qtgui/TQListWidget.prg
* harbour/contrib/hbqt/qtgui/TQPen.prg
* harbour/contrib/hbqt/qtgui/TQTextCursor.prg
* harbour/contrib/hbqt/qtgui/TQTextLayout.prg
* harbour/contrib/hbqt/qtgui/QPrintPreviewDialog.cpp
* harbour/contrib/hbqt/qtgui/TQAbstractProxyModel.prg
* harbour/contrib/hbqt/qtgui/QSlider.cpp
* harbour/contrib/hbqt/qtgui/QSpinBox.cpp
* harbour/contrib/hbqt/qtgui/QScrollArea.cpp
* harbour/contrib/hbqt/qtgui/TQStyleOptionDockWidget.prg
* harbour/contrib/hbqt/qtgui/TQAbstractButton.prg
* harbour/contrib/hbqt/qtgui/TQStyleOptionTabWidgetFrame.prg
* harbour/contrib/hbqt/qtgui/QFontDatabase.cpp
* harbour/contrib/hbqt/qtgui/QLayoutItem.cpp
* harbour/contrib/hbqt/qtgui/QLineEdit.cpp
* harbour/contrib/hbqt/qtgui/QPixmap.cpp
* harbour/contrib/hbqt/qtgui/QStyleHintReturnMask.cpp
* harbour/contrib/hbqt/qtgui/TQMoveEvent.prg
* harbour/contrib/hbqt/qtgui/TQTextInlineObject.prg
* harbour/contrib/hbqt/qtgui/TQContextMenuEvent.prg
* harbour/contrib/hbqt/qtgui/TQBitmap.prg
* harbour/contrib/hbqt/qtgui/QDragMoveEvent.cpp
* harbour/contrib/hbqt/qtgui/QSplitter.cpp
* harbour/contrib/hbqt/qtgui/TQStyleOptionToolBar.prg
* harbour/contrib/hbqt/qtgui/TQDesktopWidget.prg
* harbour/contrib/hbqt/qtgui/TQCalendarWidget.prg
* harbour/contrib/hbqt/qtgui/TQPageSetupDialog.prg
* harbour/contrib/hbqt/qtgui/QComboBox.cpp
* harbour/contrib/hbqt/qtgui/TQTableWidgetSelectionRange.prg
* harbour/contrib/hbqt/qtgui/TQDateEdit.prg
* harbour/contrib/hbqt/qtgui/QDoubleSpinBox.cpp
* harbour/contrib/hbqt/qtgui/QAbstractItemDelegate.cpp
* harbour/contrib/hbqt/qtgui/TQHeaderView.prg
* harbour/contrib/hbqt/qtgui/TQConicalGradient.prg
* harbour/contrib/hbqt/qtgui/TQCheckBox.prg
* harbour/contrib/hbqt/qtgui/QStyleOptionComplex.cpp
* harbour/contrib/hbqt/qtgui/QTableView.cpp
* harbour/contrib/hbqt/qtgui/QPen.cpp
* harbour/contrib/hbqt/qtgui/QRegion.cpp
* harbour/contrib/hbqt/qtgui/TQFocusFrame.prg
* harbour/contrib/hbqt/qtgui/TQSizePolicy.prg
* harbour/contrib/hbqt/qtgui/TQDirModel.prg
* harbour/contrib/hbqt/qtgui/QFrame.cpp
* harbour/contrib/hbqt/qtgui/QCompleter.cpp
* harbour/contrib/hbqt/qtgui/QStyleOptionSpinBox.cpp
* harbour/contrib/hbqt/qtgui/TQStyleOptionFrame.prg
* harbour/contrib/hbqt/qtgui/TQFont.prg
* harbour/contrib/hbqt/qtgui/TQAbstractSlider.prg
* harbour/contrib/hbqt/qtgui/QInputContext.cpp
* harbour/contrib/hbqt/qtgui/TQAbstractScrollArea.prg
* harbour/contrib/hbqt/qtgui/TQPicture.prg
* harbour/contrib/hbqt/qtcore/TQSettings.prg
* harbour/contrib/hbqt/qtcore/QSettings.cpp
* harbour/contrib/hbqt/qtcore/TQUiLoader.prg
* harbour/contrib/hbqt/qtcore/QUiLoader.cpp
* harbour/contrib/hbqt/hbqt_errorsys.prg
* harbour/contrib/hbqt/hbqt_destruct.cpp
* harbour/contrib/hbqt/qtnetwork/QHttp.cpp
* harbour/contrib/hbqt/qtnetwork/TQHttpHeader.prg
* harbour/contrib/hbqt/qtnetwork/TQFtp.prg
* harbour/contrib/hbqt/qtnetwork/QHttpHeader.cpp
* harbour/contrib/hbqt/qtnetwork/QFtp.cpp
* harbour/contrib/hbqt/qtnetwork/TQHttpRequestHeader.prg
* harbour/contrib/hbqt/qtnetwork/TQNetworkRequest.prg
* harbour/contrib/hbqt/qtnetwork/TQHttpResponseHeader.prg
* harbour/contrib/hbqt/qtnetwork/QHttpRequestHeader.cpp
* harbour/contrib/hbqt/qtnetwork/QNetworkRequest.cpp
* harbour/contrib/hbqt/qtnetwork/QHttpResponseHeader.cpp
* harbour/contrib/hbqt/qtnetwork/TQHttp.prg
* harbour/contrib/hbqt/qtnetwork/Makefile
* harbour/contrib/hbqt/hbqt_misc.prg
* harbour/contrib/hbxbp/xbppresspace.prg
* harbour/contrib/hbxbp/xbprtf.prg
* harbour/contrib/hbxbp/xbpbrowse.prg
* harbour/contrib/hbxbp/xbpprintdialog.prg
* harbour/contrib/hbxbp/xbpdev.ch
* harbour/contrib/hbxbp/xbpprinter.prg
* harbour/contrib/hbxbp/xbpqtuiloader.prg
* harbour/contrib/hbnetio/netio.h
* harbour/contrib/hbnetio/netiomt.prg
* harbour/contrib/hbnetio/netiocli.c
* harbour/contrib/hbnetio/netiosrv.c
* harbour/contrib/hbnetio/Makefile
* harbour/contrib/hbide/ideobject.prg
* harbour/contrib/hbide/hbide.hbp
* harbour/contrib/hbide/iderequests.prg
* harbour/contrib/hbide/idestylesheets.prg
* harbour/contrib/hbide/idefindreplace.prg
* harbour/contrib/hbide/idethemes.prg
* harbour/contrib/hbide/ideeditor.prg
* harbour/contrib/hbide/hbide.prg
* harbour/contrib/hbide/idemisc.prg
* harbour/contrib/hbide/hbide.ch
* harbour/contrib/hbide/idetags.prg
* harbour/contrib/hbide/idesaveload.prg
* harbour/contrib/hbide/ideactions.prg
* harbour/contrib/hbide/idedocks.prg
* harbour/contrib/hbide/ideparseexpr.c
* harbour/contrib/hbide/ideprojmanager.prg
* set svn:keywords attribute to "Author Date Id Revision"
|
||
|
|
af90ba9a0c |
2010-01-11 12:21 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/hbznet.c
* move hb_znetOpen() parameter validation from HB_INETCOMPRESS()
to hb_znetOpen() - it should help keeping other code using
hb_znetOpen() more simple
* harbour/contrib/hbnetio/netio.h
* harbour/contrib/hbnetio/netiocli.c
* harbour/contrib/hbnetio/netiosrv.c
+ added support for compression and encryption in NETIO connection
streams. Enabling encryption (password) automatically enable also
compression. If necessary user can set compression level to
HB_ZLIB_COMPRESSION_NONE. HB_ZLIB_COMPRESSION_DISABLE used as
compression level removes compression and encryption.
See below for details of NETIO server and client code modifications.
* harbour/contrib/hbnetio/netiocli.c
+ extended NETIO_CONNECT() client side function parameters:
NETIO_CONNECT( [<cServer>], [<cPort>], [<nTimeOut>], ;
[<cPasswd>], [<nCompressionLevel>], [<nStrategy>] )
-> <lOK>
% changed the behavior of NETIO_CONNECT() client side function.
In the previous version this function was connecting to the server
and then disconnecting so it was used to check if connection is
available and to set default connection parameters.
Now it does not disconnect after successful connection so created
connection is keept and can be reused by any pending NETIO_*() calls.
User can open many different connections in the same time.
The connections are recognized by server and port address.
The connections set by NETIO_CONNECT() function can be closed by
NETIO_DISCONNECT() function.
Each repeated call to NETIO_CONNECT() increase reference counter
in the connection stream and need corresponding number of
NETIO_DISCONNECT() calls.
+ added new PRG client side function:
NETIO_DISCONNECT( [<cServer>], [<cPort>] ) -> <lOK>
which closes connections set by NETIO_CONNECT().
+ added support for passing connection password as part of file path
or function name in format:
<server>[:<port>[:<passwd>]]:<filepath|funcname>
i.e.:
192.168.0.1:2941:secret:path/to/file
Please remember that it's only an alternative method of setting
encryption which does not allow to use CHR(0) or ":" in passwords.
User can always set connection using NETIO_CONNECT() function which
will be used in RPC or FILE IO calls. If more then one connection
is set by NETIO_CONNECT() then user can chose the connection using
only server and port. It's not necessary to pass other connection
parameters.
+ added support for UNC paths:
//<server>[:<port>]/<filepath|funcname>
i.e.:
//192.168.0.1:2941/path/to/file
backslashes (\\) are also supported.
* harbour/contrib/hbnetio/netiosrv.c
% moved 1-st login identification from NETIO_ACCEPT() to NETIO_SERVER()
Such version do not block other connection accepting when server
waits for NETIO_LOGIN frame so it improve scalability and also
protect against code which may want to block access to the server
by opening dummy connections.
+ added new parameters to NETIO_ACCEPT() function which allows to set
encryption and compression for new connections:
NETIO_ACCEPT( <pListenSocket>, [<nTimeOut>],
[<cPass>], [<nCompressionLevel>], [<nStrategy>] )
-> <pConnectionSocket> | NIL
+ added new server side function:
NETIO_COMPRESS( <pConnectionSocket>,
[<cPass>], [<nCompressionLevel>], [<nStrategy>] )
-> NIL
which allow to set or change encryption and compression parameters
in existing connections
* harbour/contrib/hbnetio/netiomt.prg
* updated to accept new connection parameters in NETIO_MTSERVER()
function:
NETIO_MTSERVER( [<nPort>], [<cIfAddr>], [<cRootDir>], [<lRPC>],
[<cPasswd>], [<nCompressionLevel>], [<nStrategy>] )
-> <pListenSocket>
* harbour/contrib/hbnetio/utils/netiosrv.prg
+ added 5-th parameter <passwd> which enable encryption with compression,
current syntx is:
netiosrv [<port>] [<inetaddr>] [<rootdir>] [<rpc>] [<passwd>]
For default values use "" in command line for skipped parameters, i.e.:
netiosrv "" "" "" 1 topsecret
* harbour/contrib/hbnetio/tests/netiotst.prg
* enable RPC, compression and encryption in test code
+ added simple code which use RPC to create directory on the server side
Now it's possible to easy create secure NETIO connections and compression
should help in slow connections when big number of data has to be
exchange. In RDD file access it mostly help when tables use long records.
Hope you will find it useful. Please make tests.
|
||
|
|
62a09afd19 |
2009-10-19 23:13 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* contrib/gtalleg/tests/hbmk.hbm
* contrib/hbmysql/utils/hbmk.hbm
* contrib/hbmysql/utils/dbf2mysq.prg
* contrib/hbmysql/tests/test.prg
* contrib/hbmysql/tests/hbmk.hbm
* contrib/hbct/tests/tab.prg
* contrib/hbct/tests/tokensep.prg
* contrib/hbct/tests/datetime.prg
* contrib/hbct/tests/hbmk.hbm
* contrib/hbct/tests/token2.prg
* contrib/hbct/tests/charhist.prg
* contrib/xhb/tests/hbmk.hbm
* contrib/hbodbc/tests/hbmk.hbm
* contrib/hbtpathy/tests/hbmk.hbm
* contrib/hbmzip/tests/hbmk.hbm
* contrib/hbsqlit3/tests/hbmk.hbm
* contrib/hbsqlit3/tests/authoriz.prg
* contrib/hbblat/tests/hbmk.hbm
* contrib/hbqt/tests/hbmk.hbm
* contrib/hbfbird/tests/simple.prg
* contrib/hbfbird/tests/test.prg
* contrib/hbfbird/tests/hbmk.hbm
* contrib/hbziparc/tests/hbmk.hbm
* contrib/hbxbp/tests/hbmk.hbm
* contrib/hbnf/tests/ftgete.prg
* contrib/hbnf/tests/hbmk.hbm
* contrib/hbcurl/tests/ftp_uldl.prg
* contrib/hbcurl/tests/hbmk.hbm
* contrib/hbmemio/tests/hbmk.hbm
* contrib/gtqtc/tests/demoqtc.prg
* contrib/gtqtc/tests/hbmk.hbm
* contrib/hbnetio/utils/hbmk.hbm
* contrib/hbnetio/tests/hbmk.hbm
* contrib/rddsql/tests/hbmk.hbm
* contrib/hbhpdf/tests/harupdf.prg
* contrib/hbhpdf/tests/hbmk.hbm
* contrib/rddado/tests/hbmk.hbm
* contrib/gtwvg/tests/hbmk.hbm
* contrib/hbpgsql/tests/async.prg
* contrib/hbpgsql/tests/test.prg
* contrib/hbpgsql/tests/hbmk.hbm
* contrib/hbpgsql/tests/cache.prg
* contrib/hbpgsql/tests/stress.prg
* contrib/hbpgsql/tests/dbf2pg.prg
* contrib/hbclipsm/tests/hbmk.hbm
* contrib/rddads/tests/datad.prg
* contrib/rddads/tests/hbmk.hbm
* contrib/rddads/tests/testmg.prg
* contrib/hbfimage/tests/fitest.prg
* contrib/hbfimage/tests/hbmk.hbm
* contrib/hbgd/tests/tostring.prg
* contrib/hbgd/tests/gdtestcl.prg
* contrib/hbgd/tests/gdtest.prg
* contrib/hbgd/tests/animgif.prg
* contrib/hbgd/tests/testdpi.prg
* contrib/hbgd/tests/hbmk.hbm
* contrib/hbgd/tests/counter.prg
* contrib/hbgd/tests/antialia.prg
* contrib/hbgd/tests/bartest.prg
* contrib/hbgd/tests/barms.prg
* contrib/hbgd/tests/test_out.prg
* contrib/hbmisc/tests/testhbf.prg
* contrib/hbmisc/tests/hbmk.hbm
* contrib/hbmisc/tests/twirl.prg
* contrib/hbtip/tests/dnldftp.prg
* contrib/hbtip/tests/upld_ftp.prg
* contrib/hbtip/tests/dbtohtml.prg
* contrib/hbtip/tests/hbmk.hbm
* contrib/hbwin/hbwin.h
* contrib/hbwin/hbwin.ch
* contrib/hbwin/tests/testsim.prg
* contrib/hbwin/tests/testole.prg
* contrib/hbwin/tests/testcom2.prg
* contrib/hbwin/win_com.c
* contrib/hbssl/tests/hbmk.hbm
* contrib/hbbtree/tests/hbmk.hbm
! Fixed warnings and errors in test apps.
+ Added -es2 option to test/util default options.
* Renamed few macros in hbwin / win_com implementation:
FCN* -> WIN_COM_FUN_*
WPDBG* -> WIN_COM_DBG_*
; TOFIX: Some errors are left in hbgd/test_out.prg and
gtwvg to be fixed, now the can't be built.
Please do it.
|
||
|
|
7b830f3cd2 |
2009-10-19 18:15 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* contrib/gtalleg/tests/hbmk.hbm
* contrib/hbmysql/utils/hbmk.hbm
* contrib/hbmysql/tests/hbmk.hbm
* contrib/hbct/tests/hbmk.hbm
* contrib/xhb/tests/hbmk.hbm
* contrib/hbodbc/tests/hbmk.hbm
* contrib/hbtpathy/tests/hbmk.hbm
* contrib/hbmzip/tests/hbmk.hbm
* contrib/hbsqlit3/tests/hbmk.hbm
* contrib/hbblat/tests/hbmk.hbm
* contrib/hbqt/tests/hbmk.hbm
* contrib/hbfbird/tests/hbmk.hbm
* contrib/hbziparc/tests/hbmk.hbm
* contrib/hbxbp/tests/hbmk.hbm
* contrib/hbnf/tests/hbmk.hbm
* contrib/hbcurl/tests/hbmk.hbm
* contrib/hbmemio/tests/hbmk.hbm
* contrib/gtqtc/tests/hbmk.hbm
* contrib/hbnetio/utils/hbmk.hbm
* contrib/hbnetio/tests/hbmk.hbm
* contrib/rddsql/tests/hbmk.hbm
* contrib/hbhpdf/tests/hbmk.hbm
* contrib/rddado/tests/hbmk.hbm
* contrib/gtwvg/tests/hbmk.hbm
* contrib/hbpgsql/tests/hbmk.hbm
* contrib/rddads/tests/hbmk.hbm
* contrib/hbclipsm/tests/hbmk.hbm
* contrib/hbfimage/tests/hbmk.hbm
* contrib/hbgd/tests/hbmk.hbm
* contrib/hbmisc/tests/hbmk.hbm
* contrib/hbtip/tests/hbmk.hbm
* contrib/hbwin/tests/hbmk.hbm
* contrib/hbssl/tests/hbmk.hbm
* contrib/hbbtree/tests/hbmk.hbm
+ Added -w3 Harbour switch to all test dirs.
(in few places just formatted because it was there)
; TOFIX: All tests should be eventually made fully
warning free, so in the future expect -es2
switch to be added as well.
* contrib/hbwin/tests/testprn.prg
! Fixed two constant names.
|
||
|
|
acc4d55c3f |
2009-09-05 03:37 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* config/global.mk
! Fixed svnversion command call to work with older svn versions.
Thanks to Tamas Tevesz.
* contrib/hbfbird/firebird.c
! Fixed all remaining 64-bit compiler warnings. (msvc64, mingw64)
+ contrib/hbnetio/hbnetio.hbc
- contrib/hbnetio/tests/netiotst.hbp
+ contrib/hbnetio/tests/hbmk.hbm
+ Added .hbc file.
* Changed .prg specific .hbp file to generic autoprocessed .hbm file,
referring to .hbc file. This way it's in sync with rest of contribs
and makes it possible to add new tests in a lighter way)
|
||
|
|
875c946a57 |
2009-09-01 09:48 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/contrib/hbnetio/tests/netiotst.prg
* check if NETIO server is properly started
* formatting some messages
|
||
|
|
7b0e5052cd |
2009-09-01 09:28 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/contrib/hbnetio/tests/netiotst.prg
* added header with copyright message
* harbour/contrib/hbnetio/netiocli.c
* pacified two BCC warnings
|
||
|
|
08e0268da4 |
2009-09-01 00:56 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/harbour.spec
* harbour/harbour-win-spec
* harbour/harbour-wce-spec
* harbour/bin/hb-func.sh
* harbour/contrib/Makefile
+ harbour/contrib/hbnetio
+ harbour/contrib/hbnetio/netio.h
+ harbour/contrib/hbnetio/netiomt.prg
+ harbour/contrib/hbnetio/netiocli.c
+ harbour/contrib/hbnetio/netiosrv.c
+ harbour/contrib/hbnetio/Makefile
+ added new library: HBNETIO.
It implements alternative RDD IO API which uses own TCP/IP sockets
to exchange data between client and server.
This library contains client and server code and is fully MT safe.
On client side it's enough to execute:
NETIO_CONNECT( [<cServer>], [<cPort>], [<nTimeOut>] ) -> <lOK>
function to register alternative NETIO RDD API and set default
server address and port.
<cServer> - server addres (default 127.0.0.1)
<cPort> - server port (default 2941)
<nTimeOut> - connection timeout (default -1 - not timeout)
Above settings are thread local and parameters of the 1-st successful
connection are used as default values for each new thread.
After registering NETIO client by above function each file starting
"net:" prefix is automatically redirected to given NETIO server, i.e.
use "net:mytable"
It's also possible to pass NETIO server and port as part of file name,
i.e.:
use "net:192.168.0.1:10005:mytable"
On the server side the following functions are available:
create NETIO listen socket:
NETIO_LISTEN( [<nPort>], [<cAddress>], [<cRootDir>] )
-> <pListenSocket> | NIL
accept new connection on NETIO listen socket:
NETIO_ACCEPT( <pListenSocket> [, <nTimeOut>] )
-> <pConnectionSocket> | NIL
start connection server:
NETIO_SERVER( <pConnectionSocket> ) -> NIL
stop connection accepting or connection server:
NETIO_SERVERSTOP( <pListenSocket> | <pConnectionSocket>, <lStop> )
-> NIL
activate MT NETIO server (it needs MT HVM):
NETIO_MTSERVER( [<nPort>], [<cAddress>] ) -> <pListenSocket> | NIL
To create NETIO server is enough to compile and link with MT HVM
this code:
proc main()
local pListenSocket
pListenSocket := netio_mtserver()
if empty( pListenSocket )
? "Cannot start server."
else
wait "Press any key to stop NETIO server."
netio_serverstop( pListenSocket )
pListenSocket := NIL
endif
return
NETIO works with all core RDDs (DBF, DBFFPT, DBFBLOB, DBFNTX, DBFCDX,
DBFNSX, SDF, DELIM) and any other RDD which inherits from above or
use standard RDD IO API (hb_file*() functions).
Without touching even single line in RDD code it gives the same
functionality as REDBFCDX in xHarbour but for all RDDs.
It's possible that such direct TCP/IP connection is faster then
file server protocols especially if they need more then one IP frame
to exchange data so it's one of the reason to use it in such cases.
Please make real speed tests.
The second reason to use NETIO server is resolving problem with
concurrent access to the same files using Harbour applications
compiled for different platforms, i.e. DOS, LINUX, Windows and OS2.
It's very hard to configure all client stations to use correct
locking system. NETIO fully resolves this problem so it can be
interesting alternative also for MS-Windows users only if they
do not want to play with oplocks setting on each station.
I'm interesting in user opinions about real life NETIO usage.
Have a fun with this new toy ;-)
+ harbour/contrib/hbnetio/tests
+ harbour/contrib/hbnetio/tests/netiotst.prg
+ harbour/contrib/hbnetio/tests/netiotst.hbp
+ harbour/contrib/hbnetio/tests/data
+ added simple test code for NETIO. It activates NETIO MT server
and then connects to this server to create and browse table with
memo file and production index with few tags.
|