Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jun 25 19:10
    rlebeau commented #108
  • Jun 25 19:10
    rlebeau commented #108
  • Jun 25 19:08
    rlebeau edited #114
  • Jun 24 08:35
    ThomasKalten commented #108
  • Jun 22 12:38
    smndk commented #299
  • Jun 14 16:15
    rlebeau edited #122
  • Jun 10 08:06
    AdriaanBoshoff commented #118
  • Jun 09 23:28
    rlebeau commented #192
  • Jun 08 20:30
    BretBordwell commented #192
  • Jun 01 20:35

    rlebeau on sasl-portnum

    (compare)

  • Jun 01 20:34

    rlebeau on sasl-oauth

    Adding APort parameter to SASL … Removing 'deprecated' from TIdS… (compare)

  • Jun 01 19:20
    rlebeau commented #192
  • Jun 01 19:16

    rlebeau on sasl-portnum

    Removing 'deprecated' from TIdS… (compare)

  • Jun 01 18:47

    rlebeau on sasl-portnum

    Adding APort parameter to SASL … (compare)

  • Jun 01 18:44

    rlebeau on master

    Updating ComponentPlatforms att… Adding use of {$HPPEMIT OPENNAM… Moving Content-Range handling f… and 3 more (compare)

  • Jun 01 15:48
    rlebeau commented #192
  • May 21 17:19
    PizzaProgram commented #412
  • May 18 15:34
    rlebeau labeled #192
  • May 18 15:34
    rlebeau labeled #192
  • May 17 18:54
    BretBordwell commented #192
Ludwig Behm
@lbehm
Ohh do you mean direct TCP-Socket-Connections on port 211? I think Apple only cares about HTTPS. So you should be fine
Remy Lebeau
@rlebeau
@maurobotta Indy has supported TLS 1.2 for awhile now. If Embarcadero does not use TLS 1.2 in DataSnap, that is on them.
@devimplode SSLVersions = TIdSSLVersions(32); is not good syntax to use, it is dependant on an implementation detail of how Sets are laid out in memory. You should use SSLVersions = TIdSSLVersions() << sslvTLSv1_2; instead
Ludwig Behm
@lbehm
@rlebeau I tried that... (yes I read the manual =D ) but didn't get it to work. Does my attempt create problems in the memory?
Remy Lebeau
@rlebeau
@devimplode the syntax I showed works fine. Your type-cast will technically work, no problem with memory, but it isn't very readable or well known. I didn't even know Set had a constructor like that until I just now looked at it.
Ludwig Behm
@lbehm
@rlebeau thanks for the infos!^^ The goal was to make it configurable. My result:
_SSLProtocols_ = 0;
TStringList *protoList = new TStringList('"', ':');
protoList->DelimitedText = "tlsv1:tlsv1_1:tlsv1_2";
if (protoList->IndexOf("ssl2") >= 0)
    _SSLProtocols_ = _SSLProtocols_ | 1 /*((int)Idsslopenssl::TIdSSLVersion::sslvSSLv2)*/;
if (protoList->IndexOf("ssl3") >= 0)
    _SSLProtocols_ = _SSLProtocols_ | 2 /*((int)Idsslopenssl::TIdSSLVersion::sslvSSLv3)*/;
if (protoList->IndexOf("tlsv1") >= 0)
    _SSLProtocols_ = _SSLProtocols_ | 8 /*((int)Idsslopenssl::TIdSSLVersion::sslvTLSv1)*/;
if (protoList->IndexOf("tlsv1_1") >= 0)
    _SSLProtocols_ = _SSLProtocols_ | 16 /*((int)Idsslopenssl::TIdSSLVersion::sslvTLSv1_1)*/;
if (protoList->IndexOf("tlsv1_2") >= 0)
    _SSLProtocols_ = _SSLProtocols_ | 32 /*((int)Idsslopenssl::TIdSSLVersion::sslvTLSv1_2)*/;

SSLHandler->SSLOptions->SSLVersions = TIdSSLVersions(_SSLProtocols_);
Remy Lebeau
@rlebeau
This is the intended way to use it:
TIdSSLVersions _SSLProtocols_;
...
_SSLProtocols_ = TIdSSLVersions();
TStringList *protoList = new TStringList('"', ':');
protoList->DelimitedText = "tlsv1:tlsv1_1:tlsv1_2";
if (protoList->IndexOf("ssl2") != -1)
    _SSLProtocols_ << sslvSSLv2;
if (protoList->IndexOf("ssl3") != -1)
    _SSLProtocols_ << sslvSSLv3;
if (protoList->IndexOf("tlsv1") != -1)
    _SSLProtocols_ << sslvTLSv1;
if (protoList->IndexOf("tlsv1_1") != -1)
    _SSLProtocols_ << sslvTLSv1_1;
if (protoList->IndexOf("tlsv1_2") != -1)
    _SSLProtocols_ << sslvTLSv1_2;

SSLHandler->SSLOptions->SSLVersions = _SSLProtocols_;
Ludwig Behm
@lbehm
yep, it works now - thank you @rlebeau !
Ludwig Behm
@lbehm
when we're talking about ssl... how hard would it be to implement ocsp stapling? =)
Remy Lebeau
@rlebeau
@devimplode never heard of it
Jeroen Wiert Pluimers
@jpluimers
@rlebeau https://en.wikipedia.org/wiki/OCSP_stapling a mechanism for checking the revocation of certificates.
Ludwig Behm
@lbehm
@rlebeau OCSP is the replacement for CRL. The basic concept is that the user-agent looks in the certificate definition, finds a OCSP server address, and asks them if the certificate is still valid.
Now we have the problem, that these OCSP servers haven't that great uptime. Here comes OCSP Stapling to the rescue: It's basically a TLS extension in the HTTPS connection. The HTTPS web server checks it's certificates for an OCSP server. If found, then he, the web server, asks the OCSP server every now and then for the validity of the certificate (signed with a timestamp from the CA), and passes it to the user-agent when a connection is established.
If everything works well the user-agents finds that signed OCSP-response and doesn't have to query and wait for a response from a hard-to-reach 3rd party.
Btw: It also improves user privacy - the 3rd party (CA/OCSP server) can't see anymore which server is browsed.
Ludwig Behm
@lbehm
I already looked at some implementations in nginx and openssl s_server.... and gave up - that's just very strange stuff in openssl...
Remy Lebeau
@rlebeau
@devimplode Indy does not currently support OCSP stapling, but it might be doable, at least client-side: http://stackoverflow.com/a/11591672/65863
Mr Jayme Jeffman
@jjeffman
Hello Remy. I have just reinstalled Indy10 on C++Builder 6.0 Pro, but after adding the bpl packages they disappear after closing the IDE, Is there any Indy forum active for browsing old posts ?
Remy Lebeau
@rlebeau
@jjeffman there used to be an Indy forum at http://forums2.atozed.com, but the server crashed a few months ago and the forum has not been brought back online yet. What you describe is not specific to Indy, though. Did you install the packages while another project was also open in the IDE? If so, the packages would be associated with that project. Make sure to install the packages when no other projects are open. Also check the Registry to make sure the packages are not disabled.
Mr Jayme Jeffman
@jjeffman
There was no any other project opened. I have separated the files which where placed on C6 into its file types at $(BCB)\Components\Indy10. I have put the .lib and .bpi files in Indy\Lib; the .bpl files in Indy\Bin; the .hpp files in Indy\Include; When I install the packages and after load an application which use Indy components it compiles normally. But the components are not kept on the ide if I close BCB.
Mr Jayme Jeffman
@jjeffman
@rlebeau I have alse taken ownership (Windows10) from all the folders and files where C++Builder is installed, but the components still are not present when the C++Builder IDE is opened. I have been getting the "file not found" error.
Mr Jayme Jeffman
@jjeffman
@rlebeau I have just succeeded on keeping the components in the palette. I had to copy the bpl files to the $(BCB)\Bin folder. Thank you very much indeed.
Remy Lebeau
@rlebeau
@jjeffman they don't belong in the $(BCB)\bin folder, only the IDE's own files should be in there. Since you are using non-standard folders for the output, did you add your folders to the IDE's includes and library paths? See http://stackoverflow.com/questions/23674831/
Mustafa Şengül
@semusta
hi guys
is there indy documentaion for c++ builder links ? ty
PaulRedkite
@PaulRedkite
Hi All,
PaulRedkite
@PaulRedkite
Hi All, I am attempting to install Indy 10 into Delphi 2009 on a Windows 10 machine. I am able to compile all of the various DPK files with no problems, but am getting an issue when I try to install the 2 compiled BPL files into the component library. The error is, The procedure entry point @Ididn@intialization$qqrv could not be located in the dynamic link library c:\program files (x86)\codegear\ rad studio\6.0\bin\dclIndyCore120.bpl. Is anyone aware of any specific issues with Windows 10. I have successfully installed done this before in Delphi 9, but on a Windows 7 PC.
Kudzu
@czhower
You likely have old copies of indy or more than one version lying around. you need to search and destroy them.
Remy Lebeau
@rlebeau
@PaulRedkite did you first remove the Indy version that ships pre-installed in the IDE?
@semusta http://indyproject.org/Sockets/Docs/index.aspx, though some of it is a bit dated. There is nothing specific to C++Builder, though. Indy works the same in Delphi and C++, it is just a matter of the different code syntax between the two languages.
souch
@souch
Hi, I think I found a small bug in indy. As I don't know were to send it, I put it here directly. When using Indy on Android with delphi seattle, timeout seems buggy : I think the problem lies here : IdGlobal.Ticks64 function never initialize the "tv" struct as gettimeofday is not called (neither USE_BASEUNIX nor KYLIXCOMPAT is defined).
Remy Lebeau
@rlebeau
Doed Android provide gettimeofday() or clock_gettime()? Are either available in Delphi on Android?
Remy Lebeau
@rlebeau
Android runs on top of Linux, so I wonder if enabling {$DEFINE USE_clock_gettime} at the top of the implementation section of IdGlobal.pas would work when {$IFDEF ANDROID} is true
Hugo Luiz Cruz
@hugoluiz
Hi All, I'm trying install the last Indy10 version on Delphi Berlin but when I try to compile I am getting this message: [Fatal Error] Cannot compile package 'IndySystem240' which is currently required by Delphi 10.1 Berlin. I am missing some thing ?
Remy Lebeau
@rlebeau
@hugoluiz Are there other errors before that one? Did you remove the pre-installed version of Indy first?
ntsmkfob
@ntsmkfob
Hi all, up to now, we've used Indy to send email to our sports club members using our ISP (BT Business). We would send an email containing 20 BCCs and throttle the throughput to keep in the ISPs volume limits per hour. That went out of the window when they switched to using Outlook.com to host their emailing. We've switched to using an SMTP service (AuthSMTP) who recommend sending individual emails, no BCC. The old way had a fair processing overhead, but that didn't matter as there would be a minimum of 10 secs interval between emails. Now I want to basically loop through the recipient list as fast as possible - basically Connect, loop through list clearing and building headers, Send and finally Disconnect., rather than Connect, Send one email, Disconnect and loop. Am I digging a hole for myself?
Marcelo Lauxen
@marcelolx
Hey people, i have a doubt
specifically at the TIdFTP component on the palette Indy Clients, Delphi XE2
I intend to to upload and download files from my ftp server, and keep the file modification date, is it possible?
I not found anything at the docsite of IndyProject, related this, but it's possible or not?
Sorry my bad english
Remy Lebeau
@rlebeau
@ntsmkfob if you are sending all of the emails using the same SMTP server, you don't need to disconnect between individual emails, you can send more than one email per login session. Connect, send send send, disconnect. The alternative is to stop using 3rd party email services altogether and just send your emails directly to each recipient's email server directly. Indy even has a TIdSMTPRelay component for that very purpose. It scans an email's recipients list and separates the recipients based on their domains, and then it uses DNS to locate each domain's receiving server, and then finally connects to each domain sending the email to all recipients within the domain. Just be careful, because this is the same thing spammers ted to do, and you might get blacklisted by some servers. This is generally why you should send emails using an ISP or intermediary service that has already been whitelisted (consider using a mailing list service, like Yahoo Groups, instead of sending emails to individual recipients, that way you only have to send 1 email on your end and let the service propegate it through the membership for you).
@marcelolx When uploading files, TIdFTP has a SetModTime() method for setting the modification time of a remote file, if the server supports the MFMT or MDTM command. When downloading a file, you have to set the modification time of the local file manually. On Windows, you can use Delphi's SysUtils.FileSetDate() function, or the Win32 SetFileTime() function directly, for that purpose.
ntsmkfob
@ntsmkfob
Thank you Remy. I'll try the send,send,send approach, as it means removing code instead of writing new stuff. Thanks for your help.
Marcelo Lauxen
@marcelolx
Thank you @rlebeau , I'll test this tomorrow and say if worked.
Marcelo Lauxen
@marcelolx
It worked! :smile:
Matthijs ter Woord
@mterwoord
when pinging on windows, do i need admin rights?
Kudzu
@czhower
as a ping client? no...
Matthijs ter Woord
@mterwoord
shoot, then the app gives a different issue..
:(
i am getting socket error 10013 on the AllocateSocket when pinging...
Matthijs ter Woord
@mterwoord
a bit old, but same eror...