rlebeau on OpenSSL-1.1.x
rlebeau on master
Correctly define timezone funct… Merge pull request #272 from Bi… (compare)
rlebeau on master
Fixing compiler errors in TIdIP… (compare)
rlebeau on master
Fix for missing declaration of … Fix for compiler error in Local… Merge branch 'master' of https:… and 2 more (compare)
rlebeau on master
Update IdGlobal.pas Fix for co… (compare)
rlebeau on master
Update IdGlobal.pas Fix for mi… (compare)
rlebeau on master
Update IdGlobal.pas Fix for co… (compare)
DumpCert()
at all, its original code is fine. The real problem is in BIO_get_mem_data()
itself in IdSSLOpenSSLHeaders.pas
. When it calls BIO_ctrl()
, it is not passing the correct output pointer - Result := BIO_ctrl(b,BIO_CTRL_INFO,0,pp);
should be Result := BIO_ctrl(b,BIO_CTRL_INFO,0,@pp);
Looks like other functions, like BIO_get_mem_ptr
and BIO_get_ssl
, are also affected by a similar bug
TIdSSPINTLMAuthentication
for NTLM over HTTP, but last time I looked at it, I seem to recall that it is not generalized enough for reuse with SChannel, which also uses SSPI. If we can finish fleshing out the IdSSPI
unit with some missing pieces, and maybe port some of the code from the IdAuthenticationSSPI
unit into IdSSPI
or another common unit, that would go a long way to making an SChannel IOHandler easier to implement within Indy. I'm sure there are pieces of Paul's implementation that duplicate pieces that Indy already has and should reuse. I was already working on learning the SSPI API for SChannel use, but that effort is still in test code and not in Indy yet.
why the IdSASL_NTLM.pas file is not in the tokyo installer?
File only in Indy SVN: 'Protocols\IdSASL_NTLM.pas'
var
LBinding: TIdSocketHandle;
begin
IdIPMCastClient1.IPVersion := TIdIPVersion.Id_IPv6;
IdIPMCastClient1.DefaultPort := 6000;
IdIPMCastClient1.MulticastGroup := 'FF02::1';
IdIPMCastClient1.Bindings.Clear;
LBinding := IdIPMCastClient1.Bindings.Add;
LBinding.IPVersion := IdIPMCastClient1.IPVersion;
LBinding.IP := '::';
LBinding.Port := IdIPMCastClient1.DefaultPort;
IdIPMCastClient1.Active := True;
end;
Bindings
property editor is implemented in IdDsnPropEdBindingVCL.pas
and IdCoreDsnRegister.pas
. And of course, if you are not connected to an IPv6 network when activating the TIdIPMCastClient
, you are going to run into errors trying to join an IPv6 multicast group. Populating the Bindings
doesn't allocate any socket at design-time, and activating the client at runtime can still allocate an IPv6 socket and bind it locally without being connected to an IPv6 network, but joining the group requires communicating with the network, so a network connection is needed.