Jump to content

Angus Robertson

Members
  • Content Count

    1681
  • Joined

  • Last visited

  • Days Won

    32

Everything posted by Angus Robertson

  1. I have an old application with several TNextGrid and numerous related Column components, I'm trying to update to Delphi 12 from D11. It seems TNextGrid v5 does not have any packages for D12, and has been superseded by v6 which has all new component types and unit names. The FAQ says v6 is 'not delete & replace compatible' but gives no hints as to how to update projects from v5 to v6. I've tried manually updating type names, but get lots of form errors and a stream error so no form. So I either have to create 24 D12 packages for v5, or manually try and rebuild all my grid columns in the IDE with all their values, drop downs, etc, very tedious. Is there a migration tool from v5 to v6 or upgrade instructions? Angus
  2. Angus Robertson

    Local GetIt Package

    It seems Delphi 11 added a new GetIt feature I missed, 'Local GetIt Packag'e, I can not find it mentioned in these forums. https://docwiki.embarcadero.com/RADStudio/Alexandria/en/GetIt_Local_Files_Guide_Index Package developers can create a Json file that is selected from Local GetIt Package at the bottom of the GetIt window, and which then installs packages as if they were downloaded from GetIt. This could simplify installs since paths can be added automatically, lots of other commands to avoid manual intervention and instructions. Has anyone tried it? Angus
  3. Any other ICS MacOS users able to help here? Angus
  4. All I can suggest is trying an older ICS version, if I've broken something in recent versions. Like https://wiki.overbyte.eu/arch/icsv868.zip There is a new Linux version V10 in SVN, but no SSL and only simple sockets at the moment, not tested on MacOS but it's uses a Delphi message pump which I assume works on MacOS, that version will be the long term cross platform version. But MacOS will only be supported if contributors help, we can not test it, no Apple hardware. Angus
  5. Angus Robertson

    Getit install of ICS failing in Delphi 12.1

    I've asked if GetIt installs can be improved to remove the old named packages, but this was a one-off with the change in package names. Angus
  6. Thanks, so almost certainly the Posix/MacOS messaging stuff. Another user did make some minor changes to the Ics.Posix.PXMessages unit in preparation for Linux support, you could try reverting to the V9.0 version of that unit in case it got broken. Angus
  7. Sorry, that error could be the result of dozens of issues, you need to know that messages are being processed correctly first, without a message pump ICS simply does not work, and that is the main difference between Windows and MacOS. Try accessing the same site using a Windows sample, to see if the problem is unrelated to MacOS. Angus
  8. I can fix the OpenSSL issues, however the GlobalSync functions are part of the Posix message handling unit which is MacOS only, so I can not debug it. It was written many years ago and may need updating for newer MacOS versions. Other users have had the MacOS version of ICS working in recent years, and I do add changes they suggest. But not heard from MacOS users in a couple of years. Angus
  9. Angus Robertson

    Getit install of ICS failing in Delphi 12.1

    You have ICS V9,0 installed as well, it has different package names as shown in the screen shot, with D12 in the name. So remove the old ICS V9.0 packages first before installing V9,1. This is mentioned in the readme9, but you won't have seen that with GetIt. This applies to all upgrade installs of ICS V9.1 on Delphi 10.4, 11 and 12, that now use the same packages. Angus
  10. The OpenSSL DLLs we supply still contain deprecated entries since older applications may use them. But loading entries is table driven by version, so adding a literal to the table will stop it for v3. Was it just one missing entry, or many? Angus
  11. Angus Robertson

    Delphi 12.1 is available

    I had that recently when reinstalling D12 in a test VM, the Windows uninstaller system thinks the old version is still installed, and the installer does not check if unins000.exe actually exists, look for this registry entry and remove all the keys: This key is for Delphi 12, other versions will have different keys but searching for Embarcadero will find them. HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall{3CDF0089-74E4-454C-8A6C-BEE7ADFEF600}_is1 Angus
  12. RAND_screen is one of hundreds of entries loaded, it's been in OpenSSL for ever, but not actually used by ICS (I believe). If the files loaded are incorrect, there is usually a much longer list of missing entries. Angus
  13. Sorry, there is no official MacOS support for ICS, has not been for 10 years. If someone fixes it, I'll update it for the next release. Angus
  14. Angus Robertson

    Delphi 12.1 is available

    The D12.1 ISO I downloaded is 7.23GB. There is a typo on the download page, Angus
  15. I've not seen this problem in snippets, but don't often test the samples with Win64. I have seen it on a Win64 web server running on Windows Server 2018, discussed in this forum a few months ago, but the same Win64 web server runs fine on two others Windows Server 2022 and Windows 11. So there is a lurking Win64 problem somewhere, not convinced it's in ICS, could be OpenSSL or Delphi. Not easy to debug when it only fails on a heavily used live server, That particular web server is now built as Win32 due to the crashes, but a very similar API web server is still Win64 and never fails. Not had a web server crash for over two months. But if the error is reproducible in snippets, that will be easier to test. But not this week... Angus
  16. Sorry, not looking at complex ICS bugs for a while, catching up on other stuff. Angus
  17. Angus Robertson

    Send Mail synchron via ICS

    Please read my comments about using the TIcsMailQueue component in a topic in this conference two weeks ago about sending HTML mail. Angus
  18. Thanks, on my list to investigate, might be a couple of weeks. Angus
  19. Basic Authentication has always worked with GET, my own websites have used it for over 15 years, hundreds of logins each day. If you can reproduce a problem using the multi web server sample, with logs, I'll look into it. Angus
  20. Angus Robertson

    ? in URLs results in HTTP 400

    Technically, https://test.com?test is an invalid URL, since there is no path included in the URL, Without the query parameter, ICS would add path / automatically, so probably should do so for the query parameter as well, that is what my Firefox browser seems to do. Will fix it next week. If you want to do it yourself, in THttpCli.DoRequestAsync change: if FPath = '' then FPath := '/'; to if Pos('/', FPath) <> 1 then FPath := '/' + FPath; Angus
  21. Angus Robertson

    Find computer with port 3306 open on LAN

    As François says, you need to open that port using TWSocket, but it might take a long is you have to try 65,000 IP addresses. Build the OverbyteIcsNetTools sample, click the LAN Devices tab, then Start, That uses the IcsNeighbDevices component to build a historic LAN neighbourhood MAC device and IP address table includes ARP and IP range scanning, and reverse host lookup, shows MAC vendor name to help identify devices. Runs in a thread continually checking for new devices. The OverbyteIcsPemTools sample has a Test Host Certificates function that uses the TIcsIpStrmLog to connect to a long list of hosts, that could be adapted to ignore the SSL stuff and just open a port for your IP address list. Angus
  22. Angus Robertson

    Having trouble with OnRestRequestDone

    Async components are certainly better for servers and applications making parallel requests, but sync are easier to write not needing to keep track of state, and where only one request is made at a time. The main issue here is knowing when RequestDone is called, what published component properties need to be checked and for what, and what other requests need to be made, a sync request hides all that from you so is easier to use. Your original use of the async component was actually sync since you had a wait loop afterwards, which is exactly how the sync component works, Angus
  23. Angus Robertson

    ICS V9.1 announced

    The OpenSSL_ProgramData define is ignored if OpenSSL resource files are linked, it's an alternative option. You can not use OpenSSL_AutoLoad_CA_Bundle if you want to change where OpenSSL is loaded, it's too late to change anything in code. You can set GSSL_PUBLIC_DIR to your own directory before OpenSSL is loaded (instead of c:\programdata) but sub-directorties will still be created in your new directory, each OpenSSL release needs a unique directory. Note I've not tested this! Use of the existing GSSL_SignTest_Check public variable is unchanged, if set true before loading OpenSSL, ICS checks the DLLs are digitally signed, which includes corruption checks. It does not check the signing certificate at the moment, too much extra code. This does not work yet for OpenSSL_AutoLoad_CA_Bundle, too late, need to think about that. Angus
  24. Angus Robertson

    Having trouble with OnRestRequestDone

    Although the snippets sample was added after your release, you should be able to built it with V8.70 after removing some new units added with later releases. Or you download a compiled version of snippets and httpresttst from https://wiki.overbyte.eu/arch/icsdemos-clients.zip to test them. As I said, for sync mode you don't RequestDone event, just check the status code returned by the RestRequest method, the error code in the event is irrelevant. The one event you should use is OnHttpRestProg and set DebugLevel := DebugHdr, that is the logging event that shows exactly what the component is doing with commands, hesders and error messages, you will see that running either of the samples I mentioned. Angus
  25. Angus Robertson

    ICS V9.1 announced

    Because you no longer need to distribute the DLLs separately, the increase EXE size should mostly cancel out. Or change the defs file and leave the DLLs alone, this change was really intended for new applications. I have tried to explain all this. You also don't need to distribute a root bundle file, but many people probably ignored that. https://wiki.overbyte.eu/wiki/index.php/Updating_projects_to_V9.1 Angus .
×