Pycurl

Latest version: v7.45.6

Safety actively analyzes 723158 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 13

7.19.5.2

Not secure
-----------------------------------------------------------------

* C sources made 64-bit clean on Windows.

* Support for building against Python 3.5 added to winbuild.py.

* Fixed build on Windows when using MS SDK 8.1+ or MSVC 14/2015
(patch by Gisle Vanem).

* Added automatic SSL library detection on CentOS 6 by loading
libcurl shared library in setup.py. This automatic detection is
meant to permit installing pycurl seamlessly via `pip install pycurl`
on CentOS; as such, it is only employed when no other configuration
options or configuration environment variables are given to setup.py
(original patch by Francisco Alves).

* Added --libcurl-dll option to setup.py to take SSL library
information out of libcurl shared library (original patch by
Francisco Alves). This option is only usable
with Python 2.5 or higher.

* --with-ssl, --with-gnutls and --with-nss options to setup.py now
result in PycURL explicitly linking against the respective SSL
library. Previously setup.py relied on curl-config to supply the
needed libraries in this case.

* List and tuples are now accepted in all positions of HTTPPOST
option values.

* Tuples are now accepted for options taking list values (e.g.
HTTPHEADER).

* Fixed a use after free in HTTPPOST when using FORM_BUFFERPTR with
a Unicode string (patch by Clint Clayton).

* Fixed a memory leak in HTTPPOST for multiple FORM_BUFFERPTR
(patch by Clint Clayton).

* CURLMOPT_* option constants were mistakenly defined on Curl
instances but not on CurlMulti instances. These option constants
are now defined on CurlMulti instances and on pycurl module,
but not on Curl instances.

* Fixed several memory leaks when setting string options to
Unicode values failed.

* Fixed a memory leak when using POSTFIELDS with unicode objects
on Python 2 (patch by Clint Clayton).

* Official support for Python 2.4 and 2.5 dropped. PycURL is no
longer tested against these Python versions on Travis.

* Added CURLAUTH_NEGOTIATE (libcurl 7.38.0+), CURLAUTH_NTLM_WB
(libcurl 7.22.0+), CURLAUTH_ONLY (libcurl 7.21.3+),

* Added CURLOPT_SERVICE_NAME (libcurl 7.43.0+).

* Added CURLOPT_PROXY_SERVICE_NAME (libcurl 7.43.0+).

* Added CURLE_SSL_CRL_BADFILE, CURLE_SSL_INVALIDCERTSTATUS
(libcurl 7.41.0+), CURLE_SSL_ISSUER_ERROR and
CURLE_SSL_PINNEDPUBKEYNOTMATCH (libcurl 7.39.0+).

* Added CURLOPT_SSL_VERIFYSTATUS (libcurl 7.41.0+).

* Added CURL_SSLVERSION_TLSv1_0, CURL_SSLVERSION_TLSv1_1
and CURL_SSLVERSION_TLSv1_2 (libcurl 7.34.0+).

* The second argument of DEBUGFUNCTION callback is now of type bytes on
Python 3. When response body contains non-ASCII data and
DEBUGFUNCTION is enabled, this argument would receive non-ASCII data.
Which encoding this data is in is unknown by PycURL, and e.g. in
the case of HTTP requires parsing response headers. GitHub issue
210, patch by Barry Warsaw with help from Gregory Petukhov.

* Fixed build on GCC 4.4.5 (patch by Travis Jensen).

* Added CURLOPT_GSSAPI_DELEGATION, CURLGSSAPI_DELEGATION_FLAG,
CURLGSSAPI_DELEGATION_NONE and CURLGSSAPI_DELEGATION_POLICY_FLAG
(libcurl 7.22.0+, patch by Dmitry Ketov).

7.19.5.1

Not secure
-----------------------------------------------------------------

* Added CURLPROXY_SOCKS4A and CURLPROXY_SOCKS5_HOSTNAME.

* setup.py now prints PycURL-specific option help when -h is used.

* LibreSSL is now supported (patch by JiCiT).

* Fixed an oversight that broke PycURL building against libcurl 7.19.4
through 7.21.1. The bug was introduced in PycURL 7.19.5.

* Tests are now included in source distributions again, thanks to
Kamil Dudka and Johan Bergstroem.

* Added CURLOPT_MAIL_FROM and CURLOPT_MAIL_RCPT (libcurl 7.20.0+)
and CURLOPT_MAIL_AUTH (libcurl 7.25.0+).

7.19.5

Not secure
---------------------------------------------------------------

* Tests removed from source and binary distributions.

* Documentation greatly improved. Quickstart guide added.

* pycurl.Curl, pycurl.CurlMulti and pycurl.CurlShare are now classes
rather than factory functions. Previously, the classes were "hidden"
(they were accessible as e.g. type(pycurl.Curl()), but could not be
instantiated, nor could class methods be obtained from the classes.
Please see this mailing list post for further information:
https://curl.haxx.se/mail/curlpython-2014-06/0004.html

* When passing a file-like object to READDATA option, PycURL was
mistakenly looking for write method on this object. Now read method
is looked up, as would be expected.

* Python 3.4 is now officially supported.

* Windows packages now build libcurl against zlib.

* CherryPy is no longer required for the test suite, ssl module from
the Python standard library is used instead.

* Fixed a reference leak of SOCKET and TIMER callbacks on
CurlMulti instances, thanks to Ben Darnell.

* Fixed build against openssl on cygwin, where pycurl needs to link
against libcrypto rather than libssl.

* Added CURLOPT_SSH_KNOWNHOSTS (libcurl 7.19.6+).

* Added CURLE_FTP_ACCEPT_FAILED (libcurl 7.24.0+).

* Added CURLE_NOT_BUILT_IN and CURLE_UNKNOWN_OPTION (libcurl 7.21.5+).

* Added CURL_SEEKFUNC_OK, CURL_SEEKFUNC_FAIL and
CURL_SEEKFUNC_CANTSEEK. All constants require libcurl 7.19.5+;
numeric values of CURL_SEEKFUNC_OK and CURL_SEEKFUNC_FAIL were
understood earlier but constants only exist as of libcurl 7.19.5.

* Added CURLINFO_CONDITION_UNMET (libcurl 7.19.4+).

* Added CURLPROXY_HTTP_1_0 (libcurl 7.19.4+).

* Added CURLOPT_SOCKS5_GSSAPI_SERVICE and
CURLOPT_SOCKS5_GSSAPI_NEC (libcurl 7.19.4+).

* Added CURLOPT_TFTP_BLKSIZE (libcurl 7.19.4+).

* Added CURLOPT_PROTOCOLS, CURLOPT_REDIR_PROTOCOLS and associated
CURLPROTO_* constants, which require libcurl 7.19.4+.

* Fixed a reference leak of OPENSOCKET and SEEK callbacks, thanks to
Ben Darnell.

* C source is now split into several files.

* Documentation is now processed by sphinx.

7.19.3.1

Not secure
-----------------------------------------------------------------

* Added --avoid-stdio setup.py option to avoid passing FILE
pointers from Python to libcurl. Applies to Python 2 only.

* Added CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE,
CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CURLMOPT_MAX_HOST_CONNECTIONS
CURLMOPT_MAX_PIPELINE_LENGTH, CURLMOPT_MAX_TOTAL_CONNECTIONS
multi options (patch by Jakob Truelsen).

* SSL detection logic changed to consult `curl-config --static-libs`
even if `curl-config --libs` succeeded. This should achieve
pre-7.19.3 behavior with respect to automatic SSL detection
(patch by Andjelko Horvat).

7.19.3

Not secure
---------------------------------------------------------------

* Added CURLOPT_NOPROXY.

* Added CURLINFO_LOCAL_PORT, CURLINFO_PRIMARY_PORT and
CURLINFO_LOCAL_IP (patch by Adam Jacob Muller).

* When running on Python 2.x, for compatibility with Python 3.x,
Unicode strings containing ASCII code points only are now accepted
in setopt() calls.

* PycURL now requires that compile time SSL backend used by libcurl
is the same as the one used at runtime. setup.py supports
--with-ssl, --with-gnutls and --with-nss options like libcurl does,
to specify which backend libcurl uses. On some systems PycURL can
automatically figure out libcurl's backend.
If the backend is not one for which PycURL provides crypto locks
(i.e., any of the other backends supported by libcurl),
no runtime SSL backend check is performed.

* Default PycURL user agent string is now built at runtime, and will
include the user agent string of libcurl loaded at runtime rather
than the one present at compile time.

* PycURL will now use WSAduplicateSocket rather than dup on Windows
to duplicate sockets obtained from OPENSOCKETFUNCTION.
Using dup may have caused crashes, OPENSOCKETFUNCTION should
now be usable on Windows.

* A new script, winbuild.py, was added to build PycURL on Windows
against Python 2.6, 2.7, 3.2 and 3.3.

* Added CURL_LOCK_DATA_SSL_SESSION (patch by Tom Pierce).

* Added E_OPERATION_TIMEDOUT (patch by Romuald Brunet).

* setup.py now handles --help argument and will print PycURL-specific
configuration options in addition to distutils help.

* Windows build configuration has been redone:
PYCURL_USE_LIBCURL_DLL define is gone, use --use-libcurl-dll
argument to setup.py to build against a libcurl DLL.
CURL_STATICLIB is now defined only when --use-libcurl-dll is not
given to setup.py, and PycURL is built against libcurl statically.
--libcurl-lib-name option can be used to override libcurl import
library name.

* Added CURLAUTH_DIGEST_IE as pycurl.HTTPAUTH_DIGEST_IE.

* Added CURLOPT_POSTREDIR option and CURL_REDIR_POST_301,
CURL_REDIR_POST_302, CURL_REDIR_POST_303 and CURL_REDIR_POST_ALL
constants. CURL_REDIR_POST_303 requires libcurl 7.26.0 or higher,
all others require libcurl 7.19.1 or higher.

* As part of Python 3 support, WRITEDATA option now accepts
any object with a write method on Python 2 and Python 3.
For non-file objects, c.setopt(c.WRITEDATA, buf) is equivalent to
c.setopt(c.WRITEFUNCTION, buf.write).

* PycURL now supports Python 3.1 through 3.3. Python 3.0 might
work but it appears to ship with broken distutils, making virtualenv
not function on it.

* PycURL multi objects now have the multi constants defined on them.
Previously the constants were only available on pycurl module.
The new behavior matches that of curl and share objects.

* PycURL share objects can now be closed via the close() method.

* PycURL will no longer call `curl-config --static-libs` if
`curl-config --libs` succeeds and returns output.
Systems on which neither `curl-config --libs` nor
`curl-config --static-libs` do the right thing should provide
a `curl-config` wrapper that is sane.

* Added CURLFORM_BUFFER and CURLFORM_BUFFERPTR.

* pycurl.version and user agent string now include both
PycURL version and libcurl version as separate items.

* Added CURLOPT_DNS_SERVERS.

* PycURL can now be dynamically linked against libcurl on Windows
if PYCURL_USE_LIBCURL_DLL is defined during compilation.

* Breaking change: opensocket callback now takes an additional
(address, port) tuple argument. Existing callbacks will need to
be modified to accept this new argument.
https://github.com/pycurl/pycurl/pull/18

7.19.0.3

Not secure
-----------------------------------------------------------------

* Re-release of 7.19.0.2 with minor changes to build Windows packages
due to botched 7.19.0.2 files on PyPi.
https://curl.haxx.se/mail/curlpython-2013-12/0021.html

Page 4 of 13

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.