-
Content Count
1881 -
Joined
-
Last visited
-
Days Won
33
Everything posted by Angus Robertson
-
Indy OpenSSL static linking
Angus Robertson replied to danielKishlakov's topic in Network, Cloud and Web
YuOpenSSL is supplied as dozens of compiled DCUs for Delphi 6 and later, with Win32 and Win64 versions. I'm told a lot of preprocessing of the original OpenSSL code is required before it will compile, for instance there is heavy use of macro expansion statements that need converting into pure C. But this is automated, and new versions of YuOpenSSL usually appear within hours of a new OpenSSL release, one is due next week. The original OpenSSL can be built for multiple platforms, but I guess doing so for Delphi is a commercial decision, depending on demand. BTW, I'm just a YuOpenSSL user, it's not my project. Angus -
Indy OpenSSL static linking
Angus Robertson replied to danielKishlakov's topic in Network, Cloud and Web
There is a commercial solution to statically linking OpenSSL with three different Delphi internet components from https://www.yunqa.de/delphi/products/openssl/index But they don't support OpenSSL 1.0.2 which is long obsolete and has no recent security fixes. But YuOpenSSL includes a new Indy OpenSSL 1.1.1 IOHandler so it can handle TLSv1.3 and YuOpenSSL supports OpenSSL 3.0 for ICS. Angus -
RFC 9114 for HTTP/3, aka QUIC/UDP has only just been released. Earlier versions of QUIC are supported in various browsers, but are really only beneficial for complex web pages with hundreds of elements, not sure how relevant to the users of ICS, no-one has ever asked for HTTP/2. There is a fork of OpenSSL by Google, Microsoft and Akamai supporting QUIC, but the committee did not like the design and refused to merge it, instead starting a fresh QUIC design: https://www.openssl.org/blog/blog/2021/12/03/starting-the-quic-design/ No specific news about a release date, although lots of activity on GitHub, so probably months away from release. Waiting for OpenSSL is probably the safest long term solution for HTTP/3. Angus
-
ICS Delphi DataSnapBridge
Angus Robertson replied to nighthawk2032's topic in ICS - Internet Component Suite
What are you wanting to achieve? Angus -
ICS V8.69 announced
Angus Robertson replied to Angus Robertson's topic in ICS - Internet Component Suite
Sorry, downloading from GetIt is after the web sites, and even longer when I forget to notify them. Angus -
ISuperObject local double conversion problem. {"value":0,22}
Angus Robertson replied to PizzaProgram's topic in ICS - Internet Component Suite
SVN has been updated with a fix to create period decimal points instead of commas, using a simple version of TFormatSettings, thanks for finding this and the fix suggestions. When I change the test app locale to Hungarian, I noticed the strange date formatting with spaces, fortunately ICS uses it's own masks and functions for internal date formats. Angus -
ISuperObject local double conversion problem. {"value":0,22}
Angus Robertson replied to PizzaProgram's topic in ICS - Internet Component Suite
Unfortunately, ICS claims to still support Delphi 7, and I did build V8.69 on it last week to check, so any fixes need to be backward compatible, although there are one or two features not supported on D7. I'll look at this next week, long holiday weekend in the UK. Angus -
ISuperObject local double conversion problem. {"value":0,22}
Angus Robertson replied to PizzaProgram's topic in ICS - Internet Component Suite
That change was to allow the unit to be used on non-Windows systems, gcvt is a Windows API. The dirty way to fix this is to replace a comma with a period immediately after the FloatToText statement, I'll investigate if there is a non-localized FloatToText alternate. Angus -
ICS V8.69 announced
Angus Robertson replied to Angus Robertson's topic in ICS - Internet Component Suite
If I improve the JSON sample, I'll explain the improvements. Angus -
ICS V8.69 announced
Angus Robertson replied to Angus Robertson's topic in ICS - Internet Component Suite
Thanks, 2023 might appear in one or two other units, as well. The JSON visual parser is quite useful, keep meaning to add a backwards button to make it faster. Angus -
ICS V8.69 announced
Angus Robertson replied to Angus Robertson's topic in ICS - Internet Component Suite
Whoops, the file is in SVN but missing from the zips, they will be updated shortly. Angus -
Unique Hardware ID
Angus Robertson replied to msd's topic in Algorithms, Data Structures and Class Design
The trick I believe Windows itself uses is to allow one or two failures of the hardware IDs that are collected and compared, to allow for replacement components. Assuming you store and compare each ID separately, rather than hashing them all together. Also beware that some Ethernet MAC addresses are deliberately random, most new phones and Windows 10 (unless disabled), in an attempt to stop some web sites tracking you. There is a bit in the MAC that indicates it is random. Random IPv6 addresses often include the MAC, so are not really random atall. Angus -
He originally posted the question in the ICS forum, but the issue is not with ICS, but with a Javascript web page implementation to display data from the websockets server. Angus
-
You know ICS is sending the data, so the issue here is your Javascript to receive the data. You say you are using the ICS sample HTML page, why do you think it is designed to receive data from the server? Angus
-
I've been using Axolot Data XLSReadWrite to read and create XLS and XLSX spreadsheets for almost 20 years. Not free, but just works. http://www.axolot.com/ Angus
-
Sorry, I did not write the WebSockets component, and only minimally tested it. Perhaps someone who actually uses WebSockets will have a suggestion. Angus
-
Sorry, other sample not in the main project group that is a victim of functions moving between units to ease linkage. Please just add OverbyteIcsUtils to the OverbyteIcsWebSockets uses clause. Angus
-
# in URLs results in HTTP 400 or 404
Angus Robertson replied to Maxxed's topic in ICS - Internet Component Suite
This is now fixed, should be in SVN tomorrow with a lot of other HTTP improvements. There is a new option to skip removing the # fragment anchor where users are deliberately using # as a parameter without escaping it. But this is likely to be so rare the option has to be set to leave it, so technically not backward compatible which is our development philosophy. Angus -
# in URLs results in HTTP 400 or 404
Angus Robertson replied to Maxxed's topic in ICS - Internet Component Suite
# is an anchor, an instruction to the browser on how to display the page, it is never sent to the server as part of the URL by a browser. Your application should create a valid URL by removing the #. ICS does not validate the URL for illegal content. Angus -
New OpenSSL releases 3.0.3 and 1.1.1o
Angus Robertson posted a topic in ICS - Internet Component Suite
OpenSSL has released new versions of the two supported branches, 3.0.3 and 1.1.1o, Windows binaries are available from http://wiki.overbyte.eu/wiki/index.php/ICS_Download or https://www.magsys.co.uk/delphi/magics.asp . OpenSSL 3.0.3 fixes a moderate security risk relating to the OCSP_basic_verify function but using an option ICS does not use, a low risk problem with an incorrect MAC key used in the RC4-MD5 cipher suite but which would never be used on modern connections, and a low risk problem with resource leakage when decoding certificates and keys and clients and servers configured to accept client certificate authentication, which might eventually run out of memory. Separately YuOpenSSL has released both these versions as commercial DCUs allowing applications to be used with OpenSSL without needing separate DLLs. Angus -
Using TBytes instead of string
Angus Robertson replied to EugeneK's topic in ICS - Internet Component Suite
ICS does make increasing use of TBytes internally, so adding an overloaded Send would make sense, a few days. You can always pass a code page to SendStr, that is another overload. Angus -
Delphi 2007/Win11 debugger
Angus Robertson replied to Angus Robertson's topic in Delphi IDE and APIs
I am still seeing those debug lines in my main web server application, but not in two other ICS sample web servers. But this is purely something I see under the Windows 11 debugger, the server itself on two Windows Server 2018s is handling tens of thousands of requests daily and one Windows Server 2022. My other Windows 11 DNS problem turned out to be no gateway on one of the two network adapters. Angus -
HTML Parser alternative to MSHTML?
Angus Robertson replied to Darian Miller's topic in Delphi Third-Party
ICS includes an updated version of THTMLParser from Dennis Spreen 20 years ago, very simple, just works. https://svn.overbyte.be/svn/ics/trunk/Source/OverbyteIcsHtmlPars.pas Angus -
Oulook.com header to field...
Angus Robertson replied to Mark-'s topic in ICS - Internet Component Suite
RcptName name is used for the SMTP protocol, HdrTo is used to build the message header, and it is normal for that to have friendly name and email address. The component does not add them together, although some SMTP forwarders and POP3 servers may do so. RcptName is sometimes added by servers as X-To: header or similar. Angus -
THttpAppSrv - Add*Handler for PUT and DELETE
Angus Robertson replied to omnibrain's topic in ICS - Internet Component Suite
I don't test OverbyteIcsDDWebService for each new release because it has dependencies outside ICS, but it is next on my list to add support for OCSP, next week as well. Angus