Jump to content

Angus Robertson

Members
  • Content Count

    1625
  • Joined

  • Last visited

  • Days Won

    30

Angus Robertson last won the day on February 27

Angus Robertson had the most liked content!

Community Reputation

508 Excellent

4 Followers

About Angus Robertson

  • Birthday December 16

Technical Information

  • Delphi-Version
    Delphi 11 Alexandria

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Angus Robertson

    ICS V9.1 announced

    There is a clever improvement in the GetIt ICS installation process, thanks Embarcadero. After the packages have been built and installed, the ICS demos-delphi-vcl project group opens in the IDE, allowing all the samples to be viewed and built, recommend saving the group as a favourite so it can be easily found. The group opens with the OverbyteIcsSnippets project, that provides one button examples of HTTP and FTP multiple file downloading and uploading, HTTP REST requests, Websocket client, TCP socket traffic, and sending email using Mail Queue. Angus
  2. Angus Robertson

    ICS V9.1 announced

    ICS V9.1 is now available to install from GetIt for Delphi 11 and 12, either VCL only or VCL and FMX. Start with the samples at C:\Users\(user)\Documents\Embarcadero\Studio\23.0\CatalogRepository\ Angus
  3. Angus Robertson

    ICS V9.1 announced

    Thanks, if you retain your old Defs file, ICS should behave as before, although I changed all the samples and my own applications so not sure when I last tested that... Angus
  4. The TIcsMailQueue component is designed for exactly your requirement, you queue an HTML identically to your existing code, call the QueueMail method, and then let the component worry about delivering the email, in the background. You can queue hundreds of emails. Before queuing anything, you setup one or more SMTP servers, the background thread will then attempt to send queued emails to each of those servers multiple times over many hours until it is sent successfully, remove it from the queue and delete or archive the email. The sample has a window you can steal that shows queued emails, when they will be next attempted, and allows them to be deleted if never going to get delivered. Angus
  5. Angus Robertson

    AUTH TLS fails every time!

    FileZilla Client has very poor certificate validation, it should check the certificate chain and accept it, instead it presents that horrible window. Does the same with my own FTP server. Angus
  6. Angus Robertson

    AUTH TLS fails every time!

    You will find the OverbyteIcsXferTst sample easier to use, I was using the TIcsFtpMulti component for my tests. There is really nothing you can do for these errors, it's down to the server, firewalls and configuration. They need to tell you why connections fail. Or does the server work with FileZilla Client, perhaps there is something clever going on. Angus
  7. Angus Robertson

    AUTH TLS fails every time!

    I've reproduced a 425 FTP error after updating my FileZilla server to the latest on one of my public servers, and updating the Windows Firewall rules which FileZilla ignores (I have Delphi firewall functions that my servers use). I can access FileZilla fine from the public server, but not remotely, although my error is slightly different: 425 Unable to build data connection: EINVAL - Invalid argument passed So this is all done to firewall port ranges, not sure yet if Windows Firewall or the external pfSense firewall, need to investigate. Is your FileZilla server behind a firewall. Update: FileZilla is complaining: [Error] Data peer IP [217.146.115.82] differs from control peer IP [217.146.115.84]: this shouldn't happen, aborting the data connection. I have multiple outgoing IP addresses, and it does not like this. Update 2: After adding a router rule, I've got past the IP address error and the data connection now works. You really need the FileZilla log message for the 425 error to understand it. > PASV < 227 Entering Passive Mode (217,146,102,143,82,34) ! Passive connection requested to: 217.146.102.143:21026, control channel: 217.146.102.143 > MLSD < 150 About to start data transfer. ! SSL Connected OK with TLSv1.3, cipher TLS_AES_256_GCM_SHA384, encryption AESGCM(256), message auth AEAD Connected OK Again < 226 Operation successful ! Data Session closed ! Local File Stream Closed ! 245bytes received/sent in 31 milliseconds Angus
  8. Angus Robertson

    ICS V9.1 announced

    ICS V9.1 has been released at: https://wiki.overbyte.eu/wiki/index.php/ICS_Download ICS is a free internet component library for Delphi 7, 2006 to 2010, XE to XE8, 10, 10.1, 10.2, 10.3, 10.4, 11 and 12 and C++ Builder 10.4, 11 and 12. ICS supports VCL and FMX, Win32, Win64 and MacOS 32-bit targets. Beware Mac OS-X and C++ have not been tested recently due to lack of support from such users. The distribution zip includes the latest OpenSSL 3.0.13. 3.1.5 and 3.2.1, for Win32 and Win64. The highlights of V9.1 were posted in this topic two weeks ago, and are included in the download page. The full release notes for V9.1 are at https://wiki.overbyte.eu/wiki/index.php/ICS_V9.1 There is also a new page https://wiki.overbyte.eu/wiki/index.php/Updating_projects_to_V9.1 to help with migrating existing projects. The main ICS readme9.txt has the installation section rewritten to explain the new common groups and packages used for Delphi 10.4 and later, so you won't find any dedicated ICS packages for Delphi 11 or 12. The readme now also explains all defines in the .\Source\Include\OverbyteIcsDefs.inc file that control how OpenSSL is loaded. All ICS active samples are available as prebuilt executables, to allow ease of testing without needing to install ICS and build them all. There are four separate zip files split into clients, servers, tools and miscellaneous samples which can be downloaded from https://wiki.overbyte.eu/wiki/index.php/ICS_Samples Angus
  9. Angus Robertson

    AUTH TLS fails every time!

    The 425 error from the server suggests it does not like the SSL/TLS connection, and yet we think it was okay, and it accepted the AUTH connection earlier. Nothing wrong with the commands being sent. SSL/TLS can be strange like that. BTW, I updated that old compiled demo today with a new version, although unlikely to behave any differently. Angus
  10. Angus Robertson

    AUTH TLS fails every time!

    So now you are using a recent ICS version with OpenSSL 3, since you are connecting with TLSv1.3? But you are probably using the old TSslFtpClient low level component that requires you to send to the correct FTP command in the correct order. As the error message suggests, you have not sent the PROT command with Protlevel=P. If you use the TIcsFtpMulti high level component instead, this is all done for you, see the sample OverbyteIcsXferTst. Or if you want a simpler sample, build OverbyteIcsSnippets and click the FTP Download One File button, the code is in a single function. Angus
  11. Angus Robertson

    AUTH TLS fails every time!

    ICS V9.,1 does not support old versions of OpenSSL and will never attempt to open them, I assume you've modified the source code in an attempt to do so. Did you attempt to connect to our server with your original application that failed with Filezillar server? Angus
  12. It is much easier and safer to use the TIcsMailQueue component, so email is sent even if the mail server is not immediately available. Look at the OverbyteIcsMailQuTst sample, or one of the server samples like OverbyteIcsSslMultiWebServ that also use mailqueue to call home when in trouble, Angus
  13. Angus Robertson

    How to convert JWK to PEM format in Delphi?

    Look at the OverbyteIcsJoseTst sample which has a button that decodes your JWK using the function I mentioned, and displays it raw, while the OverbyteIcsPemTools sample does certificate and key conversions. ICS V9.1 has a new TX509Base method X509PubKeyTB that returns the public key in DER that can be used to compare with another public key or converted to Base64 which is PEM. Angus
  14. Angus Robertson

    How to convert JWK to PEM format in Delphi?

    ICS has various Jose and PEM functions that will read and create Json Web Keys. IcsJoseJWKGetPKey reads the Json text and saves the key as type TX509Base. TX509Base has methods to save certificates, private and public keys in numerous formats. What do you want to do with the public key? This may be better discussed in the ICS support forum . Angus
  15. Angus Robertson

    Comport issue

    If you are attempting to locate COM ports on Windows, I suggest you use the Magenta Serial Port Detection Component from https://www.magsys.co.uk/delphi/maghardware.asp It has an event that triggers as ports arrive and disappear. It returns an array with information about each port, and whether enabled or hidden: COM1, Enabled=Y, Communications Port (COM1), (Standard port types), Serial0, ACPI\VEN_PNP&DEV_0501, COM2, Enabled=Y, PCIe to High Speed Serial Port (COM2), ASIX Electronics Corporation, StnSerial0, MCS9950MF\STN_CASCADE_COM, COM3, Enabled=Y, PCIe to High Speed Serial Port (COM3), ASIX Electronics Corporation, StnSerial1, MCS9950MF\STN_CASCADE_COM, COM4, Enabled=Y, Prolific USB-to-Serial Comm Port (COM4), Prolific, ProlificSerial0, USB\VID_067B&PID_2303&REV_0400, Port_#0004.Hub_#0007 COM5, Enabled=Y, Prolific USB-to-Serial Comm Port (COM5), Prolific, ProlificSerial1, USB\VID_067B&PID_2303&REV_0400, Port_#0001.Hub_#0007 COM6, Enabled=Y, Conexant USB CX93010 ACF Modem, Conexant, USBSER000, USB\VID_0572&PID_1329&REV_0100, Port_#0007.Hub_#0001 COM7, Enabled=Y, USB Serial Device (COM7), Microsoft, USBSER000, USB\VID_1546&PID_01A8&REV_0201, Port_#0002.Hub_#0007 Angus
×