Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Oct 16 04:22
    rlebeau labeled #269
  • Oct 16 04:22
    rlebeau opened #269
  • Oct 08 19:00

    Fulgan on Restructure

    Bug fix for a typo in TIdIMAP4.… (compare)

  • Oct 08 19:00

    Fulgan on master

    Bug fix for a typo in TIdIMAP4.… (compare)

  • Oct 02 21:00

    Fulgan on Restructure

    Updating TIdIMAP4's InternalSea… (compare)

  • Oct 02 21:00

    Fulgan on master

    Updating TIdIMAP4's InternalSea… (compare)

  • Sep 20 21:50

    Fulgan on master

    Embarcadero patch for race cond… (compare)

  • Sep 20 21:50

    Fulgan on Restructure

    Embarcadero patch for race cond… (compare)

  • Sep 10 18:50
    rlebeau closed #268
  • Sep 10 18:50
    rlebeau commented #268
  • Sep 10 18:50

    Fulgan on Restructure

    Fix for TIdResponseHeaderInfo.S… (compare)

  • Sep 10 18:50

    Fulgan on master

    Fix for TIdResponseHeaderInfo.S… (compare)

  • Sep 10 18:49
    rlebeau labeled #268
  • Sep 10 18:49
    rlebeau labeled #268
  • Sep 10 18:49
    rlebeau assigned #268
  • Sep 10 18:49
    rlebeau review_requested #268
  • Sep 09 13:15
    gjdoornink opened #268
  • Aug 28 21:00

    Fulgan on Restructure

    Setting TIdSSLIOHandlerSocketBa… (compare)

  • Aug 28 21:00

    Fulgan on master

    Setting TIdSSLIOHandlerSocketBa… (compare)

  • Aug 28 19:42
    rlebeau milestoned #183
Jeroen Wiert Pluimers
@jpluimers
I usually take https://github.com/project-jedi/jedi/blob/master/jedi.inc but browsing through Indy code every bit that helps me understand versions better is welcome.
Paessler
@Paessler
@rlebeau Hi Remy, short Question since i'm having a hard time finding stuff, is there any documentation available how to implement the serverside OCSP Stapling with the IdOpenSSL Handler?
Remy Lebeau
@rlebeau
@Paessler Indy doesn't support OCSP natively, but you might be able to cobble something together manually, see https://www.openssl.org/docs/man1.0.2/ssl/SSL_CTX_set_tlsext_status_cb.html. I'm not sure if you will be able to make this work with the current IOHandler, though. I've just added some tickets to help with this in the future: IndySockets/Indy#223 and IndySockets/Indy#224
Marcos Douglas B. Santos
@mdbs99
Hello.
I have an issue very strange using FPC 3.1.1 and Laz 1.9. I have no memleaks in my project, but If I add an Indy unit, eg. IdPOP3, I have 3 memleaks
Marcos Douglas B. Santos
@mdbs99
Here is the problem:
  GThreadCount := TIdThreadSafeInteger.Create;
  {$IFNDEF FREE_ON_FINAL}
    {$IFDEF REGISTER_EXPECTED_MEMORY_LEAK}
  IndyRegisterExpectedMemoryLeak(GThreadCount);
  IndyRegisterExpectedMemoryLeak(TIdThreadSafeIntegerAccess(GThreadCount).FCriticalSection);
    {$ENDIF}
  {$ENDIF}
finalization
  // This call hangs if not all threads have been properly destroyed.
  // But without this, bad threads can often have worse results. Catch 22.
//  TIdThread.WaitAllThreadsTerminated;

  {$IFDEF FREE_ON_FINAL}
  //only enable this if you know your code exits thread-clean
  FreeAndNil(GThreadCount);
  {$ENDIF}
So, "only enable this if you know your code exits thread-clean" is this make sense?

...in IdThread.pas but there is another in IdStack.pas... and why do we have an *.inc in each directory with the same information??

Of course we need to enable FREE_ON_FINAL... why not?

Marcos Douglas B. Santos
@mdbs99
IMHO this is an issue... so I've posted IndySockets/Indy#225
Remy Lebeau
@rlebeau
@mdbs99 I've commented on it
Marcos Douglas B. Santos
@mdbs99
Hey @rlebeau I've commented too... thanks
Are you the maintainer of Indy nowadays?
Remy Lebeau
@rlebeau
@mdbs99 yes, I am
Marcos Douglas B. Santos
@mdbs99
Just to know
I don't use Indy for a long time, and I was not sure if the project was stopped or not
Thanks for your work/time
Remy Lebeau
@rlebeau
@mdbs99 it is certainly not stopped, though efforts on it can be slow at times since I'm the only coder working on it
Marcos Douglas B. Santos
@mdbs99
I see. Sad. Indy is a huge project. Should be more developers working on it
Remy Lebeau
@rlebeau
@mdbs99 there did used to be a whole team working on Indy, but over the years its members have left or gone silent, and nobody new has come in. There are still a few admins hanging around, but no other coders besides me (AtoZed has coders working on IntraWeb and CrossTalk, but they don't work on Indy, though they do use Indy inside of IntraWeb).
Marcos Douglas B. Santos
@mdbs99
Well, looks like that Atozed is migrating to C#
I don't know if you are an employee of Atozed of just work in that project in your free time... anyway, I should know that your work counts and many projects still continue using Indy in production.
Remy Lebeau
@rlebeau
@mdbs99 I am not an AToZed employee, I'm just a volunteer for Indy, but AFAIK they are not migrating to C#. CrossTalk is for using .NET assemblies in Delphi/C++Builder, but IntraWeb is written in Delphi.
Marcos Douglas B. Santos
@mdbs99
Good to know... however, I'm using more FPC/Lazarus nowadays than Delphi
I don't know if IntraWeb will survive competing with TMS Web Core
...but that is out of scope here
Marcos Douglas B. Santos
@mdbs99
I'll use Indy in one of my projects so, I'll stay here to get some information and help people if I can
Kudzu
@czhower
@mdbs99 Indy is also VERY mature. So maint is much more limited. Indy is over 20 years old.
@mdbs99 Not sure where you got this thing about Atozed Migrating to C#. Both Atozeds 2 main products are Delphi.
@mdbs99 TMS web core is WAY behind IW. Even IW 14/15. TMS web core isnt even Delphi but PasScript and has almost not backend you have to build that manualy using their other parts. That stuff is transparent in IW. IW and TMS are very different. TMS is far more basic and missing dozens of major features that IW has.
EitanArbel
@EitanArbel
@mdbs99 as far as i know, AToZed may have some plans to create intraweb 17 also for Lazarus.
besides that, i think you meant to say that you don't know if TMS Web will survive intraweb... :D
Marcos Douglas B. Santos
@mdbs99

Not sure where you got this thing about Atozed Migrating to C#

@czhower I'm sorry. I just took a look in Atozed website and saw some C# products... but, my bad.

IW and TMS are very different. TMS is far more basic and missing dozens of major features that IW has

They are different, yes. Maybe I was a little fast saying that I said. Sorry, again.

i think you meant to say that you don't know if TMS Web will survive intraweb

@EitanArbel this will be a good battle to see! ;-)

Kudzu
@czhower

@mdbs99 The only C# product there is CrossTalk which allows you to use C# or .NET code IN Delphi.

On the open source sponsorship side, yes we also have COSMOS but we are just a sponsor of that just like Indy. We provide server infra and other resources as well as coding (volunteer) of some of our staff.

Marcos Douglas B. Santos
@mdbs99
I got it.
davidwed
@davidwed

Hi, I use the idFTPServer as FTPs server. Everything works with self-signed certificates.
IdServerIOHandlerSSLOpenSSL->SSLOptions->KeyFile / IdServerIOHandlerSSLOpenSSL->SSLOptions->CertFile / IdServerIOHandlerSSLOpenSSL->SSLOptions->RootCertFile are set.

Where can I specify a certificate version chain?

Excuse me, I mean a certification chain.
mezen
@mezen
If I remember correctly, you have to use a file with your complete chain as IdServerIOHandlerSSLOpenSSL->SSLOptions->CertFile
davidwed
@davidwed
All right,
and what is IdServerIOHandlerSSLOpenSSL->SSLOptions->RootCertFile good for?
Remy Lebeau
@rlebeau
@davidwed SSLOptions->RootCertFile refers to a single file in PEM format containing 1 or more trusted CA certificates. There is also an SSLOptions->VerifyDirs property that refers to a folder containing trusted CA certificates in individual PEM files. See OpenSSL's documentation for the SSL_CTX_load_verify_locations() function for more details: https://www.openssl.org/docs/man1.0.2/ssl/SSL_CTX_load_verify_locations.html
John
@JEisenheim_twitter

Strange problem with Indy 10 on 64-bit. When I run a program which uses Indy 10, the program is crashing at start in function IN6ADDR_LOOPBACK_INIT in IdWinsock2. Steps to reproduce: Windows 7 Pro, Delphi XE2, Indy 5438, create a new project, include IdWinsock2, compile\run in 64-bit, crash. The crash in IN6ADDR_LOOPBACK_INIT is "c0000005 ACCESS VIOLATION", apparently Result.s6_bytes values are inaccessible.

@rlebeau

@JEisenheim_twitter did you report that to the FixPack author? How is that optimization causing the crash?

Just in case anybody else experienced this crash, the bug was in the IDE Fix Pack, not Indy. The compiler created defective when the optimization was enabled. This is fixed in this release:
http://andy.jgknet.de/blog/2018/06/ide-fix-pack-6-3-2-for-xe2-only/

mezen
@mezen
https://stackoverflow.com/questions/28022021/what-socket-error-2-means-in-indy-components#comment44445800_28022021
Interesting, today I got also a "Socket Error # 2" while connecting via TidTCP with an OpenSSL IO Handler to a plaintext TCP Server (written in .NET).
Using Delphi Berlin with stock Indy.
mezen
@mezen
If I try to reproduce that scenario in a SSCCE I get an "Socket Error # 10060 Connection timed out."
Remy Lebeau
@rlebeau
@mezen Makes sense if you connect to a plaintext (non-SSL/TLS) server and Indy tries to invoke an SSL/TLS handshake with it, there won't be a valid response. The SSLIOHandler does use a 30-second timeout at the socket layer by default on Vista+, unless you specify your own ReadTimeout
mezen
@mezen
Are there any example implementation (and/or books) for using SSL Session Caching with Indy? For the basic I have http://shop.oreilly.com/product/9780596002701.do, but nothing for Delphi and/or Indy.
Remy Lebeau
@rlebeau
@mezen Indy doesn't support SSL session caching, it is on the todo list, see IndySockets/Indy#213 and IndySockets/Indy#224
John
@JEisenheim_twitter
Hi. I am trying to manually create a HTTP Server session object in the TidHTTP server OnCreateSession event:
TIdHTTPCreateSession = procedure(ASender:TIdContext; var VHTTPSession: TIdHTTPSession) of object;
Problem is I don't have the RemoteIP value in the event, which is necessary for the session creation. How can I have access to this value?
Also I've created my own session class (subclassed TIdHTTPSession), this is why I am trying to create it manually. Is this allowed? Apart from the RemoteIP issue, it seems to work.
Last question: it would be nice to add a new Data property of TObject to TIdHTTPSession, to make it easy to extend without creating a new class. (I know I can attach objects to Content, TStrings but still).
Remy Lebeau
@rlebeau
@JEisenheim_twitter the RemoteIP is not passed to the OnCreateSession event (I'll look into adding that), but you can get it from the ASender.Connection.Socket.Binding.PeerIP property. And deriving from TIdHTTPSession is the preferred way to extend sessions with custom data without using the Content property.
Remy Lebeau
@rlebeau
@JEisenheim_twitter see IndySockets/Indy#228
John
@JEisenheim_twitter
@rlebeau Thank you! I really appreciate your work you put in maintaining Indy. This library has tremendous value, without it Delphi would be half as useful as it is right now. EMBT should thank you too.