Jump to content

Angus Robertson

Members
  • Content Count

    1699
  • Joined

  • Last visited

  • Days Won

    32

Everything posted by Angus Robertson

  1. Angus Robertson

    System.Net.Sockets

    I only work with Delphi and Windows platforms, any support for C++ or other platforms in ICS is dependent on other developers, and such contributions are very rare. C++ support will cease unless someone comes forward to take responsibility for it. I have no commercial need for mobile platforms, and my own requirements are the driving force behind my contributions to ICS over the last 20 years. Angus
  2. Angus Robertson

    System.Net.Sockets

    ICS does not support any mobile platforms, only Mac OS-X now and Linux Ubuntu with the next major release next year. Angus
  3. Angus Robertson

    Strange debug output

    The debug output I see daily with internet applications and Windows 11 is: onecore\net\netprofiles\service\src\nsp\dll\namespaceserviceprovider.cpp(550)\nlansp_c.dll! 708884C8: (caller: 76C0E326) LogHr(10) tid(4f74) 8007277C No such service is known. The service cannot be found in the specified name space. Guess Microsoft does not run it's own applications under a debugger. Angus
  4. Angus Robertson

    TSocket.Send result

    If the connection is closed prematurely, you have no idea how much data the remote client successfully read. So your high level protocol needs some method of confirming how much data was received and what to send. The FTP and HTTP protocols allow such thing, in different ways. A few months ago, I was debugging the ICS FTP client and server handling resumed transfers of 50GB files over the public internet, which was fun. They always worked on a LAN, but the FTP control connection was being closed by some horrible router somewhere after an hour or two of inactivity. But it alll works now. Angus
  5. Angus Robertson

    Use of TX509Base.SaveToFile()

    Sorry, no more suggestions, there is no reason to get all those OpenSSL errors. Can PemTool open existing P12/PFX files with a password? My PemTool built last week with Delphi 2007 works fine. I'll test PemTool on Delphi 7, but it won't be for a couple of weeks until I do the final new release. Angus
  6. Angus Robertson

    Use of TX509Base.SaveToFile()

    Do you actually have legacy.dll in the same directory as the other OpenSSL DLLs? PemTool About should say: SSL Version: OpenSSL 3.1.1 30 May 2023 Dir: C:\DelphiComp\ics\Samples\Delphi\SslInternet\libcrypto-3.dll Legacy Provider Loaded OK Compiler: Delphi 11.3 Win32 Angus
  7. Angus Robertson

    Use of TX509Base.SaveToFile()

    Before I spend any time looking at this, can you reproduce it using PemTools. I know this all works since all my Let's Encrypt p12 files use 3DES so they can be loaded by old versions of Windows, in the SslX509Certs unit: { V8.67 is 3DES available, prefer that so older versions of Windows will load our PFX file } if (ICS_OPENSSL_VERSION_MAJOR < 3) or ICS_OSSL3_LOADED_LEGACY then P12KeyCipher := PrivKeyEncTripleDES Angus
  8. Angus Robertson

    Digest Authentication in THttpCli

    Sure some versions of Delphi have SHA-256, but the current version of ICS has to work back to Delphi 7, so rarely do we use new language features. I've fixed the original problem with OpenSSL not being loaded, it was for some hash functions, but not all. Angus
  9. Angus Robertson

    TSocket.Send result

    Not looked at the code, but such a change could mean data being sent twice, since it's already in the transmit buffer and will get sent the next time TryToSend is called. We avoid low level changes unless there is a very good reason. Angus
  10. You need to set GSSLEAY_LOAD_LEGACY := True in formcreate so OpenSSL loads the legacy provider that has obsolete cryptography that old versions of Windows still require. Making those PKCS12 functions backward and forward compatible was a nightmare. Angus
  11. Angus Robertson

    TsslHttpCli & TLS 1.x

    All the SSL demos illustrate this, it is reported in the Handshake event. You should be using TSslHttpRest when it is logged automatically. Angus
  12. Angus Robertson

    Bug in OverbyteIcsFileCopy (D7)

    Fixed back in February, in SVN. Angus
  13. Angus Robertson

    Digest Authentication in THttpCli

    Because ICS does not have a native SHA-256 implementation, it now uses OpenSSL for digest operation. But there is no check in those digest functions to ensure OpenSSL is loaded, I'll add a new specific exception for that. To fix the problem, you just need to call LoadSsl or IcsLoadSsl before using the component and make sure the DLLs are available. Angus
  14. Angus Robertson

    OverbyteIcsLIBEAY : EAccessViolation

    Far too little useful information to make any proper comment. Angus
  15. Angus Robertson

    ICS under Delphi7

    Looking at the code, this D7 bug was fixed back in February and has been in SVN since then, but I will test it again soon. Angus
  16. Angus Robertson

    SvCom - Services 64bit on Delphi 11.3

    The main advantage of SvCom was being able to create dual GUI/service applications, so you can run your service in the IDE under the debugger, often with a few VCL controls, and also install it as a service and run it in the background. One of my applications runs as both a service and GUI at the same time, depending on how the client configures it, with the two instances communicating, so the GUI shows everything the service is doing, it has a very complex GUI. DDService can be used similarly, but is less forgiving about the controls and the service will not start when certain third party controls are used. Debugging an application using TService, etc means a lot of logging or generally have a GUI test application to debug the main code. Angus
  17. Angus Robertson

    SvCom - Services 64bit on Delphi 11.3

    Sorry, can not tell you that, I never bought a copy of SvCom that would run on modern compilers, no idea if they still issue updates for new compilers. It was a good product in it's time, but despite coming with source code it still had some licensing magic that might never be updated for new compilers, so risky long term. Angus
  18. Angus Robertson

    SvCom - Services 64bit on Delphi 11.3

    SVCom is better than DDService in it's support for interactive applications with lots of VCL components. DDService fails to start if the form contains some third party components, but seems mostly fine with simple components, memo, edits, buttons, etc. So there is come magic going on in the modified forms unit that SVCom uses. But I was always concerned about long term support for new compilers, since SvCom has obscure licensing checks which is why I've been updating and supporting DDService for several years and now use it for all my server applications. Angus
  19. Angus Robertson

    No timeout in THttpCli?

    In order to provide a timeout for async methods, the component would need to include a timer, using an extra handle and resources. When you have 100 components running in parallel, that is very inefficient, thus the design where the application is responsible for timing out unresponsive components. Some server components do include a timer for that purpose, but rarely do applications need more than one server component. Angus
  20. Angus Robertson

    No timeout in THttpCli?

    Correct, as designed, there is no timeout if you use the async methods, only sync. In my applications that use multiple components in parallel with async methods, and in the ICS servers, I use a single timer that loops through all active connections checking duration and cancels any taking too long. If you are using threads, you must have something in the Execute method looping waiting for an async result, so use a tick counter there. Angus
  21. Angus Robertson

    No timeout in THttpCli?

    The timeout property is for synchronous methods, wait x seconds for a reply, perhaps you are using async methods? ICS is mostly used async, so hundreds of parallel requests can be made without needing threads. The only issue will be DNS look-ups which are effectively blocking. Angus
  22. Angus Robertson

    ICS under Delphi7

    Delphi 7 will get tested for the next ICS release which is running a month late, no point in testing until all the changes are complete and the packages updated, soon. Angus
  23. Angus Robertson

    Using TX509Certificate

    ICS has always had functions to read certificates from the Windows Certificate Store. They have been significantly improved in the last year to import and export certificates and private keys into TX509Base so they can be used by other ICS objects. More changes are due next week, once I've finished another new component. Angus
  24. Angus Robertson

    Using TX509Certificate

    TX509Certificate is part of Delphi DBX Framework, but most properties are documented as 'Virtual abstract method to be implemented in child classes' and the unit has exactly one line of code for the object. So effectively it's useless. You'll need to use a third party solution, like the one I mentioned. Angus
  25. Angus Robertson

    Using TX509Certificate

    I see at least two different companies have components called TX509Certificate, maybe more. So which are you using and have you looked at it's documentation? ICS has TX509Base that has methods to load certificates from various file types or text, and report them in various ways. Angus
×