Jump to content

Angus Robertson

Members
  • Content Count

    2063
  • Joined

  • Last visited

  • Days Won

    38

Everything posted by Angus Robertson

  1. Angus Robertson

    CDATA CSV Component

    I wrote the CSV component 20 years ago before TStringlist got more fancy. Angus
  2. Angus Robertson

    CDATA CSV Component

    TStringlist has DelimitedText and CommaText properties that works for many CSV files, free and one line of code. However it treats spaces as a delimiter, so I use a minor variant that also always writes delimiters. Angus
  3. Does seem strange the code eats errors on OnDataAvailable silently while some other events do raise an exception. I've updated my version to trigger a background exception, but this change is not absolutely backward compatible, applications that don't have OnBgException assigned will now shut down with an exception window, rather than perhaps continuing to ignore the error, maybe good, maybe bad. This won't go into SVN for a few days, until I've rebuilt and tested all my applications. Angus
  4. Angus Robertson

    UDP multicast issues

    If multicast needs to listen on multiple UDP ports and/or addresses, just create an array of TWSocket components with different IP addresses/ports for each, sharing the same event handlers. For TCP we already have TMultiListenWSocketServer which is the same as TWSocketServer so web servers listen on lots of ports and IPv4 and IPv6 at the same time. Angus
  5. Angus Robertson

    UDP multicast issues

    There are two names for contributors that worked on multicast in the release notes, but they were almost 20 years ago. Angus
  6. Angus Robertson

    SSL certificate for VCL Application Exe

    I just use a simple batch file: cd C:\Program Files (x86)\Windows Kits\10\bin\x86 signtool sign /p "password" /f "c:\certificates\magenta-systems-certkey.pfx" /d "WebApp Server - Telecom" /fd sha1 /t http://timestamp.verisign.com/scripts/timstamp.dll "d:\webapps\webapp_telecom.exe" signtool sign /p "password" /f "c:\certificates\magenta-systems-certkey.pfx" /d "WebApp Server - Telecom" /as /fd sha256 /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp "d:\webapps\webapp_telecom.exe" signtool verify /all /pa d:\webapps\webapp_telecom.exe This assumes you can buy a code signing certificate as a file, some authorities only sell them on dongles when you need a slightly different command line and you may find Windows demands a password each time you sign a file, so not very automated. EV certificates are only needed for kernel drivers. If you start your order at https://msdn.microsoft.com/windows/hardware/drivers/dashboard/get-a-code-signing-certificate you will find most authorities offer substantially cheaper prices than their web sites, Digicert sells EV for $104 a year, non-EV for $74. Angus
  7. Angus Robertson

    UDP multicast issues

    Sorry can not really help any further, I think my last UDP project was just broadcasting not multicasting. I would test keeping things simple, ignore multicast completely, just a simple UDP listener and see what happens. Your can use the OverbyteIcsIpStmLogTst sample to send normal UDP packets to make sure your server is receiving something, then look into why multicast is not working. Angus
  8. TIcsFtpMulti uses TSslFtpClient, look at the log of commands it uses to see what it is doing that you missed in your application. Sorry, wrote it over 10 years ago although only recently added to ICS, can not remember the tricks it uses. If you want to keep it simple, FtpDownOneFile and FtpUpOneFile just do one file without any indexing. Angus
  9. Angus Robertson

    UDP multicast issues

    TWSocketServer is only for TCP, not UDP which does not have a concept of clients or connections. Change it to TWSocket. Not used multi casting for many years, but suspect that MultiCastAddrStr is for sending stuff, not receiving it. V8.60 added a new component TIcsIpStrmLog with a sample OverbyteIcsIpStmLogTst.dpr which has a logprotUdpServer mode that allows you to create a server with little code handling receiving data for you. Angus
  10. Try using the new sample OverbyteIcsXferTst.dpr added in V8.60, it uses the new TIcsFtpMulti component that hides most of the FTP protocol from you, just allowing you to download or upload multiple files. Angus
  11. Make sure you are using passive mode, necessary for SSL. I transfer hundreds of files a day using SSL FTP between my office and hosted servers, ICS tools at both ends. Angus
  12. Angus Robertson

    Using proxy persistent connection disconnected

    You also need to set the DebugLevel property to the level of logging required from THttpDebugLevel, DebugHdr in this case to get all the headers. Most applications don'r need a high level of logging. Angus
  13. Angus Robertson

    Using proxy persistent connection disconnected

    401 error is usually authentication failure, but since no proper headers are posted in this thread we can not comment on what authentication is being attempted. Perhaps the server is sufficiently clever to realise the requests have been intercepted and perhaps corrupted by a proxy, thus 401. The newish TSslHttpRest component has header and response logging built-in, and can be used instead of TSslHttpCli, just add the OnHttpRestProg event. Angus
  14. Angus Robertson

    Compiler errors C++ X509Certs

    Sorry, don't do C++. But I'm told by others the packages build OK with C++ 10.3, unless I've broken something recently. V8.62, not finished yet, has SSLX509Certs improvements including the new Acme SSL challenge. Angus
  15. Angus Robertson

    Using proxy persistent connection disconnected

    When the connection works fine bypassing the proxy, why do you think it's an ICS issue? What do you think ICS is doing differently or incorrectly for a proxy connection? Have you compared the headers IC S sends for proxy/non proxy? Sorry, don't have time this month to study extracts from dumps. Angus
  16. Angus Robertson

    Using proxy persistent connection disconnected

    Which component are you using? What sort of proxy settings in that component? Is this SSL or non-SSL? Have you asked for persistent connections? No idea where those screen dumps come from, but they are not useful for diagnostics without a lot more explanation. Angus
  17. Angus Robertson

    sspi error with TWSocket

    Define UseNTLMAuthentication is in OverbyteIcsHttpProt.pas. Angus
  18. Angus Robertson

    sspi error with TWSocket

    The SSPI stuff is only needed for NTLM authentication which the define UseNTLMAuthentication controls, so perhaps you had that disabled last time. Angus
  19. Angus Robertson

    sspi error with TWSocket

    From the OverbyteIcsSspi.pas unit: **If you compile with BCB personality define SECURITY_WIN32 in the project options** Angus
  20. Angus Robertson

    wsock32 and ws2_32

    Windows applications are dependent on dozens of DLLs. We don't change stuff that works unless new functionality is needed or newer versions of Windows make something obsolete, which is fortunately very, very rare. But we have to change OpenSSL every couple of years because it's evolving with new standards and older versions are no longer supported. Angus
  21. Angus Robertson

    wsock32 and ws2_32

    Why do you ask, what is your actual problem? The low level stuff has not changed in many years, it just works. Angus
  22. Angus Robertson

    Mustangpeak UltraExplorer

    This all came from the Mustangpeak SVN at svn://www.soft-gems.net/mustangpeak eight years ago, but that is all gone now. Dual license: // The contents of this file are subject to the Mozilla Public License // Version 1.1 (the "License"); you maynot use this file except in compliance // with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ // // Alternatively, you may redistribute this library, use and/or modify it under the terms of the // GNU Lesser General Public License as published by the Free Software Foundation; // either version 2.1 of the License, or (at your option) any later version. // You may obtain a copy of the LGPL at http://www.gnu.org/copyleft/. I don't really understand git, would be easier to upload all the Mustangpeak projects to my own public SVN server. Angus
  23. Six new zips for Win32 and Win64 versions of OpenSSL 1.1.1c, 1.1.0k and 1.0.2s can now be downloadable from the Wiki at: http://wiki.overbyte.eu/wiki/index.php/ICS_Download or https://www.magsys.co.uk/delphi/magics.asp . The DLLs are also included in the ICS distribution SVN and overnight zip. These releases are the six monthly updates of minor bug fixes, with no major security improvements. ICS applications require V8.57 or later to support OpenSSL 1.1.1c. Changes in 1.1.1c may be found at https://www.openssl.org/news/openssl-1.1.1-notes.html , 1.1.0k may be found at https://www.openssl.org/news/openssl-1.1.0-notes.html and 1.0.2s at https://www.openssl.org/news/openssl-1.0.2-notes.html Angus
  24. Angus Robertson

    TCP Receiving Binary File

    > Now I'm at the step to improve the speed for the data transfer. I have tried to increase the ESP32 buffer size The ESP32 microcontroller is a small, very cheap device not designed for speed (it's used in mains smart plugs controlled by Alexa). From an ICS perspective do not mess with MTU or TCP settings, just make sure you have a static receive buffer of 64K or something from which you write to a file in chunks of that size. Memory files are not always a good idea, since they may come from paged memory. > I'm now wondering how to work at the BinCliDemo to receive the two clients simultaneously. Most ICS servers derive from TWSocketServer, where you put all your code into a client class and can handle hundreds of clients on the same port. If you really want clients on different ports, generally you need one server per port, although TWSocketServer will also listen on multiple ports such as 80 and 443 for HTTP and HTTPS. Look at the OverbyteIcsTcpSrvIPv6 sample which is the multi-client binary file transfer version that will work with your client. Angus
  25. Angus Robertson

    Missing TWSocketThrdServer

    Sorry the limit of our FMX support is ensuring the components build and install as FMX libraries, and even that takes a lot of my precious unpaid time. The FMX samples have not been updated for several years. I personally only use VCL so am unable to devote any more time to FMX support, The developer that did all the cross platform and FMX work passed some years ago, and no-one has replaced him. Angus
×