Skip to content

Releases: Mercury13/curl4delphi

v0.3 codename “Tokyo”

03 Nov 15:24
Compare
Choose a tag to compare

Because of some Japanese customers that wanted to translate our software (written in Qt), we realized that our translation tool (3 years older, written in C++ Builder) is not ready to new HTTPS infrastructure. Obsolete Indy did not even handshake!

Raw library
[+] Supports the latest cURL (7.56.1).
[−] Compiles in C++ Builder (there were problems with auto-generated header that are not solvable with HPPEMIT). It appeared to be a good thing, LIB extracted from DLL is enough for Delphi binding, but not enough for C.
[+] Added some nice UA strings.
[+] Identified options of TCurlProxyType, TCurlUseSsl, TCurlFtpMethod, TCurlIpResolve, TCurlRtspSeq, TCurlNetRc, TCurtlSslVersion.
[−] POSTFIELDS were incorrectly identified as string → now raw pointer.
[−] QUOTE was incorrectly identified as object → now slist.
[−] Deleted OBSOLETE’s that sneaked to Lib because of auto-replace.
[!] Renamed TCurlHandle → HCurl, and so on. All of them point to empty records (which, by Pascal rules, are incompatible).
[!] TCurlSocket is now TSocket.
[−] CURLINFO_CERTINFO is now slist → pointer
[!] Some double infos are now deprecated.
[+] Added ProxyFromIe function.
[+] CurlDllName defined for conditional compilation and for easy changing name to match cURL version.

Wrappers
[+] A simpler way to add a memory file.
[+] Added fluent interface, disposed of Form property.
[+] Proxy from IE.
[−] ICurlField.PtrContent: possible array overrun.
[−] Now can add memory buffers in ICurlForm >2G on x64.
[!] Removed ICurl.SetSslVersion, use SetOpt instead.
[!] All memory file RawByteString’s are var, as they should exist for the entire ICurl life.
[!] Some double infos are now deprecated.
[+] Updated for raw library types.
[+] >2G disk files supported on x86. New LargeLength function of CustomField gets that large length that’s impossible to pass through arrays. I do not write workarounds for old cURL, as it is 2 years old!
[−] Typo in form’s exceptions.
[!] GetResponseCode → ResponseCode
[+] SwitchRecvToString, ResponseBody
[!] No more Curl.RawByteStream, now it is in Curl.Interfaces.

Examples
[+] Updated Easy\PhotoInfo for easier way of memory files.
[−] Raw\Https example now WriteLn’s.
[+] Raw\A+B now shows both initial and type-safe version of formadd.
[+] Raw\A+B disposed of wrappers.
[+] Raw\A+B now gets some info.
[!] Updated examples to those nice UA strings.
[!] Updated ProgressBar example, now it downloads more recent LOo.
[!] Updated for fluent interface.

v0.2

06 Apr 19:08
Compare
Choose a tag to compare

[−] ICurlField: double Build added another CURLFORM_END.
[−] ICurlField: fixed Build return type.
[−] EvCurlRead/EvCurlWrite: wrong parameter type
[!] ICurlForm, ICurlField — extracted subtype ICurlCustom*
[!] ICurlForm — DoesUseStream → ReadFunction
[!] SetForm and SetSendStream are mutually-exclusive.
[+] Added ICurlGetBuilder + example

v0.1, codename “Odessa”

28 Mar 16:29
Compare
Choose a tag to compare

Initial version, seems to work.
“7:40” is a song of Russian Jews about a train arriving in Kiev from Odessa (in other version, at 7:40 pm to Odessa from Kiev, or at 7:40 am to Odessa from outskirts).