DelphiUdIT
Members-
Content Count
611 -
Joined
-
Last visited
-
Days Won
11
Everything posted by DelphiUdIT
-
What components were dropped ? I replaced totally Indy without any issue, restoring also the IDE functionalities. I think that DevEx (if it recompile the units) should no have issues. Edit: I tested quickly the old project that use the IdSmtp, IdTCP, IdFTP, IdHttp all with SSL and were no change on compilation. I don't use IdPop3.
-
I think @Remy Lebeau is working on repository branch of SASL-OAuth. UPDATE: I updated this repository in Rad Studio and TLS1_3 is working, an also the OAUTH2 is available on the component palette. Waiting for @Remy Lebeau news.
-
Why you don't use only the modified files along with yours projects (in a common repository for example) instead to porting all Indy environment ? I use Indy from a long time and I never saw a big changes. I used in the past ( very past ) to modify some IdAuto* protocols 'cause incompatibility with private Servers (MD5 bugged ... and stay bugged on their side). Bye
-
The source of those files (idoc and idispids) are under "source/internet" (from Rad Studio base dir). The date of the files of course are like the others, but internally they are generated on 1998 from typelib. I think they are related to Internet Explorer. I don't know why I have them and you don't. I have all the platforms installed (Rad Studio Enterprise edition). Play* are from android environment. If make a "del Id*" from batch file, only the "idoc and idispids" are interesting, from explorer all the others are presented. You can copy those files (idoc and idispids) to a backup place and restore after delete. Others way is to delete only a list of know files. Both methods, however, require monitoring of patches and environment updates.
-
@jesu You can open a ticket from support if you have a subscription.
-
... from previous post, instructions to restore all Indy functionality inside IDE. Go to Rad Studio installation directory (normally "C:\Program Files (x86)\Embarcadero\Studio\23.0"), in the "source" directory. Inside the "source" should be present 3 Indy folder: "indy", "Indy10" and "indyimpl". Indy10 is the real source of Indy like that in the GitHub. Instead, "indy" and "indyimpl" are the folders that contains the IDE functions implementations of Embarcadero. The path is protected, so copy these to folder (with the content of course) somewhere ... I copied them where are the new Indy source (look at https://en.delphipraxis.net/topic/6844-tls-v13/?do=findComment&comment=88750), changing the name of "indy" in "indyextra". EDIT: Forgot to insert the new path in the browsing property. You must insert the path of the new folders inside the browsing property of TOOLS/OPTIONS/LANGUAGE/DELPHI/LIBRARY of the IDE. If there are the originals, you must overwrite them. Of course that in the image are mine, you must set yours. Now you have to build some packages and install some of them. In the new "indyextra\implementation" build the packages present in this sequence: 1) IndyIPCommon.dpk; 2) IndyIPClient.dpk; 3) IndyIPServer.dpk ATTENTION: depends how you build the new Indy packages, you should change the name of the 3 requires packet (IndyCore, IndyProtocols, IndySystem) referred in the DPK source files. This is for every packages that you compile with Indy. After that go to "indyimpl" folder and BUILD and INSTALL the "dclIPIndyImpl.dpk". Now you have restored the original functionality inside the IDE ("FIREUI Live Preview" and " Embarcadero RAD Server Edge Components"), and you can install also the new packages that require those functions inside the IDE. BUT ONE MORE STEP NEED TO complete the work: you must change the Windows registry, because when you install the new Indy from github repo you have disabled permanently two Embarcadero packages. Pay attention to what you are doing with Windows registry. Open the registry with command prompt "regedit" and go to this section: "HKEY_CURRENT_USER\Software\Embarcadero\BDS\23.0\Disabled IDE Packages" Delete the key "$(BDS)\Bin\LivePreview290.bpl" Now go to next section "HKEY_CURRENT_USER\Software\Embarcadero\BDS\23.0\Disabled Packages" and delete the key "$(BDSBIN)\dclemsedge290.bpl" Now you can restart your IDE and you'll have the full functionality. Indy works like always, and if you want to use the "new" TLS1_3 you must do some coding (also mixed designtime / runtime). But this is another chapter ... Happy work.
-
The "Jedi Common Files" aka jedi.inc / kylix,inc are in the repository: https://github.com/project-jedi/jedi You must extract this two files in the 'jcl\source\include\jedi' directory.
-
Set dynamic array of records to nil: frees all content?
DelphiUdIT replied to alogrep's topic in VCL
Thanks, I really didn't know this. -
C++ Builder can work with Unreal Engine 5 ?
DelphiUdIT replied to William23668's topic in General Help
May be March 13th we will know 😉 -
Set dynamic array of records to nil: frees all content?
DelphiUdIT replied to alogrep's topic in VCL
The record generally doesn't need to be freed. The array should not to be freed setting a nil, you must use: EDIT1: MY FAULT, like @David Heffernan said in the next post setting a nil is right. EDIT: Of course only with dynamic arrays !!! SetLength(records, 0); Every single elements of the array must be released if necessary. In you case you must release ALL arrays inside the record structure: EDIT2: I FORGOT ALWAYS, AND ALSO THAT IS NOT NECESSARY LIKE @Remy Lebeau later explained. for var i := Low(records) to High(records) do begin SetLength(records[i].names, 0); SetLength(records[i].age, 0); end; Integral type and string doesn't need to be released in Delphi, this include all numerical type and string. All others types should be released before resizing the array. //Example var A: array of integer; B: array of string; C: array of TComponent; SetLength(A, 9); A[0] := 1; A[1] := 2; ..... // Do something with A[] SetLenght(A, 0); //OK, right SetLength(B, 9); B[0] := 'Ola'; B[1] := 'Bye'; ..... // Do something with B[] SetLength(B, 0); //OK, right SetLength(C, 9); C[0] := TEdit.Create(self); C[1] := TLabel.Create(self); ..... // Do something with C[] SetLength(C, 0); // NOOOOO, wrong SetLength(C, 9); C[0] := TEdit.Create(self); C[1] := TLabel.Create(self); //release every single element for var compo in C do begin if Assigned(compo) then FreeAndNil(compo); end; SetLength(C, 0); // OK, right -
Some parts of RadStudio still depends from Indy (and if you replaced the original version you lost them), like the others released in the past. And may be not sponsored, but Indy is referenced in the Embarcadero Wiki, and is released in full with the IDE.
-
I agree with you. But there are others product like Esegece or ICS for example that do that without Indy. Indy are a "historical value" and it is really simple to create whatever you want for communication over IP (IPv4 or IPv6). And it works in all the platforms. I don't think that Embarcadero will do something about that (I don't remember anything about TLS/SSL on the ROADMAP), but it is may thought.
-
Their sources are available too (you must pay of course). I don't know the product, but I don't think they replace the Indy library (I'm almost sure, 'cause if was like you said some functions of IDE should be lost). I think they use the source of Indy to construct their components, so they can insert what they needs, maintain the near compatibility with Indy ...for example they can modified the name of the units leaving the name of classes the same of Indy (I would do it like this).
-
Update on the use of the TLS1_3 protocol in Indy (NOT OFFICIAL FROM Indy Team). This is an indication coming from the undersigned, who has carried out exactly what is described and verified that there are no problems either with the IDE or with the existing projects by recompiling and executing them. Conditions: - Rad Studio Athens 12.0 patch 1 (or Delphi); - Dowloaded Last GitHub repository Indy source: https://github.com/IndySockets/Indy/archive/refs/tags/Indy-10.6.3.zip - Donwloaded PR299 (aka NewOpenSSL_PR x OpenSSL 1.1.1): https://github.com/mezen/Indy/archive/refs/heads/NewOpenSSL_PR.zip Now you need to uninstall Indy from Rad Studio IDE, components and binaries included. YOU DO NOT NEED TO DELETE THE ORIGINAL INDY SOURCES. This is the official link explaining how update Indy: https://github.com/IndySockets/Indy/wiki/Updating-Indy ATTENTION: Do not use THE AUTOMATIC PROCEDURE in the instructions indicated in the previous link. It deletes files that do not belong to the Indy environment. You have to do what is indicated by hand, but when you get to the REMOVE THE FILES procedure, stop!!!! Instead, perform these steps: 1) Using Windows Explorer, go to the RAD STUDIO installation BIN directory (normally "C:\Program Files (x86)\Embarcadero\Studio\23.0\bin") and delete the following files: Then go to the BIN64 directory and delete the following files: Now you need to go to the LIB directory and list all the ID* files of the subdirectories (use the pane at the top right of the explorer to search). I recommend listing the files by NAME. The list includes a series of files (more than 10000) that will need to be deleted, BUT FROM THIS LIST YOU MUST UNSELECT (i.e. THE FILES SHOULD NOT BE DELETED) the following files: - all files starting with "FMX", should be 16; - all files starting with "Vcl", should be 8; - all files starting with "play", should be 4; - the "idoc.dcu" files should be 4; - the "idispids.dcu" files should be 4; The procedure indicated in the link (Update Indy) would have deleted these last 8 files. Now that you have deleted the files you will need to open the IDE. Errors will be generated: - package "dclemsedge290.bpl" could not be loaded, ignore and select not to reload again. - the "livepreview290.bpl" package, ignore and select not to reload again. Other packages may give errors, this depends on the fact that you have components registered in the IDE and that use Indy. You can ignore them and allow them to be reloaded the next time you restart the IDE. If you want to do a clean job, you should go to TOOL/OPTIONS/LANGUAGE/DELPHI/LIBRARY and from the "Browsing Path" item you will have to eliminate the Indy references (Core, System and Protocol) IN ALL PRESENT PLATFORMS. Now Indy is no longer present in Delphi. If you followed my initial instructions you should have downloaded the two zip files indicated. Unzip the first one (Indy-10.6.3.zip) into a directory. This directory will be the one containing Indy and will be used for all your applications. Now from the second ZIP file (NewOpenSSL_PR.zip) EXTRACT ONLY the OPENSSL directory found in "Indy/Lib/Protocols" and add it to the directory you created in the previous step, always under Lib/Protocols (so at the end there will be a directory plus, Lib/Protocols/OpenSSL). You will now have Indy with TLS1_3 enabled and with usable OpenSSL 1.1.1 (and also partially OpenSSL 3.1.x). Continue with the "Build and Install" paragraph of the link indicated initially. After finishing, you need to add two paths to Delphi's LIBRARY PATH to follow the ones you entered as in the instructions: "Lib\Protocols\OpenSSL" "Lib\Protocols\OpenSSL\Dynamic" You will now need to recompile (and reinstall) all of your IDE components that use Indy and your projects. For now the TLS1_3 can only be configured in code (therefore in RUNTIME), not in DesignTime as the IDE components have not been updated. All your projects however will remain perfectly functional and will use the old TLS1_2 standard and the old OPENSSL 1.0.2 DLLs until you modify the source to include the new standard. It's late and I'm going to eat now... UPDATE A note for those who use Indy to develop 64 bit or mixed 32 bit and 64 bit (even if you already know this): after having compiled and installed the Indy components (therefore 32 bit), delete the dcu files from the directories (where you unzipped Indy). You can safely delete ALL *.dcu files. If you leave them, when you go to compile your 64 bit project it will give you an error because the "dcu" are 32 bit. By deleting the dcu, you will force the recompilation (in your project) of the Indy libraries. Also remember that in the options of your project a valid path is indicated in the "Unit output directory", this will allow the compiler to generate all the dcu of the project within that directory.
-
nothing ... already answered ...
-
LOL, I miss we are in a P4D section, sorry. I cannot help you , I never used Python4Delphi.
-
I don't know VTK, but I don't think that is a revolutionary approach to "surface" drawing. In the web nothing about Pascal, Delphi or FPC related is available. Surely it's needed a handle to a graphic window. And should be a function that assign this. Start from here. If there is something about "C" or "MFC" sample, will be available usefull info.
-
Apart from the fact that we are in the section: nothing else.
-
But he's asking about C++, doesn't he ?
-
AUTH TLS fails every time!
DelphiUdIT replied to Graphic Equaliser's topic in ICS - Internet Component Suite
I'm sorry, I miss SSL version ... But on 2008 (the packet that he indicate) OpenSSL in use was 0.98 ... only two years later OpenSSL 1.0.0 was published. And ICS surely (or not ???) didn't had TLS "implemented" with OpenSSL 0.98. So, may be that is working with old ICS and new OpenSSL but with SSLv3 protocol. But that is my thinking, for sure he should upgrade his environment. -
If you have the community edition, FastReport component is not available. Six years ago (2018) there was an edition of FastReport for CE, but now you must buy it. I never used PowerPdf.
-
AUTH TLS fails every time!
DelphiUdIT replied to Graphic Equaliser's topic in ICS - Internet Component Suite
@Graphic Equaliser You are using a too old SSL library. May be you are using 0.9.8 OpenSSL and those are the ciphers used: only the SSL_v3 is supported. You will not be able to connect to any site, 'cause your software should use TLS protocols (TLS1.3 or TLS1.2 should be the best). You must upgrade to a new ICS package. Try to use the Community Edition of C++ or the free command line compiler : https://www.embarcadero.com/free-tools/ccompiler -
Thanks very much. I knew that the source is not public available, but I was hoping the DLLs could be distributed.
-
Access point changes my device's MAC address
DelphiUdIT replied to ErikT's topic in Network, Cloud and Web
This is in Italian, you must go in "Settings/Networks an Internet", there is a "casual hardware address" setting ... if it is set I think that for every connection Windows generate a new MAC ...- 6 replies
-
- network
- access point
-
(and 1 more)
Tagged with:
-
I (can) have the OpenSSL binary for Windows 64 bit and Linux 64 bit, version "1.0.2zi" of 20/09/2023. Only two CVE is missing ad this time ( CVE-2024-0727 and CVE-2023-6237 refer to: https://www.openssl.org/news/vulnerabilities.html ) and they are classified low severity. With this release everyone use Indy are updated with security, waiting for the Indy 11. OpenSSL 1.0.2zi remediates the following CVE's: CVE-2023-3817 CVE-2023-3446 CVE-2023-0465 CVE-2023-0466 CVE-2023-0464 CVE-2023-0286 CVE-2023-0215 CVE-2022-4304 CVE-2022-2068 CVE-2022-1292 CVE-2022-0778 CVE-2021-4160 CVE-2021-3712 CVE-2021-23841 CVE-2021-23840 CVE-2021-23839 CVE-2020-1971 CVE-2020-1968 CVE-2019-1551 CVE-2019-1563 CVE-2019-1547 CVE-2019-1552 CVE-2019-1559 I don't know if I can share those library, since OpenSSL nothing say about binary license ... may be @Remy Lebeau can suggest if i can post them here. Remy can post also the libraries in the Indy official repo.