NetTalk History & Future
  NetTalk header linked to CapeSoft home page
Vote for this Product at ClarionShop
 
Buy now at ClarionShop
Version version number
CapeSoft Software copyright
www.capesoft.com
Updated
05 August 2010  
c3pa approved
     

NetTalk History & Future

horizontal rule
Learn NetTalk (great for New users)
NetTalk Examples
NetTalk Protocol Objects
NetTalk Protocol Objects
NetSimple Objects
NetDUN (Dial-Up Networking Object)
NetTalk Support - Important Information
NetTalk Future & History
Learn NetTalk
Examples
Common
Features
NetAuto
Objects
NetSimple
Objects
Dial-Up
Support
Version History
  recommended reading = recommended reading
horizontal rule
 
Contents - Version History
  recommended reading NetTalk Version History  
  What will NetTalk do in future?
     

horizontal rule

bulletNetTalk Version History Download latest version here

Please note: We offer both beta and gold releases of NetTalk. If you are requiring the most stable release please use the gold releases. New functionality and bug fixes are normally first released as beta releases.
 

Important Information before you use Version 3

NetTalk is getting even better. But in order to facilitate this, we are having to introduce some changes to the way things worked in version 2. So, throughout in Version 3 a small number of the improvements may result in NetTalk working slightly differently than it did in Version 2. We are trying to keep these type of changes to a minimum. To indicate which changes may impact your application we are marking the changes (in the version history)  with the following exclamation mark :   Critical Change - may impact your applications
For a list of what we are hoping to implement in Version 3 see the NetTalk's Future Section.

Important: Please read FAQ G7 - What's changed in NetSimple from version 2 to version 3
 

Version 3.45 (Gold) (23 December 2009)

 

Version 3.44 (Gold) (23 December 2009)

Version 3.43 (Gold) (23 July 2009)

Version 3.42 (Gold) (17 June 2009)

Version 3.41 (Gold) (10 November 2008)

1) Clarion 7 compatible install.

 

Version 3.40 (Gold) (21 June  2005)

New Features

1) In NetWebClient object there's a new property:
self.CustomHeader   (string(4096)). Which is added to the request header in ._CreateRequestHeader()
Note - must not have trailing <13,10>

Fixes/Updates

1) NetWebClient.TextOnly() - Some of the code was Case Sensitive, when it should have been Case Insensitive.
2) Clarion 6.2 Fix. Slight tweak to Email and News Objects to remove compiler warning message "Warning: Field label is duplicated, first used: _ObjectType"
3) Clarion 6.2 Fix. Recompiled DLL in Clarion 6.2 9046 - which fixes a delete queue GPF issue which was present in 9045.
Requires Clarion 6.2 9046 if you are using this with Clarion 6.2.
4) Template Help Button Fixed. Also made slight tweaks to the install script.

Version 3.29 (Gold) (13 May  2005)

New Features

1) NetTalk objects (not NetSimple) have finally been renamed in the documentation to NetAuto objects to prevent further confusion. Similarly the NetTalk protocol has been renamed to the NetAuto protocol too.

Fixes/Updates

1) Changed NetTalk to use our own _NetCriticalSection, as the one in CwSynchC.inc has private attributes which prevent it from being re-used and tweaked correctly. NetGetCriticalSection DLL function renamed to NetGet_NetCriticalSection. If you get compiler errors then see FAQ Article A3 and upgrade to NetTalk v3.29 or greater. (Also changed the DLL to use a reference to _NetCriticalSection)
2) NetAuto - DLL. ,static added to DLL CallBackWindowSrc's variable Static:LastTime used in CheckNotifier Routine
3) NetAuto - Added a work around for Windows Firewall, where the NetAuto objects could sometimes not receive incoming UDP packets at program start just after machine reboot. This resulted in other public instances not being "visible". The work around only gets run if the application starts within the first 5 minutes after boot up, and then it does NetSendBroadcast after 30 seconds, 60 seconds and 300 seconds, to ensure it can see all other instances.
4) NetAuto. Added a slight random delay before sending back a ICanDoBack packet after receiving a ICanDo packet. This improves the chances of not congesting a network with a flood of responses.
5) NetAuto & Template. A new method NetServer.Announce() allows the NetServer.Init(), NetServer.Kill() and NetClient.Init() and NetClient.Kill() to delay the broadcast of new services, so that one can Init all services before doing the Announce(). This drastically reduces the number of ICanDo and ICanDoBack packets during startup and shutdown of NetAuto objects. The template has been changed to accommodate these changes to. Also redundant ICanDo sending has been minimized in the DLL too.

Version 3.28(Gold) (1 April 2005)

New Features

1) New Special Option in the Template "Fix all my bugs". Added 1 April 2005.
2) Added External Run-Time DLL support to the template. Please don't use this unless you know what you are doing otherwise you'll end up with Unresolved Link errors.

Fixes/Updates

1) NetGetServers() - will now return -22 (ERROR:BadOptions) if it is passed a Queue which points to null.
2) Updated NetWeb.tpw & _NetWebServerWorker.FileToSessionQueue()
3) NetOptions now allows you to call SetMaxInstances after the DLL is active, although this won't have the full effect of allowing to have multiple instances on the current machine, but it will allow you to talk to multiple instances on other machines.
4) WinSock Listen function changed to use the WinSock2 SOMAXCONN value when WinSock2 is available. This leads to slight performance increases, and may reduce 10055 errors (WSANOBUFS).
5) DIP - template and examples updated to use dip.capesoft.net - which is a server based in the States.
6) Web Client - Fix if the web server returns just "HTTP/1.1 302" instead of "HTTP/1.1 302 Moved Temporarily".
7) Email Receive - Fixed the code where it would sometime chop off the last five bytes of the text or html portion in a simple email with no multiparts.

Version 3.27 (Gold) (7 February 2005)

New Features

1) NetTalk DLL Source Code is now available for purchase. More information is available here.
(It may take a day or so until it's fully uploaded and can be ordered).
2) New Legacy Email example & new Legacy Multi-DLL example.

Fixes/Updates

1) NetWebClient. Fixed a bug in the _SendCommand() method which affects large POST operations that could cause Index out of Range.

Version 3.26 (Gold) (26 January 2005)

New Features

1) Added DLL Version information to the NetTalk DLLs.
2) Added new property to the NetEmailReceive object .OptionsIncludeTextAttachmentsInText which will store text attachments into the text portion of the email. Off by default. Previous versions of NetEmailReceive had this feature on by default, so if you want the feature on (most folk don't) then please set this property to 1.
3) NetEmailSend - Added self.OptionsAttachmentContentType property which lets you override the default Attachment Content Type of 'application/x-unknown'

Fixes/Updates

1) NetCloseApps. Changed the Warning and Shutdown window, so that they display centered, which fixes a bug (only in NetTalk for Clarion 6.1) where these windows were not visible on the second monitor
3) NetWebClient - Fix for some https sites.
4) NetWebClient - now sets the cookie into the cookie property on redirects unless you specify the new property self.OptionsDontSetCookieOnRedirect
5) NetWebServer - updated Web Server Control Template - so that you can optionally see the last transaction, and a log history. Very useful when you are developing a Web Server site.
6) NetWebClient - TextOnly() split into 3 methods. Also clears <script> and <style> HTML tags.
7) Template - #Application changed for NetRefresh (Thanks Arnor).
8) Inversed Index Ranges for String Slicing checked for and fixed in some places.
9) NetRefresh - Added new #At and new parameter to the NetRefresh.Send method. This adds support for the Dynamic Driver.
10) NetDip - Changed self.MyIPAddress from cstring(15) to cstring(16) as it was one character too short, and was loosing this last character in the IP address.
11) NetEmailReceive - Fix for email decoding where Content-Type: text/html & Content-Transfer-Encoding: base64
12) NetSimple - Minor tweaks to the Idle Timeout code.

Version 3.25 (Gold) (7 December 2004)

New Features

1) (none)

Fixes/Updates

1) Removed duplicate FTPError property from the NetFTPClientControl object.
2) Template Fix for EmailSend Control Template, which was causing a %NoThisObj error.
3) Added a ReParseSetting() method to the NetWebServerWorker object.

Version 3.24 (Gold) (15 November 2004)

New Features

1) (none)

Fixes/Updates

1) Fix to the WebServer Utility Template. Also included the images it uses.

Version 3.23 (Gold) (9 November 2004)

New Features

1) Critical Change - may impact your applications Added Useful information about upgrading from NetTalk version 2 to version 3.
Please read FAQ G7 - What's changed in NetSimple from version 2 to version 3
2) NetSimple. Renamed Net:SimpleDataPacket to Net:SimplePartialPacket
(but kept original for backward compatability - for now. May remove it later)
3) NetSimple. WholePacket handling
Added methods and properties to allow you to send and receive Whole Packets.
This will also allow you to send data to your own applications and preserve the packet boundaries. See NetSimple Methods and Properties.  For example self.WholePacketUseLengthField and self.WholePacketSend
4) NetWebServer. Utility Template
Added a Utility template to import in the two Web Server procedures, which includes sample code.

Fixes/Updates

1) (none)

Version 3.22 (Gold) (4 November 2004)

New Features

1) (none)

Fixes/Updates

1) NetEmailReceive. _SplitParam and _SplitParam2 parameter change from (String p_String...) to (*String p_String)
2) NetEmailSend Control Template - Setting options to use or not use the Display() and Cursor commands. Also change the FileDialog command to restore path.
3) Template - Further cosmetic changes.
4) NetWebserver - Fixed bug in CreateHeader() where some fields had missing colons. e.g. Connection:

Version 3.21 (Gold) (20 October 2004)

New Features

1) (none)

Fixes/Updates

1) Fixed the v3.20 install
As a result of a corrupt file on our website the v3.20 install file was locking on during install of libssl32.dll (at 28%)
The new install file also removes any .tmp file (e.g. ~GLH0433.TMP) that the v3.20 install file created in your /3rdParty/bin folder.
2) Removed Stop from NetWebServer object. (Thanks Robbie).

Version 3.20 (Gold) (15 October 2004)

New Features

1) Gold Release.
2) NetWebClient - New Property self.CacheControl. Which can be used like the existing self.Pragma_ property.
3) NetWebClient - Unicode support for translating pages from Unicode to Ansi. New methods. Self.UnicodeToAnsi and self.AnsiToUnicode. (Also added a _NetUnicode class)

Fixes/Updates

1) (none)

Version 3.19 (Beta) (13 October 2004)

New Features

1) New Web Server example (there's also the one in netdemo.app). Demonstrating in memory web page creation. This new example requires Clarion 6.1 and SelfService, WinEvent

Fixes/Updates

1) NetWebServer - Many tweaks, including a fix for passing "&".
2) NetWebServer - Optimized the Header responses, so that Web Browses can use their Cached pages, if the pages have not changed (304 Not Modified).

(NetWebServer documentation still on the cards).

Version 3.18 (Beta)(7 October 2004)

New Features

1) Template - Added Multi-Proj define compatibility.

Fixes/Updates

1) Object Method prototypes changed from (...),string to (...),STRING to prevent errors with multi-DLL apps.
2) NetWebClient - Fix for using HTTPS sites with IP addresses. e.g. https://209.74.189.77/secure/checkout.cfm
3) NetEmailReceive - Tweaks to some of the boundary checking.

Version 3.17(Beta) (7 September 2004)

New Features

1) NetAutoCloseServer - The Process() method has been broken up into ProcessWarningRequest() and ProcessShutdownRequest(). Plus the CloseApp() method is what is called by ProcessShutdownRequest() when the application must be shutdown. See NetAutoClose
2) NetAutoCloseServer - New template option for Support with MessageBox 1.79 so that Messages are automatically closed down, when the application must be shut. (Previously open messages were preventing the application from shutting down). See NetAutoClose

Fixes/Updates

1) NetRefresh. Made the call to BRW.ResetFromBuffer and optional component in the Global Extensions NetRefresh on the Advanced tab. Folk using the ODBC Driver should turn this option on. See NetRefresh JumpStart.
2) NetDemo. Added Regions for the buttons so that they look better in Clarion 6.1

Version 3.16 (Beta) (31 August 2004)

New Features

1) NetWebServer. New property .DontSendFile

Fixes/Updates

1) NetOptions. NET:GETDGINSTANCE was not working. Fixed.
2) Installs. Some of the v3.15 builds didn't upload correctly. Re-uploaded in this version.
3) NetWebClient. Fixes the Request URI. This fixes both HTTP and HTTPS problems.
4) NetRefresh. Now works with ODBC driver. (Added call to ResetFromBuffer)

Version 3.15 (Beta) (27 August 2004)

New Features

1) NetWebServer and _NetWebServerWorker- New object for creating your own Web Server based applications. Preliminary testing phase begins.

Documentation will follow soon. (See NetDemo for a demonstration for now).

Note: If you were using the old Web Server example, in your applications you should now convert this code over to using the NetWebServer and _NetWebServerWorker objects. (This is particularly important for Clarion 6 apps, as the old Web Server example was not thread safe).
2) Split NetTalk.clw and NetTalk.inc into:
NetTalk.clw
NetTalk.inc
NetSimp.clw
NetSimp.inc
NetAll.clw
NetAll.inc
NetMap.inc
 (because it became too large for the compiler)

Fixes/Updates

1) NetWebClient. Added a call to FlushFileBuffers in the .SavePage method.
2) DIP. Fix in the template so you can rename your DIP object.
3) NetWebClient. Fixed a bug where ErrorTrap was sometimes being called twice.
4) NetSimple. Padded a check around most calls to self.Abort to check that the connection was either open (OpenFlag) or the connection was in the process of opening (AsyncOpenBusy) so that we are not calling Abort when the connection is in fact open.
5) NetEmailSend. Moved the automatic .Helo calculation code to below the BuildFromWhole. Also changed the default helo command (if it can't work it out from the From property) to 'helo_is_blank' (for more info see the Helo property in the NetEmailSend property section of the docs).
6) SendEmailControls Template. Removed the setcursor calls with this control template as it causes cursor unnecessary cursor flickering.
7) Logging - Improvements to the logging (DLL, Objects and Template). Including the addition of self.log to each NetAuto and NetSimple object.

Version 3.14 (Beta) (30 June 2004)

New Features

1) Added links in the docs to the NetSimple Jump Start.
2) Also look at the new features in v3.13 (which was not a public release)

Fixes/Updates

1) NetNewsReceive. Turned the _ZeroByteFixDisable property on by default. As this option should only be used in the Email objects (the News objects parent). Fixes problems if the news server doesn't send the article size in the XOVER response.
2) NetEmailReceive. Fix for UIDs fro COMCast, where they use 3 spaces as a separator. (Tweaked to the _SplitParam method so that it calls _SplitParams2).
3) Email. Increased the UID size from 40 to 80 (RFC says 70), so 80 should be more than enough.

Version 3.13 (Beta)(26 May 2004)

New Features

1) NetEmailSend - supports SSL. To use Secure Email simply set the self.SecureEmail = 1.
2) NetSimple - added self.SSLMethod and self._SSLDontConnectOnOpen (see NetSimple properties)

Fixes/Updates

1) Updated the NetDemo example, so that the Email Sending window can send emails to Secure Email Servers (tick on the Secure Email checkbox).

Version 3.12 (Beta) (21 May 2004)

New Features

1) First Public Build for Clarion 6.1 EA

Fixes/Updates

1) NetEmailSend. Fixed a bug where if you did not specify a HELO domain, and sent an email from "joe@example.com <joe@example.com>" the HELO property was being incorrectly set.

Version 3.11(Beta) (14 May 2004)

New Features

1) (none)

Fixes/Updates

1) NetEmailSend. Fixed a bug where if you did not specify a HELO domain, but used a from address of 'Joe<joe@example.com>' the HELO property was being incorrectly set to 'example.com>'.

Version 3.10 (Beta)(11 May 2004)

New Features

1) First Internal Build for Clarion 6.1 EA

Fixes/Updates

1) NetSimple Server. Fixed a bug where after calling .close the qServerConnections queue was not updated.
2) NetSimple Server. Fixed a bug where after calling .close the NetTalk DLL to NetSimple Object Message processing could get out of sync.
3) NetSimple Client. Fixed a bug where the asynchronous DNS lookup (called on Open) might fail if there were two or more simultaneous opens. This only affected open calls with a hostname (i.e. It previously worked fine for opens with an IP address).
4) NetWebClient. Fix for POST operation, which needed the HTTP:// part included.
5) Template. Changed the priority for the object's TakeEvent calls in ThisWindow.TakeEvent from 6300 to 2550.

Version 3.09 (Beta) (28 April 2004)

New Features

1) Added SSL support to the NetSimple and NetWebClient object.
NetWebClient - You can now do a fetch on a HTTPS page (e.g. .Fetch('https://www.clarionshop.com/secure/checkout.cfm')).
NetSimple - Added a .SSL property that when set to 1, will use a SSL connection.
Please note: This implementation does not do certificate checking yet (we plan to add this later on), but it will allow you to communicate and download from secure sites.
Be sure to read about the SSL DLL Distribution also.

Fixes

1) NetEmailReceive. Changed NetEmailReceive so that text attachments (sent for example from Mozilla Firefox) are recognized as both text and attachment.

Version 3.08 (Beta)(13 April 2004)

New Features

1)   NetEmailReceive. Added CharSet decoding for file attachments.
2)   Added a new NetOptions command (NET:SETNETAUTOLISTENINGPORTIP) that allows you to bind the NetAuto Objects Listening Ports to a specific IP address. This can be useful if you are running multiple network cards, but would only be used in rare situations. (If you look in the Frame of the NetDemo app, example code on how to call this is there - but commented out)
3)   Added a Template option to force the linker to include the ClarioNet compatible NetTalk lib file to be compiled with NetTalk. (See the Global Extension - Advanced Tab).
[Please note: NetTalk no longer works with ClarioNet]
4)  Critical Change - may impact your applications Added the .InactiveTimeout property to the NetSimpleMultiClient. Please note that if you were previously setting MultiClient.q._connections.InactiveTimeout you now need to use MultiClient.InactiveTimeout (before calling MultiClient.Open).

Fixes

1) NetEmailReceive. Fix for downloading UIDL lists from PC LAN Suite mail server. (This doesn't affect most Email Servers - including the CapeSoft Email Server).
2) NetEmailReceive. Changed the order for determining the name of the file to save the attachments as. Previous order was Content-ID, filename, name now it's filename, Content-ID, name.
3) SNMP. Fix for the NetSNMP._EncodeObjectID which could GPF. Thanks Ludwig.
4) Template. Fixed the debug logging options in the Global Extension so they work with both Local Mode and Standalone builds.
5) NetSimple and NetAuto (DLL). The internal mechanisms in NetSimple and NetAuto have been honed. (This included the way the FD_CLOSE, FD_WRITE, and FD_READ are handled in the NetTalk DLL, and changed from using shutdown (SD_BOTH) to shutdown (SD_Send) in most cases). Also tidied up the logs and fixed the SO_DONTLINGER option.
6) Internal NetTalk (DLL). Changed the default NetAuto Connection Timeout and Resend Period from 20 seconds to 45 seconds. You can override these values with NetOptions. See the NetDemo for an example of settings that may be useful for slow Internet or WAN usage.
7) NetSimpleMultiClient.TakeEvent. Tweaked and improved. Now it only does one call to NetSimpleConnectReceive (previously it was doing two).
8) NetSimple Client (DLL) - Follow up to the NetSimple GPF bug fix in v3.07 applied this fix to the NetSimple Client as well. (Fixed a bug in the NetTalk DLL regarding FD_READ, which could cause occasional GPFs in Clarion 6)

Version 3.07 (Beta) (26  March 2004)

New Features

1)  Critical Change - may impact your applications Very Important Change
NetSimple (including Email, FTP, Web, News) - Now uses self.AsyncOpenUse = 1 by default. This means they all use the Asynchronous Open. ie. You need to trap for the NET:SimpleAsyncOpenSuccessful in the .Process() before sending data. If you haven't coded your NetSimple objects to use Asynchronous Open then you will get errors.

This has two implications if you have not already switched over to Async Open.

The call to .Open() is now asynchronous.
You'll need to:
a) Modify your code to wait for the Net:SimpleAsyncOpenSuccessful packet in .Process() or the NET:SimpleAsyncOpenFailed in .ErrorTrap() before sending data
b) or set .AsyncOpenUse = 0 after the call to the objects .Init() method. (This will still mean your object is using synchronous open). For more details see the NetSimple.Open() method.

Checking self.OpenFlag is not enough. You'll need to:
a) Check for self.AsyncOpenBusy which is set in calling .Open if the connection is trying to connect asynchronously.
 
2)  Critical Change - may impact your applications WebClient - added a new property called OptionFinishOnEndHTMLTag. This option (if set to 1) will cause .PageReceived to be called if the page we are receiving has no content-length, and the last 7 characters are </html>.
You should not need this on, but the previous versions of the NetWebClient behaved like this by default. This has now been turned off and moved to a configurable setting (which is off by default).
3)  Critical Change - may impact your applications WebClient - PageReceive is no longer called if self.PageLen = 0. Instead the .ErrorTrap() method is called with self.error = ERROR:NoDataReceived
4)  Critical Change - may impact your applications WebClient - Will now always either call .PageReceived() or .ErrorTrap(). Previously a call to .Fetch() or .Post() could return with self.error <> 0 (and .ErrorTrap was not being called).
In other words you no longer need to check the value of self.error after calling .Fetch() or .Post() as if an error occurs .ErrorTrap() will be called.
5)   WebClient - Added the .ServerResponse (long) property, which lets you know the server response. See NetWebClient Properties
6)  Critical Change - may impact your applications WebClient - Will now automatically redirect 3xx Server Reponses (e.g. 301 and 302) which have a Location: field in the header. (To disable this turn on .OptionDontRedirect).
e.g. Try the following URL jump.capesoft.net which will redirect to www.capesoft.com
(If you run the NetDemo app - see the difference when you press Fetch or Header in the Web Client example with the jump.capesoft.net URL)
7)   WebClient - Changed the Default .UserAgent property to be the same as Windows XP.
8)   NetSimple - Added extra error handling if you call .Open or .Send before the .Init has been called. You should not be doing this anyway. (ERROR:ObjectInitNotCalled -60)
9)  Critical Change - may impact your applications NetSimple - Added extra error handling which will call .ErrorTrap if you call .Open() and a connection is already open. (ERROR:AlreadyOpen -55)
10)   Logging - Added an extra command line switch /netnolog which forces all logging off. This is useful if you've added logging options with the Global Template and want to quickly run your app with no logging without having to go to the effort of recompiling.
11)   Web Poll Example - Has been updated and demonstrates how to force any proxy servers into not using their caches, but instead contacting the web server directly.

Fixes

1) Web client - fix so that now the proxy server can be used in Asynchronous Open mode.
2) Web, FTP, Email, NetSimple - Important fix for a bug introduced in version 3.06, which could cause these objects not to work in Synchronous mode. (Basically Synchronous opens were being sent Net:SimpleAsyncOpenSuccessful packets - which (a) makes no sense as a synchronous open by definition is synchronous and so when the connection is made no notification needs to take place and  (b) it causes problems as extra packets arrive in the .Process()
3) WebClient added the Port number into the Header Host: field if it is not 80 or 0.
4) NetSimple Server (DLL) - Fixed a bug in the NetTalk DLL regarding FD_READ, which could cause occasional GPFs in Clarion 6.
5) Template Fix - Fix to the template that was breaking any custom made command line switches

Version 3.06 (Beta) (10  March 2004)

New Features

1) (none)

Fixes

1) Important fix for Windows 2000. Sometimes the WinSock returns a Read notification before the Connect notification (FD_READ before FD_CONNECT) on Win2K OS. This will affect the NetSimple objects (In particular Email & FTP). This also sometimes manifested itself as a 220 Email error.

Version 3.05(Beta) (9  March 2004)

New Features

1) Added options to turn on logging to the NetTalk Global Template. See Log Files.
2) Changed the NetEmailSend default HELO command. It now defaults to '' (blank), and if it's still blank when .SendMail() is called, it is set to the domain of the From address.
You can still set it yourself if you prefer.
3) Changed the NetEmailReceive object.
- Added the .EmailListQ and the .DoneListAll() and .DoneUIDLAll() methods. These are descriped in the .DoneListAll() method. This is an alternate way to downloading emails, in that you can now choose which emails to download/delete by setting the fields in the .EmailsListQ queue.
- The above changes also make downloading of emails faster (even if you don't use these new methods and properties). i.e. The conventional way of using the .Decide() method is still fully supported and works just the same as it used to (including the new speed improvements).

Fixes

1) Added a FTP property called self._DelayAfterStore, which makes the FTP client work better in Clarion 5.5 with CesarFTP Server. (CesarFTP Server 0.99e was giving errors with the NetTalk client, and CesarFTP Server 0.99g was GPF'ing).
2) Fix in the Template for using NetDIP. Previously hung a window when closing the window. More noticeable in Clarion6.
3) Removed HyperActive from NetDemo.app
4) Clarion 6 - the NetTalk v3.04 for Clarion6 build acted a bit strangely, which disappeared after the 3.05 build.
5) Include fix to correct some Win98 machines, that report a hostname that is not the same as the computer name.
6) Fixed the Multiple File FTP Upload example, so that it can put files into a subdirectory.

Version 3.04 (Beta)(28 January 2004)

New Features

1) Critical Change - may impact your applications NetEmailSend - replaced the ._AfterErrorTryNextMessage and ._NoMessageAddedYet properties with ._ErrorStatus and ._AfterErrorAction - see the NetEmailSend ErrorTrap method for more details. If you were using these old properties, please swop over to the new properties, which are far more informative.
2) NetEmailSend - now uses Asynchronous Open by default.
3) NetEmailReceive - now uses Asynchronous Open by default.
4) NetEmailReceive - Now has the ability to download emails in batches. This can be really handy if your connection dies half way through a download, so that you download less duplicates. See .OptionsNewBatchEveryXMessages and OptionsNewBatchEveryXBytes.
5) NetNewsSend - now uses Asynchronous Open by default.
6) NetNewsReceive - now uses Asynchronous Open by default.
7) NetWebClient - extended the return size of EncodeWebString from 8KB to 16KB
8) NetDemo - revamped look (see examples). (Also included HyperActive into this demo - but it will still run if you don't have HyperActive).
9) Internal changes: Exposed the NetTalk DLL Critical Section object via NetGetCriticalSection(),long and added ._Wait() and ._Release() to all the objects.
Renamed NetTalkInstance to NetTalk:gInstance

Fixes

1) NetDemo example - removed the compiler link errors caused by c5asc library file.
2) NetNewsSend and NetNewsReceive - Fixed these objects that were previously failing on news servers like news.softvelocity.com

Version 3.03 (Beta) (11 December 2003)

New Features

1) New Dial-Up Networking hand coded example.
2) New NetSimple Jump Start example.
3) Exposed the 168-bit DES encryption and decryption functions in the NetTalk DLL.
4) New NetSimple example which shows how to manage packet boundaries in NetSimple, and also demonstrates the NetDESencrypt and NetDESdecrypt functions.
5) Web Client - extended the size that you can send when you call the .Post() method. Was previously up to 16K including the headers. It's now dynamically allocated.

Fixes

1) NetEmailSend - Clarion 6 fix for the 221 error that occasionally happened after sending an email.
2) NetEmailSend - fix for the 250 error that could occur when sending multiple emails to an SMTP server that requires authentication.
3) NetEmailSend - internal fix the self._AfterErrorTryNextMessage set to false in RaiseErrorAndTryNextMessage
4) NetSimple Client Open - Fixed a bug which could cause a connection not to report that it could not be opened. The bug did not happen that often but it has been fixed now.
5) NetSimple Multi Client  - Removed the unnecessary Dummy Service object. This should have been done ages ago, but somehow managed to remain unnoticed until now.
6) NetSimple Email Receive  - Allows for CharSet decoding to work on the full 8192 characters of the Email properties like the ToList, not just the first 1024 characters.

Version 3.02 (Beta) (14 November 2003)

New Features

1) All methods in the NetTalk objects have been made VIRTUAL, previously some methods like Init, Kill and TakeEvent were non-VIRTUAL. We've tested this and no embed points are orphaned as a result.

Fixes

1) NetRefresh - Template fix for using NetRefresh in a Process.
2) Clarion 6 Dial-Up - Fix for Dial-Up Networking. Which previously never worked in Clarion 6 build.

Version 3.01 (Beta)(24 October 2003)

New Features

1) NetSimple - Added .LogDataBytes which logs up to this many bytes to DebugView, in the .Send() method, when the application is run with the /nettalklog command line parameter. (Default = 0 = off)
2) Critical Change - may impact your applications  ERROR:TimeOut equate has been renamed to ERROR:OpenTimeOut
3)
 
Critical Change - may impact your applications
 
 FTP  - The FTP Object has been re-worked. The following is a summary of changes:
  • Every call to the asynchronous functions (e.g. GetDirListing, PutFile, GetFile etc). will either call the Done() or ErrorTrap() method.
  • These functions no longer return values. They used to have a prototype of (...),long,proc now it's just (...). This means any code you've placed in derived methods for these method will have been orphaned.
  • _SetDataRepType() method renamed to _SetType()
  • self._CommandInProcess has been renamed to self.Busy - you can use this flag property to see if a the FTP object is currently busy with a command.
  • NoOp is included in the above asynchronous functions, so you should first check the self.Busy flag before calling NoOp otherwise it will call ErrorTrap if the FTP object is busy with another command.
  • We now suggest you have a case statement in your ErrorTrap (like in the Done() method) should you wish to handle errors based on what command you were trying to issue.
  • Jump Start and examples updated.
  • Open is now using asynchronous open, although this should make no difference to your code, and will work asynchronously, which means no screen lockups on slow or non-existent sites.
  • New method .ProcessIdleConnection() which is called when a connection has been idle for the period specified in self.InActiveTimeout. See FTP methods for more info.
4)
 

 
Internal change to the NetSimple object. Added the ._CallErrorTrap() method, but this should have no impact on anyone's application.

Fixes

1) NetEmailReceive. Fix for 0 length emails that are in your email server mailbox.
2) NetEmailReceive. Another fix, for handling headers better.
3) Dial-Up. Dial-Up uses an internal timer in the DLL to detect new connections. This was only being initialised after you opened a connection. This has been fixed and the timer activates on the NetDUN.Init code now.
4) Dial-Up. Previously when you used Dial-Up and a connection was established, NetTalk would send it's UDP packets to the localhost. This now only happens if you are using the NetTalk objects. (i.e. No UDP packets are sent, if you are just using the NetSimple objects).

Version 3.00 (Beta) (3 October 2003)

New Features

1) New FTP Example - Multiple File Upload.

Fixes

1) NetSimple FD_WRITE: New fix for large sends - up to 12% faster sending. Prevents NetSimple locking up when sending large amounts of data in a tight loop, and is more efficient.
2) Dial-Up Networking fix for Windows XP, where the code could loose track of a connection. This would result in either nothing being displayed in the Connections queue, and/or the Hangup button being greyed out. (Had to implement Critical Sections in C5 and C55 code).
3) Email Send. The HELO command was previously (by default) using HELO microsoft.com
Some email servers in an attempt to block spam are disallowing HELO microsoft.com so we've changed the self.HELO to google.com, but it's best to put your own domain in here.


Version 2.93 (Gold) (19 September 2003)

New Features

1) (none)

Fixes

1) NetTalk DLL based to 80 (IMAGE_BASE 13000000h). Now works for C5, C55 and C60.
2) Send Email beefed up the Message-ID when sending emails.
3) Updated FAQ article on SMTP and MAPI. Also added a CapeSoft Opinion page. Read more: FAQ H4.

Version 2.92(Beta) (11 September 2003)

New Features

1) Added AutoChat Server (Arnold) to the Examples.

Fixes

1) Email Receive. Fix for attachment only emails using Base64.
2) Email Receive. Fix for CharSet decoding (function completely re-written). CharSet encoding example:
To: =?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <keld@dkuug.dk>
CC: =?ISO-8859-1?Q?Andr=E9?= Pirard <PIRARD@vm1.ulg.ac.be>
Subject: =?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?=
=?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?=

Version 2.91 (Beta) (20 August 2003)

New Features

1) Added Asynchronous Open & the Idle Timeout functionality to the Web object
2) Three new Web examples. Poll.app which polls to check websites are running. WebStrain.app which shows how to loop through multiple websites. WebServe.app and Web Server example
3) Email Send. Added a new field embedlist to the self.DataQueue queue (Net:EmailDataQType).
4) (Advanced) FTP. Added self._IgnorePassiveFailure to get around FTP Servers that always run in Passive mode, but don't know about the PASV command
5) Added the NetSNMP Object for allowing your program to collect or deliver SNMP data. There may still be some changes to this object to treat it as early beta.

Fixes

1) NetTalk DLL based to 80 (IMAGE_BASE 13000000h) - didn't get done for C55 and C60 - see version 2.93, where this was fixed in
2) Email Send, was not saving the attachmentlist in the self.DataQueue queue. Fixed
3) Email Receive, Quoted Printable decode function caused a Index out of Range error on one email. Fixed.

Version 2.90 (Beta) (4 August 2003)

New Features

1) Reformatted these documents so they can be printed in Portrait A4 or Letter.
2) Added a new DLL function NetGetIPInfo which lists the IP address details. Includes Subnet Masks, Broadcast address (although these don't look meaningful), Gateways, DHCP Servers, WINS servers, Adapter Name and Descriptions.

Fixes

1) Fixed a bug where packets could be left stranded in the In Data queue for the NetSimple objects.
2) Fixed a where sending an email with a ";" as the CC would cause the email header to get split into the body.
3) Fixed Duplicate _ABCDllMode_ & _ABCLinkMode_ errors (in C55 and C6)

Version 2.81 (Gold) (23 July 2003)

New Features

1) (none)

Fixes

1) Web client. Fixed a bug where if there we multiple proxy settings (i.e. One for HTTP, one of HTTPs, one for FTP etc), the Proxy settings would not be read out the registry correctly. Fixed.
Version 2.80 (Gold) (15 July 2003)

New Features

1) NetClient - Added Client side load balancing, so that if you don't specify a ToNetName a random server is picked. This allows you to add more servers (either running on more machines or the same machine) to balance out any work load. self.DefaultServerNetName has been removed and self.UseAnotherServer() has been modified.
2) NetGetFile / NetFilServer - No longer tries another server if the file does not exist on the server. If you want to do this, call self.UseAnotherServer() and then try again.
3) NetEmailReceive - added a .OptionsOnlyGetWholeMessage property, that prevents the object from splitting up the wholemessage data into text, HTML, subject, to etc. It takes away functionality, but it is faster.  Also added a .OptionsOnlyProcessHeader property that will process the header and then stop. This means if you want to store the email, but don't want the email split into Text and HTML it will be processed faster, but you can still see the from, to, subject etc.
4) Documentation improvements. (Like we've added menus at the top of each page - Improved Support section with Top 10 questions).

Fixes

1) NetTalk DLL based to 73 (IMAGE_BASE 12300000h)
2) NetEmailReceive - fixed a bug where the receiving code sometimes thought an email had UUEncode in it when it didn't and it ended up in an infinite loop during download of emails.
3) NetEmailReceive - fixed a bug where a large email that arrives as only a small email (I know this sounds bizzare) would end up having no text in text, html or wholemessage. Changed in  _ProcessSetSize(). Also NET:EmailNewDifference set to 262140 (256K)
4) NetEmailReceive - fixed a bug a mime boundary with a ; was not being decoded correctly.
5) NetEmailSend - fixed a bug which could cause emails to be sent out in duplicates, when sending lots of emails.

Version 2.76 (Beta) (12 June 2003)

New Features

1) Documentation improvements started (not finished yet, but already enhanced).

Fixes

1) NetEmailReceive fix - Some files were being corrupted, when they were being extracted from the email to disk.
2) NetEmailSend fix - Fixed the .CalcEmailName() method that was not handling email addresses like (notice comma in description):
"Smith, Fred" <fredsmith@hotmail.com>
This function is used to read the ToList, CCList, BCCList and From properties.

Version 2.75 (Beta) (14 May 2003)

New Features
1) First Clarion 6 build. Still in testing phase, but the netdemo application run with all it's features.

Fixes
1) NetTalk DLL. CreateSendingSockets log info was reported wrong IP address (0.0.0.0) if an error occurred. This has been fixed.
2) New build (c55netnl.lib and c60netnl.lib and template change) for ClarioNet 1.2 support. Previously generated winsock errors during compile. (Note: ClarioNet 1.1 Users - you may need to email us at support@capesoft.com and ask us for the WinSock.lib file if you get compiler errors).
[Please note: NetTalk no longer works with ClarioNet]
3) New template change for Family code.
4) NetTalk DLL CloseInActiveConnections() had a bug fix.
Version 2.74 (Beta) (5 May 2003)
New Features
1) The NetTalk DLL now disposes NetAuto packets that haven't been sent after 1 hour. You can change this value using NetOptions. The code for the WAN configuration has a new line (DeletePacketAfterThisLong) see the netdemo app for the code.

Fixes
1) NetTalk DLL. Fixed a bug connected with receiving data for the NetAuto objects.
2) A whole host of fixes and tweaks to the NetTalk DLL for the C6 build:
WM converted to longs
Group OVER parameters changes
GROUP,Thread,Types changes.
3) FTP fix. A very small number of FTP Servers reports the file size of a download incorrectly. Added self.OnlyUseSizesInDirList which if set to 1 will ignore this and use the filesize of the file from the last directory listing.
4) FTP fix. Fixed a bug where if the FTP Server sent a blank line at the start of a directory listing, you would get an Unknown Directory Format error.
5) NetSimple Client fix. If you connected to an IP address using Synchronous Open and closed the connection without receiving anything from the server, this would generate a -20 Address Not Found error. This has been fixed.
6) NetEmail Receive fix. Some Emails that were produced in MS Office were not displaying the correct HTML format.

Version 2.73 (Beta) (8 April 2003)
New Features
1) (none)

Fixes
1) Email Receive. Emails containing another .eml file as an attachment sent from AOL where not saving the attachments. Fixed.

Version 2.7b (Beta) (1 April 2003)
New Features
1) Idle timeouts implemented into NetEmailSend and NetEmailReceive. You just need to specify self.InActiveTimeout (in hs) and mail connections will drop if there is a period of InActivity.
2) Idle timeouts and Async Open implemented into NetDIP object. Also added a self.RefreshInterval property which will automatically call Addme every 60 minutes.
3) NetDIP template allows you to specify fixed strings (in quotes) or a variable. This will probably cause a compile the first time you compile your code with this change. Just open the procedure template and put single quotes (') around your room name.
4) NetSimple Server now supports listening on specific IP address. Some machines are configured with multiple IP addresses. You can now tell NetSimple to just listen on one of those IP addresses. (By default the NetSimple Server will still listen on all IP addresses on the machine). Simply call self.Open ('192.168.2.1', 80) to listen on port 80 on IP 192.168.2.1
5) NetOptions : NET:SETRECOVERYOPTIONS. A new option to configure the NetAuto error recovery parameters. In the netdemo application there is a WAN configuration use of this. This may help optimise large WAN systems.

Fixes
1) ERROR:WaitTimeOut renamed to ERROR:CallBackWindowTimeOut (Not to be confused with ERROR:TimeOut - which occurs when NetSimple Asynchronous connections timeout on the open phase).
2) NetEmailSend. Fix if the server sends back a multi-line reply.
3) NetEmailSend. Introduced a new property called self.Helo. This is the string that is passed with the HELO (or EHLO) command. Some Email Servers require a full domain name in here. It defaults to 'microsoft.com' which seems to satisfy the servers.
4) FTP - changed the some of the numbers for the FTP equates - as they we the same numbers used by some of the other error equates.
5) NetSimple  - changes default Asynchronous Timeout to 9 seconds (was 6 seconds).
6) NetAuto  - tweak in the CreateSendingSockets() DLL function, to the algorithm that chooses the windows message number.
7) Email - changed some of the equates to handle longer From addresses:
  NET:StdEmailFromSize         equate(255)  
  NET:StdEmailStringSize        equate (255)
8) Email Sending - Changed the Quoted Printable encode function to encode a dot (.) if it is the first character on a line. The NetTalk sending object uses the dot transparency prescribed in RFC2821, but some Email Servers are not compliant and so sometimes they report what should be a single dot as a double dot. If you are using Quoted Printable encoding this will no longer occur as the dot will be converted to =2E, which will not cause any transparency problems with non-compliant Email Servers.
9) DUN Control Template. You can now specify the INI file used in the self.ControlTemplateINIFile property in your object's init method after the parent call.
10) FTP Jump Start example updated.
11) NetOptions NET:GETHOSTIPLIST changed. Previously this had to be called after WinSock was loaded (by using a NetAuto or NetSimple object). It can now be called anytime, as it will load WinSock if it's not already loaded.
12) Internal DLL change. Set Max number of connections for each of the following to 1000:
NetAuto TCP outgoing connections
NetAuto TCP incoming connections
NetSimple client connections
NetSimple server connections

Version 2.7a (Beta) (11 Feb 2003)
New Features
1) NetSimple now supports inactivity timeouts (idle timeouts). Set the self.InActiveTimeout to a value in hundredth of seconds and a packet of type NET:SimpleIdleConnection will be sent to .Process() if the timeout is exceeded

Fixes
1) Email Sending. NET:EMAIL_MaxMailData was reduced to 8192 (was previously changed to 16384 on 16 Jan 2003) as the larger number was causing "Index out of Range" errors when emails had a large number of dots. Also tweaked NetEmailSend._ConvertDots().
2) FTP some dates where being reported as one year ahead of time, these have been fixed.

Version 2.7 (Beta) (27 Jan 2003)
New Features
1) Started working on Clarion 6.0 support, but it's not all finished yet.

Fixes
1) Small statistics fix in DLL.
2) FTP some dates where being reported as one year ahead of time, these have been fixed.


Version 2.6 (Gold) (23 Jan 2003)
Gold Release


Version 2.5g (Beta) (16 Jan 2003)
New Features
1) NetRefresh - now has an advanced algorithm where by it only refreshes tables that need refreshing. There are also more options in both the Global Template and the local procedure templates.
2) NetEmailSend - have extended the size of the packet it was sending from 5120 bytes to 16384. This makes it a bit faster.

Fixes
1) Minor changes to the template.
2) Some versions of NetTalk were producing -6 (ERROR:WaitTimeout) errors when the NetSimple Asynchronous client connections timed out. This has now been corrected to produce -53 (ERROR:Timeout) errors.

Version 2.5f (Beta) (10 Jan 2003)
New Features
1) NetSimpleMultipleClient - now supports Asynchronous Open too.
2) FTP object has a .CalcProgressOptimized() method, which as increased the speed of the FTP demo between 2 and 10 times faster on LANs.

Fixes
1) Slight changes to the NetSimple Asynchronous Open Documentation. (see NetSimple.Open - which now includes a 4 step guide to using Asynchronous Open in your applications)

Version 2.5e (Beta) (27 Dec 2002)
New Features
1) New NetOptions call to retrieve a list of TCP/IP properties DNS Servers. See Net:GetDNSList
2) NetSimple Asynchronous Open code finished. Read more about this at the NetSimple.Open method. This is a huge improvement from synchronous open which could lead to your application locking up for between 45 to 90 seconds if the connection could not be established.

Fixes
1) None

Version 2.5d (Beta) (20 Dec 2002) - not released publically

Version 2.5c (Beta)(17 Dec 2002)
New Features
1) (none)

Fixes
1) NetTalk DLL - Changed ERROR:DllNotActive from -1 to -56. This is better as some functions return -1 (false for some OS calls), which was incorrectly reported as "NetTalk DLL not actively initiated"
2) NetSimple sometimes was dropping the last couple o incoming packets when the remote side closed the connection. This has been fixed. This affected the FTP code.

Version 2.5b (Beta) (6 Dec 2002)
New Features
1) Email Send - 3.5 times speed improvement to the queuing algorithm when using Quoted Printable encoding with.

Fixes
1) Clarion 5 Install - was not registering template and was giving an ACCINI5 error. This has been fixed.
2) Windows NT 4.0 would report "DLL INITIALIZATION FAILED. Initialization of the dynamic link library C:\WinNT\System32\RasMan.DLL failed. The process is terminating abnormally." if Dial-Up functions where used and Dial-Up was not installed. Work around coded to tell Windows NT not to display this message.
3) Email Send - fixed a bug which sometimes caused spaces to disappear in either the text or html part of the email when using Quoted Printable encoding.

Version 2.5a (Beta) (3 Dec 2002)
New Features
1) NetSimple Asynchronous Open. Currently being worked on - not complete

Fixes
1) A NetEmailReceive fix for some emails that weren't decoding correctly.
2) Important: Fixed Bug introduced in Version 2.5 beta where NetSimple (Client mode) could not open a connection to an IP address (e.g. 196.25.1.1), worked fine with a hostname (earth.microsoft.com). Fixed.

Version 2.5 (Beta) (22 Nov 2002) - (Please note this is not a stable version)
New Features
1) New method .SavePage(FileName) in Web object. This method will save the web page (less the headers) to the specified FileName.
2) NetSimple Asynchronous Open. Currently being worked on - not complete

Fixes
1) Speed improvements to the NetSimple objects, and the examples.
Good tip! - If you are receiving large amounts of data make sure your window has auto-display off.
2) Turns off Registry writing error messages.
3) Fix to NetSimple Server mode. Where the list of servers may not have updated fully when not using the NETTALKLOG=>1 define. This has been fixed to work even when no logging is used.
4) FTP Fix for Novel FTP server (Novell NetWare v5.00 FTP server) that incorrectly reports back 200 after a file delete instead of 250.
5) Corrected some methods in the some of the objects to call self.send() and not parent.send() - functional the code remains the same, but this improves flexibility (for example to log sends).
6) Fixed a clash between NetRefresh and Brian Staff's Xplore template. (Event:User+46 changed to Event:User + 146)

Version 2.4 (Gold) (25 October 2002)
New Features
1) (None)

Fixes
1) Email Receive object. Handles another variation of emails with base64.


Version 2.3g (Beta)(18 October 2002)
New Features   
1) www.sysinternals.com have released a new version of Debug View. They also have a number of other cool products. (TCPView is also a handy product).

Fixes
1) NetAuto object  Error correction algorithm changes. The connections that the NetAuto objects create are now closed automatically after 30-60 seconds. When data needs to be sent, new connections are opened. Also introduced some changes to the resending algorithm.
2) Internal DLL windows message numbers cycle.
3) Internal DLL changes to the NetAuto resending & acknowledging algorithm.
4) Renamed the external Windows and WinSock function in the DLL - this was causing some people problems when compiling their own apps that used the same names that were exported by the NetTalk DLL.
5) Email Sending. Fixed the problem with the file format returned by the clarion FileDialog.
6) Template change to the length of the DIP server address field from 20 to 80.

Version 2.3e (beta)(13 September 2002)
New Features   
1) (none)

Fixes
1) Sending emails with recipients separated by commas were not working. This has been fixed. Both comma separated lists and semi-colon separated lists work.

Version 2.3d (beta)(6 September 2002)
New Features   
1) NetAuto objects have a new property that allow themselves to be seen by their same process. This is a bit of a new thing, so treat it with care. See the NetServer.Init method.

Fixes
1) Internal DLL: the number of concurrent reading & writing sockets were increased, also the windows message numbers were changed and re-ordered.

Version 2.3c (beta) (30 August 2002)
New Features   
1) Ping command added to NetSimple. See the Ping method and the NetDemo example.

Fixes
1) News & Email Receive. Fixed bug where the code was failing to realise a message had been fully downloaded. This happened very seldom, but has now been fixed.

Version 2.3b (beta) (16 August 2002)
New Features   
1) FTP Example in the Demo application now supports switching between the Passive & Active FTP modes.

Fixes
1) Time Zone Information now works with Daylight saving. This fixes time zone information when sending emails.
2) FTP bug fixed where after the PASV command was issued the FTP server sometimes stopped responding.
3) FTP now ignores the '500 unrecognised command' reply for the TYPE A or TYPE I (ASCII or Binary) commands.

Version 2.3a (beta) (2 August 2002)
New Features   
1) DIP Server example updated. The DIP server now stores the entries in a text file, so that if the server is restarted the previous entries are loaded. This example is shipped as a APP file in your clarion/3rdParty/Examples/NetTalk folder as well as an EXE - see the NetTalk download page at www.capesoft.com

2)

Added a new method to the NetEmailSend object called AfterBuildPartsFromParts(). This method is very similar to the AfterBuildFromWhole() method. This method is called if you are using the NET:EMailMadeFromPartsMode option with SendMail() method. It allows you to change two things:

1) If you have created your own DataQueue structure, you can set any new fields that you've added to the DataQueue in this method. (Existing fields will be overwritten by the rest of the code in .SendMail() )

2) The following properties:
self.ToList (NetEmailSend only)
self.CCList (NetEmailSend only)
self.From
self.Newsgroups - (NetNewsSend only)
 

3)

New FTP object properties.

Set self.ProgressAllowLoading = 1 if you want the progress bar to move while a PUT file operation is loading the file and sending it to the NetTalk DLL.

self.TransferState = is set to one of the following during file transfers.
'Loading' - while the file is loaded from disk to the NetTalk DLL. (before the file is sent to the FTP server).
'Uploading' - while the file is uploaded to the FTP Server
'Downloading' - while the file is downloaded from the FTP Server
New FTP object method.
Internal method self._CallDone added.

Fixes
1) Template change, so that the self.SuppressErrorMsg = 1 is controlled correctly from the extension template option.
2) Fix for the FTP objects, so that if while downloading a file the connection dies, the transfer stops correctly after the ErrorTrap() method is called. Previously it was continuously trying to download the file and creating a hodge-podge of a downloaded file on the local side.
3) Template fix, for the new class routine section. Code is now saved correctly.
4) Email Sending. Made dots transparent. Resolves "500 unrecognised" errors after an email is sent.
5) Pasive mode FTP. Passive downloads and uploads where not specifying either Binary or Ascii type. This meant sometimes Binary files where downloaded in Ascii mode. This has been corrected.

Version 2.3(beta) (12 July 2002)
New Features   
1) Template change. Added a Routine Embed section for New Class Methods and Derived Class Methods. This allows you to add routines at the end of your class methods.

Fixes
1) Email Sending Object. Fix made to code that joins lines together if a response is split into two packets.
2) Internal Change. Email Sending Object. Fixes made to ._GetHeaderField() method. Prototype also changed from (string p_Header),STRING to (string p_Header,long p_count),STRING
3) Internal Change: Email Sending Object. Fixes made to .CalcEmailName() method.
4) Internal Changes:
Left(Clip(...)) changed to Clip(Left(...)) in DLL functions: NetCharSet()
And in Email objects: NetEmailReceive._ProcessMimeDesc
5) Email Receive Object:
Fixes to the ._ProcessCopyBinData function so that packets which end with <13,10>.<13,10> don't get treated as end of email.
6) Email Sending Object. loc:FileName extended from 80 to NET:StdEmailPathSize (255). The Full File Path remains at 255 characters long.

Version 2.2 (Gold) (5 July 2002)
New Features   
1) None

Fixes
1) FTP object - closes files in parent ErrorTrap method, if they are open.
2) FTP object - progress of how many bytes to receive fixed if a connection is closed.



Version 2.1c (beta) (28 June 2002)
New Features   
1) New EmailReceive properties: self.TextCharSet & self.HTMLCharSet which contain the content Character Set properties. e.g. "iso-8859-1" or "windows-1251" or "Windows-1252"
2) New internal DLL function. NetSetNotifier

Fixes
1) Email Receive Object. Internal fixes in the ._GetHeaderField() and .CalcEmailName() methods. Also .CalcEmailName() changed from private to public.
2) Legacy. Capitalised the prototypes (e.g. (...),string to (...),STRING) of the following methods:
NetEmailReceive._ProcessUUDecode()
NetWebClient.GetValueFromWebString()
NetWebClient.GetVariableNameFromWebString()
NetWebClient.EncodeWebString()
NetWebClient.DecodeWebString()
NetFTPClientData._FillDirListingQ_FormatCustom()
NetFTPClientData._FillDirListingQ_Format01()
NetFTPClientData._FillDirListingQ_Format02()
NetFTPClientData._FillDirListingQ_Format03()
NetFTPClientData._FillDirListingQ_Format04()
NetDUN.Dial()
2) FTP. Changed the PASSIVE command from 'PASV <13,10>' to 'PASV<13,10> (note the space) - which was causing the FTP to fail on some systems.
3) Changes to the template so that any new Net objects you create don't have the service name field in the template options.
4) Passive FTP. Fixed so that you can download zero sized files.
5) Internal changes the template so that new objects that are created don't have to have a ServiceName in the init() method.

Version 2.1b (beta) (14 June 2002)
New Features
1) 4 new methods for the NetWebClient object for processing web strings like:
name=Fred%20Bloggs&Age=25
        GetValueFromWebString()
        GetVariableNameFromWebString
        EncodeWebString
        DecodeWebString
see the NetWebClient properties section for details.

Fixes
1) Email and News objects now handle receiving command packets that are split up into 2 (or more) in transit.

Version 2.1a (beta) (7 June 2002)
New Features
1) NetEmailSend object's .EmbedList and .AttachmentList now support double quotes to separate filenames. This means you can supply attachment lists in any of the following 3 formats:
C:\|test2.zip|file with spaces, and commas.txt (Clarion FileDialog Format)
file1.txt, file2.txt
(Normal comma separated)
"file with spaces.txt", "anotherfile.txt"
(Comma and quote separated)

Version 2.1 (beta) (23 May 2002)
New Features
1) Option in NetOptions to allow you to set the encryption key for your applications. Use NetOptions with the NET:SETENCRYPTIONKEY equate.
2) From now on, encryption only encrypts your data part of the packet and not the majority of the packet.
Important: This means any new application you build with v2.1 onwards will not be able to talk with older versions of NetAuto if you are using encryption.
3) Important: Internal DLL changes. Increased some security issues in the DLL in the NetAuto objects. For this reason we recommend that all your applications run this version or better. The downside of this fix is that some packets (NetAuto protocol packets) from older NetTalk versions may be regarded as corrupt. The following errors are generated in the logs. "n_acceptCanDoTypePacket() : Error. Received a corrupt data packet. Another application may have sent this data or if the packet was decrypted the key may have been wrong. Bytes received = x".
4) Exposed the NETUUDecode() DLL function.
5) Added a property to the NetNewsReceive object - self.NoPosting which is set to 1 if the News Server does not allow posting. This fix also removes a 201 error which was occurring when trying to read the Newsgroups. Also in NetNewsSend if you send to a News Server which does not allow posting self.error = ERROR:NoPostingAllowed in self.ErrorTrap().
6) New example of how to download all the files in the directory using the FTP object.

Fixes
1) Changed the Registry functions in the NetTalk DLL to handle SubKey names up to 1024 chars long and Values up to 4096 chars long.
2) FTP - Fixed a bug where FTP files which reported dates like "May 11 03:51" would report as files of year 2000 and not the current year.
3) NetEmailReceive. CharSet encoding fixes. Works properly now. (e.g. decoding ?Windows-1252?Q?Jono_=28hotm=E0il=29=22_?=)

Version 2.0 (Gold) (2 May 2002)
New Features
1) NetTalk goes Gold! Version 2 released. (Incidentally this is the 50th release of NetTalk over the last two and half years.)
2) Icons in the NetTalk example applications have been updated.
3) Added two new queues to the NetEmailReceive (and NetNewsReceive) object. self.AttachmentListQ and self.EmbedListQ are queue structures containing the information in the comma separated lists self.AttachmentList and self.EmbedList respectively.

Fixes
1) Fixed the FTP object so that you can download more that 256 files at a time. The fix involved calling the self.abort() instead of calling self.close() in NetFTPClientControl._CommandPrelim()
2) Changed the NetTalk DLL to allow 1000 concurrent server listening ports, 1000 sever connections, 1000 client connections. If you need more than this please contact support@capesoft.com 


Version 1.0 beta 17i (25 April 2002)
1) Fixed a bug in NetWebClient where NetTalk sometimes called the self.PageReceived() before the whole page was receive.
2) Sending Email in a Process Example has been updated.

Version 1.0 beta 17h (18 April 2002)
1) NetEmailSend - ToList, CCList & BCCList now can be both semicolon or comma separated lists. (Previously they had to be separated by commas).
2) NetServer.Kill was previously setting self.service.Thread = 0 before the call to NetSetService. Moved this to after the call as NetSetService was unable to unload the NetAuto service.
3) DLL bug. NetAuto services were not being deleted from the DLL queue. This has been fixed.
4) NetClient.Init calls self.ServersChanged if there are already services in the DLL queue.
5) NetEmailReceive now handle attachments which don't just have alphanumeric names.

Version 1.0 beta 17g (4 April 2002)
1) New Web Builder example.
2) Advanced Programming:
You can now specify the line break characters in the FTP objects by adjusting the value in self._LineBreak, which defaults to '<13,10>'. See the FTP Properties section.
3) Fixed NetEmailReceive to also decode MIME email that have attachments encoded using UUDecode. Previously attachments were processed fine if they were either MIME or UUencode, but not both. 
4) Internal property NET:EmailEstimatedHeaderSize renamed to NET:EmailEstimatedExtraWholeMessageSize and increased from 1200 to 8192, this previously caused some embedded attachments not to display correctly. There were also some small code changes with the resizing of the Email that is made up from parts when Quoted Printable encoding was used.
5) The compiled (EXE) of the DIP Server is now available for download for those who don't have WinEvent and therefore could not build the DIP Server APP file. Available from the NetTalk Download Page on www.capesoft.com
6) Fixes to NetEmailReceive so that it can break apart email messages that don't end in a "<13,10>.<13,10>"

Version 1.0 beta 17f (21 March 2002)
1) Updated the DIP Server code in the example folders, to include the new WhoAmI functionality.
2) New NetAuto File Get and Put example code. This shows you how you can use the NetFileGet and NetFileServer objects to PUT files, as well as getting files.
3) Changes to the FTP Directory Listing Code. Fixed the directory listing so it now recognises files with spaces in the filename.
4) Advanced Programming:
Changes to the FTP Directory Listing Code. Restructured the methods so that programmers can more easily override methods that deal with the various different types of directory formats returned from FTP servers. See more details about the FigureOutDirFormat() method.

Version 1.0 beta 17e (14 March 2002)
1) Autoclose server now restores your application if it was minimised before displaying the warning or closing down messages.
2) Allow the InactiveTimer time to be set right at the start of the program. Previously it could only be set after the DLL was all loaded up and ready.
3) Minor fix to NetSimpleMultiClient, when the close() method is called. Omitted to put a "put (self.q)" in the code. Fixed now.
4) Fixed the progress bar indicator when using FTP in Passive mode.
4) New method for the NetDIP. NetDIP.WhoAmI() can be used to find out your IP address as seen by a DIP server.

Version 1.0 beta 17d (21 Feb 2002)
1) Fixed some of the UDP log file entries, that were displaying incorrect information.

Version 1.0 beta 17c (7 Feb 2002)
1) Added a new property to all the objects. self.UseThisThread is a advanced programming option allowing you to manually specify which thread will receive the DLL to Object events. For more details see the object properties sections for either NetServer, NetSimple, NetSimpleMultiClient or NetDUN objects.
2) Renamed the Registry Equates so they don't conflict with other peoples applications/templates. e.g.
  Was: HKEY_CLASSES_ROOT          long(80000000H)
  Now: NET:HKEY_CLASSES_ROOT      long(80000000H)
3) Fixed a bug in the NetSimple Server, where the server was unable to reply back to connected clients. This also caused the DIP Server application running at dip.capesoft.co.za to fail. This is fixed now.

Version 1.0 beta 17b (31 Jan 2002)
1) Minor bug fix to NetEmailReceive regarding saving attachments of some types of emails.
2) Important.
Introduced a new property to the NetSimple objects. self.DontErrorTrapInSendIfConnectionClosed indicates that you want to handle a the error response after calling the Send() method if the connection you were trying to send data on has closed. Some applications that re-use connections very quickly were getting 10038 errors. These were being caused by the object not yet knowing that a connection has closed. For more details on how to use this new property see the NetSimple Property section.

Version 1.0 beta 17a (17 January 2002)
1) Changes in the DLL concerning the way the NetSimple Client Connections are closed.
2) NetRefresh Global Extension allows you to set a minimum time to wait after each refresh before refreshing again. This is useful for busy networks as if lots of people are making changes the other machines tend to slow down with all the NetRefreshs

Version 1.0 beta 17 (10 January 2002)

1)

SMTP Authorised Login - NetEmailSend now supports AUTH LOGIN, the same AUTH method supported by Outlook Express 5.x. This allows you to login to SMTP servers using NetTalk. Two new properties added: self.AuthUser and self.AuthPassword.
2) NetAuto objects now support 168-bit DES encryption. Simply set self.packet.encrypt = 1 and your packet data will be encrypted with 168-bit DES encryption.
3) Emails may now be sent to only a BCC list. Previously you had to have a least one email address in the TO or CC list.
4) Changes in the DLL concerning the way the NetSimple Server Connections are closed. This fixes an error with the PUT FTP functionality.

Version 1.0 beta 16a (28 December 2001)

1)

NetCloseApps - improvements to the Refresh functionality.
2) Internal DLL issue - With the NetAuto objects, if the connection dies the DLL tries again, this is done repeatedly on a sliding scale starting at every 8 seconds and now increasing 50% each time until it reaches 1 hour. (e.g. 8 seconds interval the first time, then 12 seconds, then 18 seconds etc.)
3) Fixed a DLL bug that was introduced in version 1 beta 16. The error recovery mechanism for when sockets are closed by the remote machine when using the NetAuto objects had a bug that caused -20 and -12 errors in NetTalk. This has been fixed.

Version 1.0 beta 16 (20 December 2001)

1)

Web Authentication now supported. See the Web Authorization section for an example of how to use this.
2) FTP clients starts now starts using a random listening port number, which ranges from 1792 to 4400.
3) Documentation explaining how to email PDF reports using Tracker Software's PDFXChange and NetTalk. See the PDFXChange section. There is also an example application.
4) Changes to the way the NetSimple and NetAuto objects close down the socket connections. This should prevent 10055 (WSAENOBUFS) and minimise the number of FIN_WAIT2 and TIME_WAIT states that are reported by "netstat -a".
5) Fixed the way the sockets close down so that the NetSimple connection can be "re-used". This means that there is no longer a limit of 256 times a connection can be opened and closed. This was causing problems in the Email sending from inside a process.
6) The queue of the connections that are connected to a listening NetSimple (Server Mode), qSeverConnections, is now automatically updated. This means you don't have to call self.GetInfo() before using qServerConnections. 
7) Fixes to Dial Up Networking Objects. This includes: 
a) List of Dial Up Networking connections available no longer missing one connection.
b) Server IP in the connection status no longer missing first digit.
c) Dial Up works for Windows XP. 
8) Important: v1 beta 16 requires that both the object and DLL are using the same version otherwise your application will GPF. 

Version 1.0 beta 15e (28 November 2001)

1)

Email receive object handles more CharSet decoding (including "windows-1250").
2)  HOT  New example of using NetSimple objects to implement a proxy application. This is a very useful tool for developing network applications as it can be used to view the the network traffic between 2 network applications.
3) FTP objects improved. Bugs fixed associated with not always receiving a full directory listing or missing the last packet of a "get' file. 
Some people worked around this bug by waiting for two Done() method calls. Please note that this bug fix means that the full directory listing is available after the first (and only) Done() method call.
4) FTP Progress bar now also works with the PUT file command. (See the NetDemo.app example for the code on how to display the progress bar).
5) Changes to the parameters passed in the NetSimple.GetInfo() method. If you put code in this virtual method, please find it in the orphaned embed section.

Version 1.0 beta 15d (8 November 2001)

1)

Fixes to the email objects - a few more emails did not split correctly into text & html. And a few attachments were not saving.

Version 1.0 beta 15c (25 October 2001)

1)

Increased stability to Email objects.

2)

Email receive object now handles iso-8859-1?Q and iso-8859-1?B header encoding.

3)

(Advanced topic) Moved some byte and long initialisation (e.g. DefaultDownloadFlag byte (1) )  from the variable definition area of the objects into the Init() method. This now means you can NEW all the NetTalk objects.

4)

Email receive object now handles an email with the same filename in the same email. 

Version 1.0 beta 15b (11 October 2001)

1)

 HOT  Passive FTP now supported.

2)

FTP bug fixed, where FTP was hanging when an FTP was open, closed, and then opened again.

Version 1.0 beta 15a (2 October 2001)

1)

Bug fixed in NetSimple Server. Sometimes the server was closing itself down. This was noticeable in the NetDIP server, which sometimes stopped responding.

2)

We've also updated the DIP server running at dip.capesoft.com (see the demo example or the DIP docs for more details on how to use this). If you are using a DIP server yourself and you need the new EXE build please email support@capesoft.com. (If you have WinEvent you can build your own DIPServer - you'll find the code in the NetTalk example folder).

3)

 HOT  New example of sending email from inside a process.

4)

Template tweak to allow one to use the "CallABCMethod" ABC template option.

Version 1.0 beta 15 (13 September 2001)

1)

Added UUEncode functionality to the NetEmailReceive objects. This now means that NetTalk can read emails that have attachments encoded with UUEncode. (NetTalk continues to read MIME.)

2)

More tweaks to the NetEmailReceive for improvements to reading emails and attachments.

Version 1.0 beta 14i (30 August 2001)

1)

Added a new method to the NetEmailReceive object called DecideToDelete(). This method allows one to selectively choose which emails should be deleted. This method is called after each email is downloaded, and gives you the option to set self.OptionsDelete = true if you want to delete the email, after looking at the contents of it. If you want to delete all email just set self.OptionsDelete = true before starting to download the emails.

2)

More FTP object fixes. 

3)

Added a new method to the NetEmailSend object called AfterBuildPartsFromWhole().  This method is called if you are using the NET:EmailWholeMessageMode option with SendMail(0 method. It allows you to change the following properties after they have been extracted from the whole message:
self.ToList
self.CCList
self.From
self.Newsgroups - (NetNewsSend only)

Version 1.0 beta 14h (23 August 2001)

1)

Added the documentation for the NetSendBroadCast and NetServer.ReSync documentation. These functions can be used to refresh the list of available services. This can be useful when using dial-up or mobile computers on a LAN.

2)

FTP object fixes. Some FTP Servers returned data in an unexpected format for NetTalk, this has no been fixed. The FTP object was also struggling with control data returned in more than one packet.  

Version 1.0 beta 14g (9 August 2001)

1)

Email Sending object's ExtraHeader property no longer needs the trailing <13,10>, but will continue to work if it does have one.

2)

Added a 2 more error properties to the NetEmailSend and NetNewsSend objects. These new properties (self.ServerErrorNum & self.ServerErrorDesc contain the errors returned by the Email or News Server, if this was what caused the error).

3)

In NetSimpleMultiClient. Added the self.q.SockID which is a unique connection identifier. In fact it is the same as the existsing self.q._connection.SockID. This just make it easier to manage the queue.

4)

Legacy fix. Some legacy applications were GPF'ing when run. This fixes the bug.

5)

Changes to the CloseAppControls Control Template. We've changed the control template. Your existing windows can remain unchanged, or you may choose to delete and add the control template again. The new one allows you to selectively choose which applications to warn or shutdown. Try out the NetDemo example to see this in action.

6)

Fixes to the NetEmailReceive object. Some emails where causing the NetEmailReceive object to "hang". This has been fixed.

7)

Sometimes an Error 10038 message, was been generated when a NetSimple.close() call was placed on a NetSimple connection that had had been closed by the remote side. The error is no longer displayed by the object. But it is still logged in the NetTalk DLL.

8)

We've added a new tab in the Web Client example in the NetDemo application. It gets the time from an atomic time server using the NetWebClient object.

Version 1.0 beta 14e (19 July 2001)

1)

Email Sending now supports sending emails by passing NetTalk the whole message. using self.SendEmail (NET:EmailWholeMessageMode) method. 

2)

Email now supports the DeliveryReceiptTo and DispositionNotificationTo properties which allow servers and email clients (respectively) to report back notification of receipt of emails.

3)

Fix for legacy application that were using NetDUN (Dial-Up Networking) and had compilation errors.

Version 1.0 beta 14d (9 July 2001)

1)

NetTalk now works with Web Builder applications. See the Using NetTalk with Web builder section.

Version 1.0 beta 14c (5 July 2001)

1)

Email tweak where if you send messages to a comma separated list ending in a comma, Nettalk was sending the message to a blank email address. A trailing comma in a list is now ignored.

2)

Removed bug in NetServer.Kill and NetClient.Kill which in some cases caused a GPF.

3)

A few small tweaks.

Version 1.0 beta 14b (26 June 2001)

1)

Email & News progress bars. You can now add progress bars and get progress information from these objects. See the Email Methods & Properties sections and look out for the CalcProgress() method.

2)

Change to the NetSimple GetInfo() method. This method can now now report both the number of packets waiting in the NetTalk DLL as well as the number of bytes in those packets.

3)

Bug fix, of the problem where sometimes service A could "see" service B, which could not "see" the service A.

4)

Extra logging project define for applications that can't start using a command line parameter.

Version 1.0 beta 14 (18 June 2001)

1)

Changes to the way the NetTalk DLL loads and unloads. This now means there is no need for the Dummy NetAuto objects that some people where asked to add to their applications, and the dummy NetAuto object that NetSimple automatically added to each application has also been removed. This results in cleaner WinSock use and increased stability.

2)

Tweaks to NetRefresh.

3)

Tweaks to AutoCloseServer. It now shuts down Win2K applications better. Previously it would shut down the application partially, and only when you waved the mouse over the applications window did it completely disappear. It's working much better now.

Version 1.0 beta 13a (12 June 2001)

1)

Tweak to the ICanDo Packets for machines with more than one IP address. Should prevent flickering of windows with a list of users (e.g. Chat or the RemoteCloseApps window), which resulted from NetTalk getting into a loop with on multiple IP machines.

2)

Added a self.XMailer property to the NetEmailSend and NetNewsSend object. This optional property allows you to specify the name of the application that sent the message.

Version 1.0 beta 13 (8 June 2001)

1)

UDP support for the NetSimple Objects.

2)

Minor Web Fix.

3)

We've noticed quite a lot of folks are downloading the latest version of NetTalk (which installs the latest DLL onto your drive) and then run their applications that still use the old NetTalk code compiled into the code. While a lot of the NetTalk functionality continues to work, this is not a good recipe for getting the new features to work in your application. Please do recompile your applications after installing NetTalk.
Also some people who move DLLs and LIB files around, end up running some of their applications on old NetTalk versions. We've included a new section FAQ on how to do a clean-fresh re-install of NetTalk. 

Version 1.0 beta 12a (31 May 2001)

1)

Fixed a bug where NetTalk would only load on machines with Dial-Up Networking installed.

2)

Improved NetAuto objects ability to notice if a service on another machine is no longer there.

Version 1.0 beta 12 (24 May 2001)

1)

Tweaked the Nettalk template to fix an error in NetRefresh if Errors were suppressed.
Fixed the template so that NetRefesh works when on the same machine.
Fixed it so that "Deletes" trigger a refresh properly.

2)

 HOT    Added the NetDUN object. This object allows you to use the Dial-Up connections and dial into Servers.

3)

By the way, there is a new version of SysInternals' DebugView (v4.11) available now.

4)

Revamped the FAQ (Frequently Asked Questions) section. This section should covers the most commonly asked support questions.

Version 1.0 beta 11 (11 April 2001)

1)

Added the NetSimpleMultiClient object, which is a multiple client version of the NetSimple object. 

Version 1.0 beta 10d (5 April 2001)

1)

We've added some JUMP START sections to the documentation. These enable to quickly Jump in and Start using NetTalk in your application. The aim of these sections is to give you the step-by-step instructions to get the basic functionality of the objects into your application in 10-30 minutes.  

2)

FTP. Got rid of a bug that prevented you from being able to execute your next command from before the parent call in the Done() method. You can now call other FTP commands from before or after the parent call in the Done() method.

3)

Web. Got rid of a bug that prevented you from being able to call the Fetch method with a non-variable string.

Version 1.0 beta 10c (27 Mar 2001)

1)

Added an option to delete an email without having to download it. See the NetEmailReceive Decide() method.

2)

NetEmailReceive and NetNewsReceive now also support multipart/related. This means it supports embedded files like graphics in the HTML section in the email. The NetEmailSend and NetNewsSend continue to support this feature.

Version 1.0 beta 10b (22 Mar 2001)

1)

The NetEmailSend.ReconnectAfterXMsgs property now works (this applies to both the NetEmailSend and NetNewsSend objects). Setting this property to something like 20 will cause the connection to the SMTP server to be closed and opened automatically after every 20 messages.

2)

Removed a bug from NetEmailSend that sometimes caused 2 or 3 emails to fail, when sending large numbers of emails, such as in a newsletter application. 

3)

Username and Passwords now work in News objects.

4)

Fixed a bug which sometimes prevented email from being received from a Microsoft Exchange Server.

5)

Added the ReplyTo and Organization properties to the email and news objects.

Version 1.0 beta 10a (20 Mar 2001)

1)

Changed the prototype of the Open() method in the News and Email objects. This probably won't affect you unless you have placed embedded code in your Open() method in an Email or News instance of NetTalk. In which case you old code will now be an orphaned piece of code and you will need to put in it into the Open (string Server,uShort Port=0) method.

2)

Removed a bug from NetEmailSend that sometimes caused 2 or 3 emails to fail, when sending large numbers of emails, such as in a newsletter application. 

Version 1.0 beta 10 (15 Mar 2001)

1)

Fixed the Web object where sometimes the pages would appear not to download. Like at www.navyseals.com

2)

NetSimple - cleaner closing down mechanism. 

3)

Changed Stats structure qSimpleServerSockets_Size & qSimpleServerSockets_Bytes to qSimpleServerConnections_Size & qSimpleServerConnections_Bytes respectively

4)

Changed IPcstr to RemoteIP in Net:SimpleServerConnectionsQType

5)

Change with NetSimple packet structure. self.packet.ToPort and self.packet.FromPort replaced with self.packet.OnSocket property. A self.packet.SockID property has been added. Important: You now also need to set the SockID property when replying to a connection if it is different from the one that you received the data on. This SockID property is also available in the self._Connection group stucture as well as the results of calling NetSimpleGetServerConnections (ThisSimpleServer._Connection, qOurConnections)

6)

Changed NetSimple Object IP string size from cstring (81) to cstring (16). This gives 15 characters for the 255.255.255.255 format plus one char for the null terminator.

7)

NetTalk now works when no network card is present, as long as at least one TCP/IP adapter is setup (e.g. NetTalk works when a TCP/IP modem adapter is setup in the Network properties even if the Modem is not plugged into the machine or connected to the Internet.)

8)

Changed DLL and Object packet Structure a bit in NetAuto and a lot in NetSimple.

9)

The NetSimple Close methods now perform a graceful close. i.e. Data that has been sent from the object to the DLL will be sent, and the DLL will send the object data already received that was waiting in the DLL. No new data will be received and the socket will be closed properly once all data has been sent.
Note: If the object's window is closed before the Close() method is called, any incoming data in the NetTalk DLL will not get to the object as the object is closed when the window closes. NetTalk does not guarantee that data waiting in the NetTalk DLL will be sent, after the object is closed down (e.g. the window closed). This means that when using the Email and News objects you still need to keep the windows open until the MessageSent() or the ErrorTrap() methods have been called. This is because of the mail protocol behaves in a synchronous fashion. i.e. a command is sent and a reply is given before the next command is sent. So closing the window before the mail has finished being sent may not guarantee that the mail will be sent.

10)

Added an Abort() method to the NetSimple objects. This kills the socket, and any data (either incoming or outgoing) that the DLL has. It can be used to bail out of an action fast. 

11)

Added the CloseServerConnection() and AbortServerConnection() to the NetSimple objects. These close/abort the incoming connections when NetSimple is in the Server mode (i.e. used as a listening port).

12)

New self._Connection.MaxServerConnections property for NetSimple objects when in Server mode. This allows you to specify how many incoming connections are allowed to connect to this listening port. 0 = no limit (default).

13)

New NetSimple.GetInfo() method. This method gives back a list of all connections currently connected to the listening port. This queue is not self-updating i.e. you need to call this method before reading the queue if you want the most up-to-date information.

14)

Fixed News Receive Index Out of Range Error. This also fixes the bug that sometimes caused the NetNewsReceive to crash.

15)

Fixed Email Receive bug that caused it to crash sometimes.

16)

Fixed Web Proxy settings, to recognise when Internet Explorer's proxy settings have not been enabled.

17)

Added the ability to send embedded files (pictures) in the HTML part of an email. See the EmbedList property for the NetEmailSend object in the Methods & Properties section.

18)

New: Added the FTP Client objects.

19)

Fixed a bug that could cause some applications to GPF when the object was closed down. 

Version 1.0 beta 9b (16 Jan 2001)

1)

Added a special Tips for Creating an Email Newsletter Sending Application section.

2)

Added the NetWebClient object, which allows you to get web pages as well as to post data to web page forms.

3)

Removed the -34 error bug, which sometimes happened on closing your application (or window) when using NetSimple.

Version 1.0 beta 9 (20 Dec 2000)

1)

Added the MessageID and References fields to the Email objects. 

2)

Fixed a bug in NetSimple Server, where the Server would respond incorrectly if it were opened, closed and then re-opened.

3)

Added more options to the NetAutoCloseServer template. You can now set the default messages as well as specify the time delay of the windows that popup. Also added a new CloseApp() method, which allows you to run code when the whole application needs to be shutdown.

4)

Added a new embed point after the objects init() call in the Window.init() method. This allows you to decide what actions to take if the NetAuto objects don't initialise correctly. e.g. If the user runs too many instances of NetTalk an error is generated and you can decide to close your application down.

5)

Added the NetNewsSend and NetNewsReceive objects. These allow you to access Net News Servers.

6)

Add the NetDIP objects. The DIP (Dynamic IP) client object allows you to connect to a DIP server, which tells NetTalk who else is using the same application as well as allowing machines which are allocated dynamic IP address to act as a server.  

7)

Added the NetRefresh object. This object ensures that data that is changed in one application using shared data is immediately reflected on the screens of all other users.

8)

Added a self.ErrorString property to all objects. This contains the ErrorString of the last error that occurred. This is especially useful when you are running objects with errors suppressed.

9)

Added new examples to both the NetDemo application and also NetRefresh.app

10)

Added a check box to the extension template to allow you to easily suppress NetTalk object errors.

11)

Windows 2000 (Win2K) NetTalk bug fixed. Symptoms ranged from NetTalk application using 99% CPU, to no functionality. Anyway this bug is now fixed. 

12)

All logging has now moved to SysInternals DebugView. You can no longer create log files from your application. You must use DebugView.

13)

By the way, there is a new version of DebugView available now.

14)

More comments have been inserted into the netdemo.app example.

Version 1.0 beta 8e (2 October 2000)

1)

Removed the obsolete option to transfer data packets via synchronous transfer. NetAuto objects has been using asynchronous data transfer since version 1 beta 5. Both NetAuto and NetSimple objects still continue to offer asynchronous transfer. 

2)

Added a debug trace option to view debug output in SysInternals DebugView application. This is an attractive alternate to generating log files.

3)

Fixed the memory leak that caused the receiving process to hog memory. We knew about this for ages, but it took quite a while to track down what was going wrong in the NetTalk DLL.

4)

Added a few more stats to the NetOptions NET:GetStats function.

5)

Fixed a DLL bug where some packets we not getting acknowledged properly.

6)

Changed the Internal NetAuto DLL compatibility number. Version 1.0 beta 8d (and less) are no longer compatible with this and later versions of NetTalk. This happened as a result of some internal changes to the DLL. All you need to do is make sure you are using the latest version. The NetTalk DLL logging will record an error message if you try to use two different DLL versions at the same time to communicate and no communication will take place on the object layer.

7)

Fixed a bug whereby NetAuto services would not notice that other public services on other machines were no longer available if the machines running those public services were disconnected from the network or were rebooted without allowing the NetTalk process to shutdown gracefully.

8)

Fixed a bug whereby NetRemote only polls a machine once if a hostname is passed to NetRemote. NetRemote now polls each time you call NetRemote where you pass a hostname or an IP address.

Version 1.0 beta 8d (6 September 2000)

1)

Added a FromIP property to the NetAuto packet structure. This can be used to see the IP address of the process that sent you the packet. See NetAuto Data Structures.

2)

Exposed the DirectResponse group property in the NetAuto packet structure. This group stores the data needed to reply back to the sender of the packet. (So far only one person has asked for this information).  See NetAuto Data Structures.

3)

Changed the Internal NetAuto DLL compatibility number. Version 1.0 beta 8c (and less) are no longer compatible with this and later versions of NetTalk. This happened as a result of some internal changes to the DLL. All you need to do is make sure you are using the latest version. The NetTalk DLL logging will record an error message if you try to use two different DLL versions at the same time to communicate. No communication will take place on the object layer.

4)

NetEmailReceive. Fixed Email attachment download bug which garbled attachments when they were sent from Web Mail clients. (e.g. www.hotmail.com

5)

NetEmailReceive. Fixed bug where the Text and HTML content for emails with attachments is sometimes blank.

5)

NetEmailReceive. Emails with attachments are now downloaded about double as fast on a LAN.

6)

New: Send Email Control Template. This template allows you to add email sending functionality to you application even faster than before.

7)

Fixed a bug in the template where you could get the following errors:
  (nettalk.tpl) Error: Group %MethodDeclaration(NetTalk) Not Found
  (nettalk.tpl) Error: Group %GetNewMethodTreeDesc(NetTalk) Not Found 

Version 1.0 beta 8c (24 August 2000)

1)

Added a GetStats command to NetOptions. You can see how many messages are waiting in the DLL, bytes sent / received and DLL queue sizes. See NetDemo for an example.

2)

Minor Bug Fix. If you have an object based on NetSimple and you are using the Server mode, the self.openFlag property will no longer be set to 0 when the connectionClosed() method is called it will remain as 1 if the object was listening on the port before a client connecting to your object shut down it's connection.

3)

We've been trying to tidy up the way a NetSimple object closes down. Things get a bit messy when there is still a packet to be sent, and either the client or server shuts down. We've made some tweaks here, but it may still need some work. If your NetSimple objects are no longer closing correctly please contact us. We've also cleaned up packets that are still hanging around in the DLL after the connection closes. 

4)

Some tweaks to the Mail objects. Also made the object recover better when an error occurs while sending a mail message, so that other mail messages stand a greater chance of being sent.

5)

Made the /netdlllogerrors option report all errors in the DLL and not just a selected few. We've noticed that running this option sometimes causes a "WSLINST Internal Error 02". Let us know if you are struggling with this, otherwise you run it with full logging or no logging.

6)

You can now get the DLL version string out the DLL see NetOptions.

7)

Template change to support Clarion 5.5 CR1.

Version 1.0 beta 8b (10 August 2000)

1)

Increased the Attachment list size in the Email objects

2)

Fixed a bug in the NetEmailReceive object where it could not receive emails from some servers.

3)

The NetEmailSend self.AttachmentList now accepts two formats:
a) comma separated files (e.g. 'c:\file1.txt,c:\file2.txt')
b) Clarion FileDialog format (e.g. 'c:\|file1.txt|file2.txt')
See the NetDemo application for an example.

Version 1.0 beta 8a (7 August 2000)

1)

Added a new logging option /netdlllogerrors. See the logging section.

2)

Fixed a bug in sending attachments using Email. Previously this caused a GPF or sent a corrupted file to be attached.

3)

Email attachments are now sent about 60 times faster.

Version 1.0 beta 8 (3 August 2000)

1)

Added the Email Sending and Receiving objects. These objects support SMTP and POP integration with the use of Mime. You can easily send or receive text, html and attachments with these objects.

2)

We've added a new method to the NetClient object. It's called ServersChanged(). It's a virtual method that is called whenever the list of servers change or may have changed. See more in the NetAuto methods section.

3)

Major overhaul of the documentation. We've also simplified and changed the examples.

4)

Changes to the template. If you are using NetClient and NetServer you need to check or uncheck the "Private Service" checkbox in the More Settings tab in the NetTalk procedure extensions. Most NetServers should be set to public (non-private) and most clients to private except where your clients need to talk to each other (like in Scenario Two).

5)

Changes to the template. You no longer need to derive your Init() and Send() or Process() or ErrorTrap() methods (or any other methods that are already part of the Base Class). You should rather override these methods. So if you previously derived methods that were already part of your Base Class, you should:
1. move your code out of your derived method
2. delete your derived method and 
3. put your code into the methods that are available when you press the Override Class Methods button in the Advanced tab of the NetTalk template. 

You also need to be aware that the parent calls are in place in these methods (view the source to see this) and so you will not need to call the parent calls yourself. If you wish not to call the parent call insert a return statement before the parent call. (See scenario one)

6)

Changed the Internal NetAuto DLL compatibility number. Version 1.0 beta 7b (and less) are no longer compatible with later versions of NetTalk. This happened as a result of some internal changes to the DLL. All you need to do is make sure you are using the latest version. The NetTalk DLL logging will record an error message if you try to use two different DLL versions at the same time to communicate. No communication will take place on the object layer.

7)

Fixed the NetTalk DLL to shutdown when the system is restarted or shutdown. WinEvent users will notice that the DLL shuts down correctly now.

Version 1.0 beta 7 (21 April 2000)

1)

NetTalk now supports Legacy applications. All extensions are used in exactly the same way as for ABC applications. New legacy examples (see \clarion\3rdparty\examples\nettalk\legacy and \clarion\3rdparty\examples\nettalk\multi-leg directories)

2)

We've added the Simple Connect Object. 

3)
The ChatControls Control template interface has changed to bring it in line with the standard NetTalk object extension. This opens up all the normal embed points for the object.

4)
The CloseApps Control template interface has been changed to bring it in line with the standard NetTalk object extension. This opens up all the normal embed points for the object.

5)
DLL Unloading bug has been fixed.

Version 1.0 beta 6

1)

We've made some changes to the Internal working of NetAuto. Each machine gets assigned a GUID (Global Unique Identifier), a RunID and a Description.
The GUID remains the same for the life of NetTalk on that machine, the RunID increments every time NetTalk is run on the machine and the Description forms a friendlier way of identifying NetAuto instances than just the NetName. 
These entries are found in the registry in HKEY_CURRENT_USER\Software\CapeSoft\NetTalk\GUID
You can change the Description but please don't change the GUID or RUNID.

2)

The Description has now been added to the public servers queue. If you open the Chat demo in the NetDemo app you will notice the Description and IP are now in the Chatters list.
The Chat and the CloseApps controls have changed, and we suggest that if you use this control you delete it off your window and add it back again, to make use of the new changes which include the Description and the IP address in the listbox.
This will affect all applications that display the servers list, as the description will be displayed in the servers list instead of the NetName. You can display the NetName by using the code in the NetChat controls and then making the description column have a width of 0. 

3)

Changed the Internal NetAuto DLL compatibility number. Version 1.0 beta 5 (and less) are no longer compatible with later versions of NetTalk. This happened as a result of some internal changes to the DLL. All you need to do is make sure you are using the latest version. The NetTalk DLL logging will record an error message if you try to use two different DLL versions at the same time to communicate. No communication will take place on the object layer.

4)

We made some changes to the extension template. 

We've introduced a "More Settings" tab. You need to fill in either a unique application name or a service name on this tab. This tab is tailored for the object you are using and there are sometimes other options you can choose on this tab.

If you have applications that use previous versions of NetTalk you will need to go to the windows extensions (right-click on each procedure and choose  extensions), for each procedure that uses NetTalk. In the More Settings tab you can specify the options you want.

5)

More changes to the extension template. 

The parameters of the parent.Init method and the objects Init method have changed. The servicename is now handled by the template.

Version 1.0 beta 5 (March 2000)

1)

Added two more options to the DLL function NetOptions. You can now read your Streamed Socket and DataGram Instance Numbers.

2)

Changed the Internal NetAuto DLL compatibility number. Version 1.0 beta 4 (and less) is no longer compatible with later versions of NetTalk. This happened as a result of some internal changes to the DLL. All you need to do is make sure you are using the latest version. The NetTalk DLL logging will record an error message if you try to use two different DLL versions at the same time to communicate. No communication will take place on the object layer.

3)

We have improved the error recovery of NetAuto. If your connection to another NetTalk process is broken (e.g. Network failure or modem reset), NetAuto will try and re-establish the connection immediately, if this fails the old process will be polled every 3 minutes to see if it is alive. In the meantime the "inactive" process is removed from the servers list, which is automatically maintained by NetAuto for you. This prevents you trying to talk to a server, that has failed, but it still allows the server to recover and become active again. You can change the poll-rate via the NetOptions function.

4)

Fixed a bug that limited the maximum lengths of all your public services together to something as low as 81 characters. This has been extended to 1024. 

5)

Added a new NetTalk logging option of /nettalklogerrors. This only logs errors that occur at the object layer. This is very handy to run on NetTalk processes that run for hours at a time as only errors are recorded. For more details see the logging section.

6)

Added a hundred's of a second to the log files..

7)

Added a "Simple Connect" mechanism for talking directly to a port. For more details see the SimpleConnect section.

8)

Speeded up multi-packet communication by about 500%.

9)

Fixed a bug which caused a GPF if you used NetTalk with Secwin (another CapeSoft accessory) and you compiled your app in local mode.

10)

Fixed the code example in the How do I suppress errors section. The second example now reads:
  self.SuppressErrorMsg = true ! Ignore all messages
 parent.ErrorTrap(errorStr, functionName)

11)

Changed the UseRemoteMachineControls Control Template. You will need to delete the control template and add it again or your will get Unknown identifier ?IPADDRESSES error. This adds the current IP address of the machine you are using to the UseRemoteMachineControls window, a Copy button allowing you to copy the IP address(es) to the clipboard and also a most recently used list.

12)

Improved the NetAutoCloseServer and the NetCloseApps objects. They now allow you to specify the application name, so that when you do a remote close only your application is shut and not all the applications running on your network.

13)

Improved features to the File Client / Server. You can now run the FileClient (NetGetFile) in a silent mode, in which no messages are displayed. This is useful if you wish to download a file without displaying messages to the user. You may want to download and update a data file on a regular basis, and you could use this silent mode for achieving this.
There is also a new method called Done(). This method is called when the download is complete or when an error occurred. Use the ErrorOccurred parameter to determine if an error occurred.
We've also added an application name text box on the Extension for NetGetFile and NetFileServer. This allows you to create a File Server and Client that can only talk to your application.

14)

Asynchronous Sending - Faster response faster transmission.

15)

Acknowledgements and "almost" guaranteed delivery. Error recovery.

16)

We've added an application name textbox to the control extension template. This allows you to create a chat window that can only talk to your application, thus differentiating itself from other NetTalk Chat applications that may be running.

Version 1.0 beta 4 (27 January 2000)

1)

Changed scenario one slightly to make it more clear. Also changed the TimeServer and NetGetTime objects to make them more clear. No functional change.

2)

Changed the protocol of the ErrorTrap() method from (string where) to (string errorStr, string functionName) to make it more clear and to log more information. You calls to ErrorString should now look like:

self.ErrorTrap ('An error occurred while attempting to get the time from a time server', 'TimeClient.Ask')

3)

Various improvements to the documentation.
4) Fixed a bug in Scenario 3 (point 28) : if endPosition < len (clip(self.LargeStr))
(This does not change the functionality of the example app, but if you base an app on this without the fix, your MultiPacketReply method will repeatedly send packets without stopping, if your string smaller than len (self.LargeStr))
5) Renamed the NextPacket() method to MultiPacketReply(). You will need to rename any NextPacket() methods you have derived to MultiPacketReply.
6) Added functionality to allow you to call parent.send() from inside Process(). You can also specify self.sendreply=1 before calling parent.send(). This will then swap the ToNetName and FromNetName and the ToThread and the FromThread. It will also sort out the IP for the reply packet. This is only useful if you want to send more than one data sets from within the process() method, if the first packet needs to be a reply packet. 
7) Added more examples. 
8) Added new features to NetOptions. Highlights include being able to change the Port Numbers that NetAuto runs on. 
9) Changed the Chat Controls to use a picture property of @s80 for the list of servers. (was previously @s10, which is a bit small). This template change will only take affect when you add the Chat controls to your application, it can't fix previous chat controls. To make use of this change, delete your Chat control template from your procedure and re-add it.
10) Added WAN (and Internet) support. You can now connect different machines over the Internet. You can either use the UseRemoteMachine Control Template to add this to your add. Or you can use the NetRemote DLL function directly.

What changed in the Template:
1) Added an extension called Suppress_NetTalk

This is used in the following circumstances;
a) The programmer is making a MULTI-DLL product AND
b) NetTalk is NOT included in the product AND
c) This app is the ROOT DLL.

Symptom of not using it:
Link Error: Unresolved External NetGetNetName in NetTalk.Obj

Purpose:
NetTalk is an ABC compliant class. This means that when you make a Root DLL Clarion includes _all_ ABC compliant classes in the Root DLL.
NetTalk makes use of the DOS and NET DLLs.
This means that even non-NetTalk projects would need to ship the DOS and NET DLLs
This template _removes_ NetTalk from the Root DLL, thus overcoming this problem.
2) Changed the "Use a NetTalk Procedure" Extension Template
This now conforms with all the standard embedding methods for abc objects in
an abc window. Specifically;
a) Go to Embeds, LocalObjects, and the object is there.
b) Go to Embeditor, Full Object prototype visible, and all methods can be embedited.
3) Changed the "Use a NetTalk Procedure" Extension Template Interface
Deriving from a standard NetTalk object has now been moved to an 'Advanced' tab, and generally the options have been greatly simplified by removing all unnecessary.
4) NetTalk now supports Multi-DLL apps. To use in a Multi-DLL app you need to:
a) Add the NetTalk global extension to the Root App.
b) Follow normal instructions everywhere else - i.e. add global and local extensions as required.

Version 1.0 beta 3 (6 January 2000)

1)

First public beta release of NetTalk.

horizontal rule

NetTalk's Future

Take a sneak preview into what we are hoping (no promises) to accomplish in Version 3 (in no particular order):

Please note. Many of items on this original list have been implemented, the following is just the items that may still be implemented.



[End of document]