rlebeau on sasl-portnum
rlebeau on sasl-oauth
Adding APort parameter to SASL … Removing 'deprecated' from TIdS… (compare)
rlebeau on sasl-portnum
Removing 'deprecated' from TIdS… (compare)
rlebeau on sasl-portnum
Adding APort parameter to SASL … (compare)
rlebeau on master
Updating ComponentPlatforms att… Adding use of {$HPPEMIT OPENNAM… Moving Content-Range handling f… and 3 more (compare)
IdOpenSSLSetLibPath()
function to point to it), or if you are compiling for iOS devices (Indy compiles OpenSSL statically on that platform). Indy itself is compiled directly into your app (unless you enable runtime packages, in which case you would then have to deploy those)
But pls consider https://www.openssl.org/source/license.html, for example
- Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
distribution.
- Redistributions of any form whatsoever must retain the following
- acknowledgment:
- "This product includes software developed by the OpenSSL Project
for use in the OpenSSL Toolkit (http://www.openssl.org/)"
- All advertising materials mentioning features or use of this software
- must display the following acknowledgement:
- "This product includes cryptographic software written by
- Eric Young (eay@cryptsoft.com)"
- The word 'cryptographic' can be left out if the rouines from the library
- being used are not cryptographic related :-).
we currently using Explicit option, and here is the code:
1 idSMTP.Connect;
2 idSMTP.Authenticate;
3 idSMTP.send(idMessage);
however I found that even I remove line 2, it still works correctly. I checked the code for Authenticate, it calls StartTLS. Does TIdSMTP.Connect also call StartTLS as well somewhere?
Hi, Remy. After migration from Indy9 to Indy10 i found one more issue:
our web server always requires Content-Length in header of HTTP Post method. It doesn't matter whether ContentStream is assigned or not.
In Indy10 code i see that in case when ASource is not assigned then header is not added:
if Assigned(ARequest.Source) then begin
ARequest.ContentLength := ARequest.Source.Size;
end else begin
ARequest.ContentLength := -1; => leads to omitting of 'Content-Length'
end;
For this moment i have workaround via adding 'Content-Length' to CustomHeaders (value is '0', works great!). Moreover, seems Indy9 always added 'Content-Length'!
Please, consider adding 'Content-Length' always in library as well. At least i see it is a widespread issue:
http://stackoverflow.com/questions/19227142/http-status-code-411-length-required
Hi, Remy. I wonder, what Indy10 means by 'Content-Length' for TIdMultipartFormDataStream?
I have next code:
AMultiPartFormData := TIdMultipartFormDataStream.Create; // Size=-1, OK
AField := AMultiPartFormData.AddFormField(AId, '', '', 'application/octet-stream'); // size = 222, might be OK
DataStream.CopyFrom(AStream, ALength); // ALength = 100500 bytes
ADataStream.Position := 0;
AField.FieldStream := ADataStream; // after that size became even smaller 220 bytes! why? i expect to see it >= ALength
moreover i must also sent 'Content-MD5' header and have no idea what should be there... In previous version of code with Alcinoe library we had there
CalculateMD5ForStream(ADataStream); and everything works well!
@rlebeau, i've just checked change of size via Debug Watch . As i said above it happens only in case when my stream position is at the end.
I have another question, my HTTP protocol has KeepAlive=True and i see that in this case no disconnection happens:
if not Response.KeepAlive then begin
// TODO: do not disconnect if hoNoReadMultipartMIME is in effect
// TODO: do not disconnect if hoNoReadChunked is in effect
Disconnect;
end;
but i wonder whether is it a good idea to disconnect in case when socket error occurs? E.g. 'connection reset by peer'?