Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why is Indy 9 included with Delphi 2009? Is it safe to use?

Why is there an Indy9 folder (The default install folder of C:\Program Files\CodeGear\RAD Studio\6.0\source\Indy contains subdirectories for "Indy9" and "Indy10") Why are both versions installed? What is using Indy9? I didn't think it had been updated for 2009...is Indy9 now safe to use with Delphi 2009?

like image 307
Darian Miller Avatar asked Jan 28 '09 02:01

Darian Miller


4 Answers

There is an opened QC report about this, but it's only visible to QC sysops.

The status of "open" typically means that it's accepted that this is a bug, rather than by design.

Remy Lebeau - one of the Indy developers - said this:

The 2009 installer does ship with the Indy 9 source code, but it is not selectable during install. There is a note in the documentation that Indy 9 can be installed manually if needed. But keep in mind that Indy 9 has not been updated to actually support 2009. At the moment, I am not sure if it will be.

like image 129
Roddy Avatar answered Nov 15 '22 07:11

Roddy


There are some changes in Indy 9 (from the 2007 version) so that it will compile under Delphi 2009 (a few String to AnsiString changes), but based on my tests it doesn't work. It tries to, but does not connect. If you want I can give you the changes that have been added for Unicode support, but I don't believe they are sufficient.

I can't really answer why. I could conjecture a few reasons, but I do not have any insider information.

Is it safe to use? YMMV. There is a lot to Indy, so there may be some parts that work fine for your project. Even a simple test with the TIdTCPClient resulted in Socket Error #11004 every time. Same for TIdHTTP. It seems like I tried the MD5 previously and it just got garbage, but I am not sure on that one.

Answer: It was included by mistake (assumption), and it is not safe to use (based on limited tests).

That is unfortunate, because Indy 10 has issues too, and I have some legacy apps that use Indy 9.

like image 40
Jim McKeeth Avatar answered Nov 15 '22 07:11

Jim McKeeth


Indy9 is there for compatibility. There were some breaking changes in Indy10 (your code that was written against Indy9 may not compile under Indy10) so you have the option of continuing to use Indy9 (I think the installer prompts and asks what Indy you want to use - at least it did with D2007).

Update: Okay a few people have correctly commented that Indy9 wont compile with D2009 (because of the new Unicode support), so I guess I don't know why it is there.

like image 23
Alister Avatar answered Nov 15 '22 06:11

Alister


My guess, it was in the source tree, and was automatically included by installer.

like image 44
Cesar Romero Avatar answered Nov 15 '22 08:11

Cesar Romero