Internet ToolKit
version history
From version 1.0a5 to version 2.6.1
You can find the latest version of this document
here:
http://www.internet-toolkit.com/ITK_updates.html
Version History:
Internet ToolKit for 4D v2.6.1 (22-Nov-2004)
ITKv2.6.1 is a free upgrade to ITK v2.5 and above providing the following bug fixes and changes:
- Vulnerability fix in the openssl library. Under Windows, OpenSSL is now located in 2 DLLs (libeay32.dll and ssleay32.dll) that must be located in the WIND4DX folder
- Some memory problems have been fixed by changing the 'SetHandleSize' code.
- ITK_TCPRcv got some fixes in the OpenTransport code (MacOS 9/X)
- ITK_TCPRcv under Windows was returning SSL data in small chunks (each SSL encrypted data packet was read one by one). Now it tries to read as many data as available.
- ITK_Text2xxx & ITK_xxx2Text routines now check that the 32000 chars boundary is not broken. If the resulting string is longer than 32000 chars, it is now cut to 32000 chars.
- ITK_BlobSearch/Replace could crash when blobs were not allocated
- ITK_TCPRcv under MacOS could return invalid data when the status of the stream had reached 14 due to bad value returned by ITK_TCPChRcvd
- ITK_Addr2Name under MacOS X was not returning dotted IP names anymore (like 194.2.244.1) if no name could be retrieved
- ITK_Encrypt/ITK_Decrypt routines could crash when the InitialValue parameter was not initialized
- ITKccert.pem can now store client certificate that will be used by ITK_TCPOpen
- ITK_SSLSetCert: better support of chained certificates.
- ITK_TCPStrmInfo now handles UDP sockets correctly (could crash under MacOS)
- ITK_TCPInfos under MacOS X was not returning valid TCP layers version infos.
- ITK_Addr2Name under MacOS X was not returning dotted IP names anymore (like 194.2.244.1)
- ITK_TCPClose on SSL streams was shutting down the SSL layers, now this is done in ITK_TCPRelease.
- ITK_Status2A was not handling invalid streamRef correctly, now status -1 is returned for invalid streams and not considered as an error.
- ITK_BlobGzip now uses a slightly large compression buffer (500 bytes more).
Internet
ToolKit for 4D v2.6
(4-Sept-2002)
ITKv2.6 is a free upgrade to ITK v2.5
mainly providing MacOS X Carbon compatibility and bug
fixes.
Some existing ITK commands have been
enhanced compared to v2.5.
ITK "Light Binary Package" limitations
The "Light" binary package file can be used
with both ITK Pro (with no stream limitation) and ITK
Light license numbers (with the 8 streams limit). The
"light binary package" is only provided to save disk
space by removing uneeded cryptography and SSL code.
No more 68K code version
ITK v2.6 does not
contain 68K code anymore. If you still need
to use ITK on a 68K Macintosh, please contact ITK's
Technical support (support@internet-toolkit.com).
Enhanced and new commands:
- ITK_SSLSetCert
now allows to set default certificate infos.
- Added ITK_SSLSetCipher(streamRef;
cipherlist) to allow to set the list of ciphers on an
SSL stream. ITK_SSLSetCipher must be called alfter
ITK_TCPListen and BEFORE ITK_SSLSetCert.
- ITK_Text2HTML and ITK_HTML2Text now
support the euro symbol (€)
Bug fixes:
- ITK_BlobUnzip: a bug could occur because of
a too small decompression buffer.
- Expiration date was checked by mistake on SSL
Server license numbers.
- New parameter added in ITK_EncryptText,
ITK_EncryptBlob, ITK_DecryptText end
ITK_DecryptBlob to provide initial vectors (IV)
values. Encryption routines where not working
correctly when using modes other than ECB (due to
missing initialization of IVs).
- When using SSL under Windows, the negociation
could fail with some browsers. This is fixed.
Other changes:
- Change of internal resource ID (15256 instead of
15000) to workaround a 4D Insider bug
- Better support of "soft line breaks" in
ITK_Text2Quoted. This is activated if option is
set to 2.
- Version 0.9.6g of OpenSSL is now used. This
version includes a security bug fix regarding possible
buffer overflows discovered in July 2002 (see
http://www.openssl.org/news/secadv_20020730.txt).
- Several optimization in the SSL code should
improve its speed.
Internet
ToolKit for 4D v2.5.1
(11-Mar-2002)
Internet ToolKit v2.5.1 new features :
- Added MD4 digests calculations.
Internet ToolKit v2.5.1 bug fixes :
- ITK_BlobGzip could have problems
compressing very small blobs.
- ITK_PictSize , ITK_PictSave &
ITK_TCPSendPict under Windows were not
extracting JPEG data correctly in some cases.
- ITK_SSLStrmInfo now returns -3 if the
stream is not connected (status # 8)
- ITK_uu2Text could not decode multiple
lines uuencoded data correctly (result data was
truncated).
- SSL negociation was not handled
asynchronously which could cause ITK to halt on calls
like ITK_TCPStatus.
- SSL negociation : when a stream was
connecting but negociation done by the remote end
before closing it, it status could stay to 2
indefinitely. Now the status will move to 20.
- SSLv2 negociation could fail.
- ITK_Bin2Mac could not decode files with a
fork larger than 16MB (error code 3 was returned).
This is fixed.
- ITK_RFC2Secs was not converting some 2
digits years correctly. This is fixed.
- ITK_TCPInfos was not returning ITK's last
version number under ITK Light.
- ITK_TCPSendBlob could not send a one byte
blob (or a one byte portion of a blob). This is fixed.
Starting and ending offsets are now also checked, if
bad, they could cause ITK_TCPSendBlob to hang.
- ITK_TCPRecv : better 4D multi-process
handling (IDLE 4D is called only when ITK_TCPRecv
loops).
- ITK_BlobRead / ITK_PictRead :
added a test on memory allocation for the read blob or
pict in case of large files. ITK could corrupt memory
in some cases (large blobs or picts).
MacOS only fixes :
- Under MacOS, when using SSL, ITK_TCPClose
could take a very long time to execute and no more SSL
connection could be accepted in some circumpstances
(like when the browser was IE 5.5 under Win2000).
Windows only fixes :
- License checking bug fix
in the Windows version : ITK was not
detecting correctly compiled apps under Windows.
This was causing compiled apps to switch to the demo
mode after the development license expiration
date. This is fixed. Be
sure to upgrade previous installed version of ITK !
- ITK_TCPUnrcv under Windows when using SSL
streams was corrupting SSL decryption. This is
fixed.
Internet
ToolKit for 4D v2.5
(30-Mar-2001)
Internet ToolKit v2.5 main new features :
- SSL support !
- support for standard cryptography algorithms
- data compression (gzip algorithm) of text and
blobs
New license numbers requires. Please see the
distributor page for
purchase info.
Internet
ToolKit for 4D v2.0.4
(6-Oct-2000)
Internet ToolKit v2.0.4 new features
:
- ITK_TCPUnRcv: a new parameter has been
added to allow to specify were the "unreceived data"
mus be put in the receive buffer.
ITK_TCPUnRcv($stream;$data;0) -> data are put at
the END of the unreceive buffer, ITK_TCPUnRcv($stream;
$data; 1) -> data are put at the BEGINNING of the
unreceive buffer.
- Added a new type of message digest calculation
(RIPE-MD160) to allow to implement QuickDNS Pro Load
balancing.
- ITK_PictRead & ITK_PictSave: a
new option (value 1) has been added to allow to remove
the 512 bytes headers when reading a PICT file using
ITK_PictRead and adding them when using
ITK_PictSave.
Example:
$pict :=
ITK_PictRead
("HD:PictFile";0;0;1)
` remove the 512 byte header
$err :=
ITK_PictSave
($pict;"HD:PictFile";0;0;1)
` add the 512 byte
header
- Added ITK_Record2Blob and
ITK_Blob2Record
Example:
$err :=
ITK_Record2Blob
(fileNum;
blob)
$err :=
ITK_Blob2Record
(blob;
fileNum)
- ITK_URL2Text & ITK_Text2URL: a
new option value (4) allow to avoid ISO 8859-1
encoding (usefull when the URL encoded data is not
using the ISO 8859-1 charset).
- ITK_Text2HTML: added a new option (2) to
avoid encoding ampersand followed by spaces "&
"
ITK_Text2HTML(" && ";2) -> " &&
"
ITK_Text2HTML(" && ";0) -> "
&& "
- ITK_TCPRcvFile: added a new parameter to
specify the maximum size of the file to be
received.
err := ITK_TCPRcvFile(stream; filePath; filter;
options; timeout; maxlen)
Internet ToolKit v2.0.4 bug fixes :
- ITK_TCPStatus: in some cases returned
values (like the amount of transmitted data) where
invalid (negatives numbers). This is now fixed.
- ITK_TCPRcvFile : there was a bug on the
maximum length feature. Only the first 16KB were
received if no maximum length was provided.
- ITK_DigestBlob: could crash under Windows
or do bad Digest calculations under MacOS. This is now
fixed.
- ITK_PictSize: added a new test in JPEG
picture analysis to avoid crashing on some fake JPEG
data.
- ITK_PictSize had a problem analysing some
JPEG pictures (encoded using non-baseline scheme).
This is fixed.
- ITK_Text2URL: ASCII character 127 was not
encoded, now it is encoded correctly.
- ITK_TCPRcvFile: the receiving file wasn't
always closed. This is fixed.
- ITK_TCPRcvFile: the timeout parameter
wasn't always working. This is fixed.
- ITK_TCPSendFile was returning a error -1 if
the file couldn't be opened. Not it returns a MacOS
style error code, or -2 if a problem occured while
opening the file.
- ITK_Rot13Text & ITK_Rot13Blob :
was crashing in some cases. This is fixed.
- ITK_ICMPEcho: if the size was 0 (default
size) ITK_ICMPEcho wasn't using a default packet size
of 64 bytes, but an empty packet. This is fixed.
MacOS only fixes :
- ITK_UDPRelease: could crash in some cases
under MacOS. It should be fixed.
- Changed creator signature from "4D05" to "4D06"
for all files created by ITK.
Windows only fixes :
- Date conversion routines under Windows:
daylight saving was not taken into account in the time
zone offset calculations. This is now fixed.
- ITK_TCPClose in the Windows version was
releasing the stream instead on just doing a close.
This prevented the use of any ITK_TCPRead routines
after an ITK_TCPClose.
- ITK_TCPRcv, ITK_TCPRcvFile,
ITK_TCPRcvPict, ITK_TCPRcvBlob (windows
only): If the stream was closed by the remote host,
but some data were still available, the status was
immediately moving to 14 (closewait). Now the status
remains at 8 (connected), then moves to 14 only when
there are no remaining data to read which is the
behaviour in the MacOS version of ITK.
- ITK_TCPRcvFile (windows only): the "append"
flag was not working, this is now fixed.
Internet
ToolKit for 4D v2.0.3
(13-Jul-99)
Internet ToolKit v2.0.3 new
features:
- ITK_Text2B64: a new option has been added
to allow ITK to add RFC required padding chars ("=")
at the end of the Base64 encoded string. (see
manual)
- ITK_TCPRecvBlob: two new options have been
added to change the behaviour of ITK_TCPRecvBlob when
using and end string.
4 = look for the end string only in new received data
(usefull when appending data to an existing blob)
8 = remove end string at the end of the received
blob
- ITK_SetTimeout is a new routine that can be
used to set a timeout on all ITK routines that send
some data (ITK_TCPSend, ITK_TCPSendPict, etc). This
will make all sending routines return control when ITK
has not been able to send data during the given
timeout. The default behaviour is an infinite timeout
(meaning that ITK does return control).
This timeout is usefull to avoid having a stream
remaining used even if the remote host has gone (modem
disconnection, host reboot, etc).
Syntax: $currentTimeout :=
ITK_SetTimeout($stream; $newTimeout)
$stream indicates on which streamRef the "send"
timeout must be set
$newTimeout indicates the timeout value (in ticks), a
zero or negative value will not set the timeout
$currentTimeout will contain the new timeout value
Example:
$currentTimeout :=
ITK_SetTimeout($streamRef;30*60) ` set a 30s
timeout
$currentTimeout := ITK_SetTimeout(streamRef;-1)
` retrieve the current timeout value
$currentTimeout := ITK_SetTimeout(streamRef;0)
` set an infinite timeout
- ITK_TCPRelease has been modified to accept
a new flag to request that all internal ITK listeners
are removed when the last "listening" stream is
released. This is only valid under OpenTransport and
Windows, under MacTCP this was already the default
behaviour.
Example:
$err : ITK_TCPRelease(streamRef;2) ` force
internal listener to stop listening
- ITK_PictSize: a new type of picture is now
detected.
Mac style PICT are now scanned to look for JPEG data
(found for example in QuickTime compressed PICT).
If some JPEG data are found, ITK_PictSize will
return the size of the JPEG data and a picture type of
3.
- ITK_UDPRcv : now accept timeout values less
than a second.
When the timeout value is negative, it indicates a
number of ticks (1/60s).
Ex: $err :=
ITK_UDPRcv($udp;$data;$remAddr;$remPort;$localPort;-6)
` wait 1/10s
- Two new IPC calls:
- ITK_CountIPC returns the current number of
existing IPC channels.
- ITK_GetIndIPC(L) returns the channel number
of the nth IPC channel.
Ex:
` Total number of messages in IPC channels
$nbMsg := 0
For ($i;1;ITK_CountIPC)
$nbMsg := $nbMsg +
ITK_NbIPCMsg(ITK_GetIndIPC($i))
End For
- ITK_TCPSendFile accepts a new parameter
which allows to specify if the resource fork should be
sent instead of the data fork.
Ex: $err :=
ITK_TCPSendFile($c;$file;filterFlag;sendBlockSize;startOffset;endOffset;option)
option = 1 -> send the resource fork (MacOS
only)
MacOS OpenTransport new features:
- ITK_TCPRelease: In order to force ITK to
remove all FinWait2 stream, the option flag must be
set to 4.
Windows only new features:
- ITK PPP routines have been implemented in
the Windows version of ITK.
See the programmer's guide update for more
details.
Internet ToolKit v2.0.3 fixes:
- All ITK TCP receiving routines using an
endstring parameter could cause a memory corruption in
some cases. This has been fixed.
- Digest calculation routines
(ITK_DigestStart, ITK_DigestAdd,
ITK_DigestBlob and ITK_DigestStop) could
crash in some circonstances. This is fixed.
- ITK_TCPStatus($stream;14) or
ITK_TCPStatus($stream;17)was not returning the
requested value but the stream status.
- ITK_TCPRecvBlob:
- change in the end string detection code. The
end string was searched in new incoming data
packets only. This could cause ITK not to detect
the end string if this end string was received in
separate data packets. Now it is searched in all
the accumulated data.
- when the end string was used, ITK_TCPRecvBlob
was not accumulating the last packet of received
data in the blob. This is fixed.
- was returning a value not reflecting the amount
of data added to an existing blob. This is
fixed.
- was not searching the endstring properly due to
some missing initialization. This is fixed.
MacOS OpenTransport related fixes:
- ITK_TCPStatus under OpenTranport could keep
returning 2 for listening streams in some
circumstances (best known as the
ITK OT "deafness"
bug). In some cases, an incoming call
can be followed by a "disconnection" before the stream
was really connected. This case was not handled
properly and has been fixed.
- ITK_TCPListen has been modified to avoid
possible listening problems when under heavy load.
This modification requires version 1.1.1 of
OpenTransport.
ITK now runs automatically in MacTCP mode under pre
1.1.1 versions of OpenTransport.
Windows only related fixes:
- ITK_TCPStatus under Windows was staying at
8 (connected) even when the remote host had closed the
connection. Now, the status moves to 14 (CLOSEWAIT,
close has been received).
- ITK_SetPriority under Windows: the correct
values for the priority levels are 64 (normal), 32
(idle), 128 (high), 256 (realtime). Other values will
return an error and the process priority will not
change.
Internet ToolKit v2.0.2
(30-Dec-98)
- In demo mode, ITK was running as a "Light"
version, now it runs as "Pro" one.
- ITK_PictRead: real PICT files were
incorrectly read.
- ITK_PictSave: real PICT files were
incorrectly saved.
- ITK_Text2B64: added a test to dissalow
convertion of too long text. The limit is 24500
characters.
- ITK_Text2uu: added a test to dissalow
convertion of too long text. The limit is 180
characters.
- ITK_TCPRecvBlob: the received blob was
empty if it was not allocated by 4D. Now ITK allocates
it if needed.
- ITK_Pict2Blob & ITK_Blob2Pict:
the returned data was refering to the same data in
memory. Added a new parameter to request either a copy
of the original data or a transfer of the original
data.
Windows only:
- ITK_TCPGlobInfo under Windows was returning
0 in all cases. Fixed.
MacOS with OpenTransport only:
- In some cases, ITK could stop "listening" and keep
returning 2 in all ITK_TCPStatus. This has been
fixed.
- ITK_TCPOpen under OpenTransport: could stay
"freezed" during 4mn. Fixed.
- ITK_TCPSendFile could lock itself in some
flow control cases. Fixed.
- All ITK_TCPSend routine (ITK_TCPSend,
ITK_TCPSendFile, ITK_TCPSendBlob) were
not always detecting that the stream was down if the
remote end was not responding anymore. A timeout of
4mn (2xMSL as decribed in RFC793) has been added to
avoid this.
Internet ToolKit v2.0.1
(17-Aug-98)
- ITK_Init: several problems related to
license number checking. ITKv2 could run in "Light"
mode with "Pro" license numbers or even in Demo mode
with the Windows version. This is fixed.
- ITK_TCPRcv: a memory leak has been
fixed.
- The ITK Programmer's Guide has been
corrected in various places.
MacOS with OpenTransport only:
- ITK_TCPStrmInfo under OpenTransport: the
local port number wasn't returned if the stream wasn't
connected.
Internet ToolKit v2.0
(3-Aug-98)
See the ITKv2
announcement for more details on version 2.0
-
Internet ToolKit
v1.1.6
- ITK_RcvIPCMsg: a memory corruption bug has
been fixed. This bug was only present when the second
parameter was used to keep the message in the IPC
channel.
- ITK_TCPRcvFile: a new option allow to keep
the stream open.
Ex: $err :=
ITK_TCPRcvFile($stream;$filePath;$filters;2)
The 4th parameter in now a bitfield (1=append,
2=release).
- ITK_TCPStrmInfo: the error code rueterned
was not always set.
- 4D Server v6: the demo dialog was displayed
on the server side in some circonstances.
This was due to some new call implemented in 4D Server
v6.
- ITK_ResetIPC: was setting the number of
messages in a channel to -1 instead of 0.
- All Pict related routines (ITK_PictSize,
ITK_TCPSendPict, ITK_Pict2GIF) now check that the
image passed is not null.
- The "stream reuse" feature has been
removed. It did not provide real performance
enhancement, and could cause some troubles.
- ITK_Text2URL: new option added to allow to
encode every chars included reserved ones (conformance
to RFC#1738/2.2).
Ex: $url := ITK_Text2URL($text;2) ` convert everything
according to RFC#1738/2.2
MacOS only:
- ITK_Addr2Name: could return an empty string
even when the second parameter was set to 0.
- ITK_TimerStop and ITK_TimerLap are
now checking if the passed value is 0.
ITK_TimerStop also set the timerRef to 0 to avoid
possible crashes.
Be carefull with values passed to ITK_TimerStop and
ITK_TimerLap, you must only pass values returned by
ITK_TimerStart.
- PPP routines: added support for FreePPP 2.6
and OT/PPP.
With OT/PPP, ITK_PPPStatus does not return -1 if
OT/PPP or FreePPP are selected in the TCP/IP control
panel due to a missing function in the OpenTransport
API.
Windows only:
- ITK_Init: The result code was not always
set to 0 when everything was fine.
- ITK_TCPSendFile: The result code was not
always set to 0 (generally 2) when everything was
fine.
- ITK_TCPStatus: When the remote host was
releasing the stream, the status returned wasn't
updated accordingly until ITK_TCPRcv was called
(always returning 8).
- ITK_TCPClose: the FIN frame in the TCP
protocol was not always sent and the stream could be
release to early (the remaining data were not sent in
that case).
Internet ToolKit v1.1.5
- ITK_PictSize return the size of GIF and
JFIF picture read using ITK_PictRead.
Picture type for JFIF pictures is 2.
- A bug has been fixed on ITK_RFC2Secs.
- ITK_ICGetRaw and ITK_ICSetRaw have
been added to access some Internet Config info not
stored as Pascal Strings.
- ITK_RcvIPCMsg has a new parameter that
allows to keep the received messages in the channel. A
memory related bug has also been fixed.
Ex: $msg := ITK_RcvIPCMsg(canal;1)
` the received msg is still in the
channel
- ITK_TCPSendPict can now send the entire
picture data by setting the "end offset" to -1.
Ex: err :=
ITK_TCPSendPict(stream;pict;0;-1) ` everything is
sent
Windows only:
- ITK_TCPSend wasn't updating the stream
status if the stream was closed.
- ITK_Addr2Name tries to filter NetBios
answers.
- ITK_PictSave wasn't using the "start
offset" parameter and was always saving the picture
from the first byte.
Internet ToolKit v1.1.4
- ITK_Text2HTML wasn't converting Œ
and ¹ into '.
- ITK_TCPRelease: stream reuse wasn't working
anymore (since ITK v1.1).
- ITK_Bin2Mac was changing the destination
pathname parameter in compiled databases.
- ITK_Mac2Hqx has been modified to add some
"filler" chars at the end of the encoded data.
- ITK_HTML2Text, "&#nnn;" patterns were
incorrectly decoded .
MacOS only:
- Under OpenTransport, ITK_TCPStatus could return 8
while the stream was already closed. ITK now checks
the remote host IP address to return 14 when this
address passes to 0 (workaround described by a Swedish
user of ITK). This bug seem to come from
OpenTransport.
Windows only:
- ITK_TCPSendFile wasn't sending the file
data.
- ITK_TCPRcv: -1 was returned instead of 0
when no data were available.
- Fix on ITK_TCPListen to allow IP address
reuse (Winsock level).
- New handling of incoming connections under Windows
NT.
- ITK_Addr2Name(xxx;1) was returning a
"dotted" adress instead of an empty string when the
reverse name couldn't be retrieved.
Internet ToolKit v1.1.3:
- ITK_Text2HTML and ITK_HTML2Text now
use RFC#1866 conversion table. The previous table was
incomplete.
- ITK_TCPSendFile has two new parameters to
allow sending portions of a file instead of sending
the whole file. This is usefull to support "byterange
serving" in HTTP servers (used for example by Acrobat
3.0 plugins).
Mac specific changes:
- ITK_TCPClose had a bug that could trash the
end of the data to be sent. This is now fixed.
Windows specific changes:
- ITK could cause a crash when reopening another
database. This was caused by some Windows specific
"hook". It has been fixed.
- ITK_UDPRcv was sometime causing an
exception. This has been fixed.
- File conversion routines (ITK_Mac2Bin,
ITK_Bin2Mac, ITK_Mac2Hqx and
ITK_Hqx2Mac) are now supported under Windows.
Be aware that the resource fork will always be
lost.
Internet ToolKit v1.1.2
- ITK_TCPSendPict wasn't sending JPEG pictures
correctly due to a change related to the addition of
ITK_PictSave and ITK_PictRead in ITK v1.1.1. It is now
fixed.
- ITK_Addr2Name could return garbage when the DNS
wasn't answering. This is now fixed.
- ITK_Text2HTML now translate "°" into
"°". All other &#xxx; translation have
been fixed. Previous 1.1.x versions were adding an
additional garbage character before the ";"
character.
- ITK_Text2URL now encodes "<" and ">"
characters.
- ITK_RFC2Secs was returning a bad value when the
time zone offset was greater than the hour (resulting
in a negative hour in some internal calculation that
lead Date2Secs's Toolbox routine to return an invalid
value). The time zone offset is now calculated
differently to avoid this problem.
Windows only bug fixes:
- ITK_TCPListen & ITK_TCPRelease are now handled
differently under Windows to workaround a Winsock bug.
The workaround is only applied when more than one
stream is opened on the same port number and IP
address.
- ITK_Pict2GIF offscreen pixmap where not released
by Altura's Mac2Win library resulting in a huge memory
leak. This is now fixed.
ITK v1.1.2 as been tested under Windows NT Server 4.0 and
MacOS 7.5.5 with OpenTransport 1.1 and OpenTransport
1.1.1b8.
Know problem:
Under pre 1.1.1b8 versions of OpenTransport,
ITK_Addr2Name can lock the machine after a large number
of calls (a few thousands). This is fixed in
OpenTransport 1.1.1b8 and should be fixed in the final
1.1.1 version of OpenTransport.
Internet ToolKit v1.1.1
- licence number wasn't always correctly recognized
by ITK 1.1,
- ITK_Secs2RFC & ITK_RFC2Secs had
some troubles due to a bug in string manipulation
routines,
- ITK_Mac2Bin, ITK_Bin2Mac,
ITK_Mac2Hqx and ITK_Hqx2Mac now accept
long pathnames correctly.
- ITK_TCPSendFile and ITK_TCPRcvFile
have been fixed on Windows to handle extended ascii in
pathnames correctly,
- high load on the Windows version should now be
handled more efficiently. If a lot of incoming call
were received, Winsock could reject some of them.
Internet ToolKit v1.1
This new version of ITK is now available for
Mac and Windows (95 and NT only). ITK 1.1
bring some new features. For more details, please check
the latest version of "ITK Programmer's Guide" available
on ITK's internet site at
http://www.internet-toolkit.com/
Internet ToolKit v1.0.4
- ITK_Date2Secs
was not handling the local time zone correctly when
the new parameter introduced in v1.0.3 was used.
- ITK_TCPSendFile
could sometime send output buffered data twice. This
problem was also present in ITK_TCPRcv.
- ITK_TCPWaitConn
could stay locked if an error occured on the stream
before a connection was detected.
- New info returned by ITK_TCPInfos
to get current OpenTransport version.
Check ITK Programmer's Guide for more details about
this new info returned by ITK_TCPInfos.
- ITK_Mac2Bin
wasn't always encoding files correctly. It is now
fixed. This could cause ITK_Bin2Mac
to hang when decoding improperly encoded files.
- ITK_Hqx2Mac
was returning -1 when no error occured. This is now
fixed and 0 is returned.
Internet ToolKit v1.0.3
This version of Internet ToolKit fixes two problems:
- ITK_Secs2RFC
was not working correctly if the current time zone
wasn't the GMT one.
- ITK_TCPSend
now returns the number of bytes stored in its internal
output buffer when using output buffering.
Internet ToolKit v1.0.2
This version of ITK fixes one problem:
- A bug in CR->CRLF and CRLF->CR filters was
not updating the length on the result string.
Internet ToolKit v1.0.1
This version of Internet ToolKit fixes two problems:
- Some incompatibilities with other 4D External
Packages (such as System7Pack) due to bad resources in
ITK Package,
- A bug in ITK_Addr2Name which was not always
returning a result to 4D, which may lead to some
freezes or crashes in 4D.
Internet ToolKit v1.0
This is the first shipping version of Internet
ToolKit.
You must have a valid license number to use this
version of Internet ToolKit.
Internet ToolKit v1.0b3
- ITK_TCPOpen
and ITK_TCPListen
accept two new parameters to set the type of service
field in MacTCP and to reuse previous streams. Reusing
stream get bring some performance increase and simpler
code.
- ITK_TCPWaitConn
accepts a new timeout parameter (in seconds) that
limit the time ITK_TCPWaitConn has to wait for the
specified status value.
For example: $err :=
ITK_TCPWaitConn($stream;14;30) will wait only
during 30 seconds
- ITK_Pict2GIF
accepts two new parameters to specify the coordinates
(horizontal, vertical) of a transparent pixel. If not
specified, the first pixel (0,0) is assumed to be
transparent.
- ITK_TCPStatus
returns -1 if issued on a UDP stream instead of a TCP
stream.
- ITK_HTML2Text
acceps a new value to extract the text from some HTML
code by deleting all text surrounded by "<" and
">".
ex: ITK_HTML2Text("<h1>Main
part</h1>";2) return "Main
part".
- a bug in ITK_Text2URL
has been fixed. The heap could be corrupted if the
text to be translated was ending by escaped
characters.
ITK 1.0b3 is also the first version that checks ITK's
licence number.
Internet ToolKit v1.0b2
- ITK_TCPSendPict
accepts 2 new optional parameters to give a starting
and ending offset for the data you want to send. This
allows sending of pictures (or data contained in
picture field or variables) as you want.
- the output buffer wasn't always flushed when using
ITK_TCPRcv,
not it is.
- text conversion routines on empty text could cause
some troubles (like type 11 errors on PPC).
Internet ToolKit v1.0b1
Internet ToolKit v1.0a9 (13/7/95)
ITK_TCPWaitConn can now wait for a stream to be
closed, ex:
$err := ITK_TCPWaitConn($c;-1)
New options for translation routines:
ITK_HTML2Text
accepts a new flag (value = 1) to avoid translating
& > < "
ITK_URL2Text
and ITK_Text2URL
accepts a new flag (value = 1) to do true URL
translation,
ex:
ITK_URL2Text("test%204D+ITK.html";1)
will return "test 4D+ITK.html"
ITK_Text2URL("http://www.internet-toolkit.com/test
4D+ITK.html";1) will return
"http://www.internet-toolkit.com/test%204D+ITK.htlm"
New options for DNS routines and DNS load
balancing:
ITK_Addr2Name
accepts a new parameter (value = 0, 1 and 2) to specify
the result format,
ex:
ITK_Addr2Name($addr;1) will only return full text adress
obtained from DNS (ex: machine.dom) or an empty string if
the address cannot be resolved,
ITK_Addr2Name($addr;2) will only return a dotted adress
(ex: 199.198.197.196),
ITK_Addr2Name($addr;0) will return a full text adress if
possible otherwise it will return a dotted address if the
address cannot be resolved.
ITK_Name2Addr
accepts a new parameter to allow DNS load balancing. This
new parameter can be used to specify which address you
want if more than one address is found for the given host
name.
ex: ITK_Name2Addr("machine.dom";1) returns the first IP
address (or 0 if none),
ITK_Name2Addr("machine.dom";2) returns the second IP
address (or 0 if none),
ITK_Name2Addr("machine.dom";3) returns the third IP
address (or 0 if none),
ITK_Name2Addr("machine.dom";4) returns the fourth IP
address (or 0 if none),
ITK_Name2Addr("machine.dom";-1) returns one of the
resolved addresses (choosed randomly)
ITK_TCPOpen($host;$port;$buffSize)
now uses DNS load balancing (see ITK_Name2Addr) if the
$host parameter starts with a period '.',
ex: ITK_TCPOpen(".machine.dom";80;32000) will randomly
choose one of the resolved adresses.
New UDP support
UDP is now supported by ITK with 5 new routines
(ITK_UDPCreate,
ITK_UDPRelease,
ITK_UDPSend,
ITK_UDPRcv,
ITK_UDPMTUSize).
New Picture routines
ITK_Pict2GIF
allows GIF encoding of pictures,
ITK_TCPSendPict
extracts JPEG or GIF data from JPEG compressed PICT or
GIF encoded picture and send it on the stream, ex:
COMPRESS PICTURE($myPict;"jpeg";500)
$err := ITK_TCPSendPict($c;$myPict)
or
$err := ITK_TCPSendPict($c;ITK_Pict2GIF($myPict))
ITK_PictSize
returns the size and coordinates of a picture.
WARNING:
ITK demo mode has been changed:
- there is no more limit on the number of stream you can
open in demo mode,
- demo mode will now expire after 30 minutes.
ITK Example database is now is a separate file.
Internet ToolKit v1.0a8 (5/7/95)
- ITK_Mac2Hqx and ITK_Hqx2Mac allows BinHex encoding
and decoding,
- ITK_TCPReceive and ITK_TCPClose now flushes the
output buffer,
- ITK_TCPSend with flush flag > 255 now works as
documented,
- new HTTP example,
- examples are now in 4D Insider Library format as
well as in 4D Structure file format.
Internet ToolKit v1.0a7 (23/6/95)
- new filtering flags for ITK_TCPSend, ITK_TCPRcv,
ITK_TCPSendFile, ITK_TCPRcvFile,
- better control over output buffering in
ITK_TCPSend,
- new stopwatch-like routines (ITK_TimerStart,
ITK_TimerStop),
- new InterProcess Communication routines
(ITK_NbIPCMsg, ITK_SendIPCMsg, ITK_RcvIPCMsg,
ITK_ResetIPC),
- alpha version time bomb changed.
Internet ToolKit v1.0a6 (17/6/95)
- FAT version,
- New examples with SMTP and FTP (in 4D Insider
Library format)
Internet ToolKit v1.0a5 (13/6/95)
- Internet Config support now added,
- MacPPP control added,
- HTML/URL/ISO codec added.
To get your licence number, use ITK's
order form.
For more info about these changes, check the last version
of ITK Programmer's Guide at:
http://www.internet-toolkit.com/itk_doc_toc.html
Last update: 4-Sept-2002 by
CQ