Commit Graph

718 Commits

Author SHA1 Message Date
Adam Harvey
aa7d3d8e6d Track created curl_slist structs by option so they can be updated in situ.
At present, when curl_setopt() is called with an option that requires the
creation of a curl_slist, we simply push the new curl_slist onto a list to be
freed when the curl handle is freed. This avoids a memory leak, but means that
repeated calls to curl_setopt() on the same handle with the same option wastes
previously allocated memory on curl_slist structs that will no longer be read.

This commit changes the zend_llist that was previously used to track the lists
to a HashTable keyed by the option number, which means that we can simply
update the hash table each time curl_setopt() is called.

Fixes bug #65458 (curl memory leak).
2013-08-19 12:01:04 -07:00
Christopher Jones
4c3c9d1fe5 Merge branch 'PHP-5.5'
* PHP-5.5:
  Fix long-standing visual pain point: the misalignment of './configure help' text. Whitespace changes and a couple of grammar fixes.
2013-08-06 11:09:12 -07:00
Christopher Jones
c6d977dd39 Fix long-standing visual pain point: the misalignment of './configure help' text.
Whitespace changes and a couple of grammar fixes.
2013-08-06 11:06:09 -07:00
Felipe Pena
802a25e0c9 Merge branch 'PHP-5.5'
* PHP-5.5:
  - Fixed typo on condition
2013-06-25 21:53:42 -03:00
Felipe Pena
623386d799 - Fixed typo on condition 2013-06-25 21:53:20 -03:00
David Soria Parra
e04baf692a Fix curl build on windows 2013-04-25 08:04:30 +02:00
David Soria Parra
4c0746228d Merge branch 'PHP-5.5'
* PHP-5.5:
  NEWS for RC1
  NEWS for PHP 5.5.0 Beta 4 again
  Fix curl build on windows
2013-04-25 08:25:10 +02:00
Pierrick Charron
74394733ed Merge branch 'PHP-5.5'
* PHP-5.5:
  Remove curl wrappers
2013-04-23 17:01:50 -04:00
Pierrick Charron
b79e65f268 Remove curl wrappers 2013-04-23 17:01:17 -04:00
Anatol Belski
cd3dc3308b Merge branch 'PHP-5.5'
* PHP-5.5:
  Added curl config test for windows
2013-04-17 14:26:26 +02:00
Anatol Belski
2d9cbf720d Added curl config test for windows 2013-04-17 14:25:45 +02:00
Xinchen Hui
2794d455ea Merge branch 'PHP-5.5' 2013-04-04 19:31:21 +08:00
Xinchen Hui
01ca2bf8c3 Merge branch 'PHP-5.4' into PHP-5.5
Conflicts:
	ext/curl/interface.c
2013-04-04 19:31:14 +08:00
Xinchen Hui
185e5e15ae s ,CURL_WRAPPERS_ENABLE,CURL_WRAPPERS_ENABLED, 2013-04-04 19:28:17 +08:00
Xinchen Hui
bd6a90dac7 Merge branch 'PHP-5.5' 2013-04-03 10:17:49 +08:00
Xinchen Hui
6ace9c646b Merge branch 'PHP-5.4' into PHP-5.5
Conflicts:
	ext/curl/interface.c
2013-04-03 10:15:41 +08:00
Xinchen Hui
d7f709a032 Add CURL_WRAPPERS_ENABLE constant
see http://news.php.net/php.internals/66871
2013-04-03 10:09:51 +08:00
Anatol Belski
15a182a2d0 Merge branch 'PHP-5.5'
* PHP-5.5:
  fix the test for curl 7.29.0+
2013-02-19 09:05:45 +01:00
Anatol Belski
43664e656d Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  fix the test for curl 7.29.0+
2013-02-19 09:05:27 +01:00
Anatol Belski
cc34dfce16 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  fix the test for curl 7.29.0+
2013-02-19 09:04:52 +01:00
Anatol Belski
558c5dbe65 fix the test for curl 7.29.0+ 2013-02-19 09:04:06 +01:00
Stanislav Malyshev
c389d33f0c Merge branch 'PHP-5.5'
* PHP-5.5:
  fix protos
2013-02-17 13:34:07 -08:00
Stanislav Malyshev
17c6389e9e fix protos 2013-02-17 13:33:48 -08:00
Anatol Belski
9a85dca7a5 Merge branch 'PHP-5.5'
* PHP-5.5:
  fix free vs. curl_free
2013-02-17 20:29:58 +01:00
Anatol Belski
432d59ab55 fix free vs. curl_free 2013-02-17 20:29:20 +01:00
Xinchen Hui
34381de5f3 Merge branch 'PHP-5.5' 2013-02-04 14:22:17 +08:00
Xinchen Hui
53159f6e05 implicit declaration of zend_throw_exception 2013-02-04 14:20:50 +08:00
Stanislav Malyshev
7ae80c585f Merge branch 'PHP-5.5'
* PHP-5.5:
  forgot this file :(
2013-01-29 15:03:19 -08:00
Stanislav Malyshev
15e76e6a98 forgot this file :( 2013-01-29 15:02:55 -08:00
Stanislav Malyshev
24447dca5d post-5.5 changes for bug #46439 as described in the RFC 2013-01-28 22:26:59 -08:00
Stanislav Malyshev
a9d013bb02 Implement fix for bug #46439 - add CURLFile class for safer uploads 2013-01-28 22:22:59 -08:00
Pierrick Charron
f85e5950ab Improve resource management for curl handle
Previous implementation was using its own refcounting (uses field of
the php_curl struct). zend_list_add/remove already implements its own
refcount, so we don't need to use an other one.
2013-01-05 11:07:59 -05:00
Pierrick Charron
343a9199bb Remove passwd handler from struct when not needed
CURLOPT_PASSWDFUNCTION was removed in cURL 7.15.5, the passwd field
will not be used for version greater than this one
2013-01-01 21:12:02 -05:00
Xinchen Hui
a666285bc2 Happy New Year 2013-01-01 16:37:09 +08:00
Xinchen Hui
0a7395e009 Happy New Year 2013-01-01 16:28:54 +08:00
Xinchen Hui
a2045ff332 Happy New Year~ 2013-01-01 16:02:16 +08:00
Pierrick Charron
722b8fb80e Add new curl options
Addes new curl options CURLOPT_TELNETOPTIONS, CURLOPT_GSSAPI_DELEGATION,
CURLOPT_ACCEPTTIMEOUT_MS, CURLOPT_SSL_OPTIONS, CURLOPT_TCP_KEEPALIVE,
CURLOPT_TCP_KEEPIDLE and CURLOPT_TCP_KEEPINTVL.
2012-12-28 00:51:04 -05:00
Pierrick Charron
8b67981b67 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Fixed #63859 Memory leak when reusing curl-handle
2012-12-27 13:37:11 -05:00
Pierrick Charron
ac3d227e28 Fixed #63859 Memory leak when reusing curl-handle
When CURLOPT_POSTFIELDS is called more than once on the same
curl handle, php/curl did not free the memory of the previous
post data. This commit will fix the problem unless the curl
handle was previously duplicated using the curl_copy_handle()
function in which case we can not know if the post data is
still in use or not by any curl handle
2012-12-27 13:31:55 -05:00
Pierrick Charron
8456cef1db Fix ext/curl tests to work on every libcurl versions
Thanks Laruence :)
2012-12-26 00:43:37 -05:00
Pierrick Charron
33f44af1a7 New curl_pause() function
Add the curl_pause function (binding of curl_easy_pause).
Using this function, you can explicitly mark a running connection
to get paused, and you can unpause a connection that was
previously paused.
2012-12-23 17:13:49 -05:00
Pierrick Charron
4b4f3db731 Support for curl_strerror and curl_multi_strerror
Add the support for both curl_strerror and curl_multi_strerror.
Those function will return a string describing the error code
passed in the argument errornum
2012-12-23 15:45:39 -05:00
Pierrick Charron
64595a5d1a Add curl_multi_setopt and clean curl_share_setopt
curl_multi_setopt is now available and supports CURLMOPT_PIPELINING
and CURLMOPT_MAXCONNECTS
2012-12-23 14:59:41 -05:00
Pierrick Charron
ded889e865 Remove duplicated function definition 2012-12-23 14:05:04 -05:00
Pierrick Charron
ee453541ed Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Update NEWS file
  Fixed segfault due to libcurl connection caching
2012-12-22 19:10:35 -05:00
Pierrick Charron
b10a3b9466 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fixed segfault due to libcurl connection caching
2012-12-22 19:04:45 -05:00
Pierrick Charron
a2b6d9c104 Fixed segfault due to libcurl connection caching
Libcurl is doing connection caching. When easy handle is cleaned up,
if the handle was previously used by the curl_multi_api, the connection
remains open un the curl multi handle is cleaned up. Some protocols are
sending content like the FTP one, and libcurl try to use the
WRITEFUNCTION or the HEADERFUNCTION. Since structures used in those
callback are freed, we need to use an other callback to which avoid
segfaults.

Libcurl commit d021f2e8a00 fix this issue and should be part of 7.28.2
2012-12-22 19:03:24 -05:00
Pierrick Charron
e3c88d16b4 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Update NEWS file
  Fixed bug #63352 (Can't enable hostname validation when using curl stream wrappers)
  CURL >= 7.28.0 no longer support value 1 for CURLOPT_SSL_VERIFYHOST)
2012-12-21 19:27:51 -05:00
Pierrick Charron
5499c7d201 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Update NEWS file
  Fixed bug #63352 (Can't enable hostname validation when using curl stream wrappers)
  CURL >= 7.28.0 no longer support value 1 for CURLOPT_SSL_VERIFYHOST)

Conflicts:
	ext/curl/interface.c
	ext/curl/tests/bug63363.phpt
2012-12-21 19:24:28 -05:00
Pierrick Charron
af10e698a2 Fixed bug #63352 (Can't enable hostname validation when using curl stream wrappers) 2012-12-21 19:12:43 -05:00
Pierrick Charron
517f800277 CURL >= 7.28.0 no longer support value 1 for CURLOPT_SSL_VERIFYHOST)
Fixed bug #63795
2012-12-21 19:10:55 -05:00
Pierrick Charron
9d235eadc8 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Fix test
2012-12-21 11:49:00 -05:00
Pierrick Charron
763bce0303 Fix test
This test is only valid if libcurl < 7.28.1 since
libcurl removed support for the 1 value in CURLOPT_SSL_VERIFYHOST.
2012-12-21 11:45:59 -05:00
Pierrick Charron
aa9156d7e0 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Fixed bug #55438 (Curlwapper is not sending http header randomly)
2012-12-19 19:46:57 -05:00
Pierrick Charron
66b88c92bb Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fixed bug #55438 (Curlwapper is not sending http header randomly)
2012-12-19 19:44:08 -05:00
Pierrick Charron
c46e1cdcae Fixed bug #55438 (Curlwapper is not sending http header randomly)
Since curl multi is used, it sometime happen that the resource is freed before
the curl multi really execute the query. The patch will store the headers
slist in the curlstream handle and free it only when the stream will be closed
2012-12-19 19:40:29 -05:00
Xinchen Hui
6b0299aafc Merge branch 'PHP-5.4' into PHP-5.5 2012-11-21 12:30:54 +08:00
Xinchen Hui
e54970aaf1 Unused variable copystr
copystr is declared again blow
2012-11-21 12:30:03 +08:00
John Jawed (JJ)
f68f31f121 Notice if CURLOPT_SSL_VERIFYHOST is set to true 2012-10-25 16:00:02 -04:00
John Jawed (JJ)
3b85d09de7 Notice if CURLOPT_SSL_VERIFYHOST is set to true 2012-10-25 12:22:23 -07:00
Xinchen Hui
610c7fbe7b Remove executable permission on phpt 2012-10-10 10:27:49 +08:00
Xinchen Hui
e081c55fb5 Merge branch 'PHP-5.3' into PHP-5.4 2012-10-10 10:31:31 +08:00
Xinchen Hui
4b152e5470 Merge branch 'PHP-5.4' 2012-10-10 10:32:38 +08:00
Pierrick Charron
02bdf4c1fc Merge branch 'PHP-5.4'
* PHP-5.4:
  FD_ZERO file descriptors before calling curl_multi_fdset
2012-09-28 15:22:37 -04:00
Pierrick Charron
a2a8220127 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  FD_ZERO file descriptors before calling curl_multi_fdset
2012-09-28 15:21:33 -04:00
Pierrick Charron
936553d666 FD_ZERO file descriptors before calling curl_multi_fdset
As per curl documentation http://curl.haxx.se/libcurl/c/curl_multi_fdset.html
we need to FD_ZERO file descriptors before calling the curl_multi_fdset function
2012-09-28 15:21:03 -04:00
Pierrick Charron
6c135dff97 Merge branch 'PHP-5.4'
* PHP-5.4:
  Avoid calling select if maxfd returned by curl_multi_fdset is -1
  Fixing NEWS file
2012-09-22 10:19:16 -04:00
Pierrick Charron
c8687ee63b Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Avoid calling select if maxfd returned by curl_multi_fdset is -1
2012-09-22 10:18:44 -04:00
Pierrick Charron
2e8ab65270 Avoid calling select if maxfd returned by curl_multi_fdset is -1
As per libcurl documentation :

When libcurl returns -1 in max_fd, it is because libcurl currently
does something that isn't possible for your application to monitor
with a socket and unfortunately you can then not know exactly when
the current action is completed using select().
2012-09-22 10:15:40 -04:00
Pierrick Charron
70713a27b6 Add CURLOPT_READDATA which was removed by mistake
I did a check and this is the only one which was removed by mistake.
No other constants are available in 5.4 branch and not in master
2012-09-22 10:05:52 -04:00
Xinchen Hui
26ee1cb0b1 Merge branch 'PHP-5.4' 2012-09-18 10:50:24 +08:00
Xinchen Hui
e2d1eecf99 Merge branch 'PHP-5.3' into PHP-5.4 2012-09-18 10:48:16 +08:00
Xinchen Hui
e66a5ce56f Fixed Bug #63103 (ext\curl\tests\bug62839.phpt broken) 2012-09-18 10:46:58 +08:00
Felipe Pena
dd9478e6c8 - Fixed compiler warnings 2012-08-27 08:56:54 -03:00
Pierrick Charron
101fd2d3fd Fix bad version for CURLINFO_CERTINFO
CURLINFO_CERTINFO is available since 7.19.1. The cURL extension
allow to use it since this same version but the internal function
create_certinfo used internally for CURLINFO_CERTINFO usage
is only usable for version greater than 7.19.1 which will cause
problem if the user is using the 7.19.1 cURL version
2012-08-26 09:03:45 -04:00
Pierrick Charron
9ab45d3edb Add missing constants in cURL 2012-08-25 01:21:17 -04:00
Pierrick Charron
e5ff3f18f5 Update bad versions for cURL constants
This was updated according to the cURL symbol tables located here :
http://curl.haxx.se/libcurl/c/symbols-in-versions.html
2012-08-24 18:04:16 -04:00
Pierrick Charron
4c83ecc754 Fixed bug #62912 (CURLINFO_PRIMARY_IP is not exposed)
CURLINFO_PRIMARY_* and CURLINFO_LOCAL_* where available in curl_getinfo
but the constant itself was not exposed to php userland
2012-08-24 10:16:40 -04:00
Pierrick Charron
2118ab9ab4 Merge branch 'PHP-5.4'
* PHP-5.4:
  Fixed bug #62839
2012-08-16 14:51:28 -04:00
Pierrick Charron
8ac61a3e60 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fixed bug #62839
2012-08-16 14:50:06 -04:00
Pierrick Charron
9cf0139460 Fixed bug #62839
curl_copy_handle segfault with CURLOPT_FILE. The refcount was incremented
before the assignement.
2012-08-16 14:48:44 -04:00
Nikita Popov
b5305d267b Fix curl_basic_022.phpt
Some curl versions seem to have issues handling dates beyond
Thu, 31-Dec-2037 23:59:59 GMT (dates after this are just clamped to
MAX_INT).
2012-08-16 19:08:46 +02:00
Pierrick Charron
edece6ec84 Fixed bug #62615 (test ext/curl/tests/curl_escape.phpt failed).
curl_easy_escape was modified in 5.21.2 to not escape "unreserved" characters
so this test will fail on version older than 5.21.2
2012-07-26 19:13:42 -04:00
Xinchen Hui
94a0f8722b Revert "fix test"
This reverts commit cea3f0f363.

seems the behavior is different between certain versions
2012-07-18 22:35:03 +08:00
Xinchen Hui
cea3f0f363 fix test
All input characters that are not a-z, A-Z or 0-9 will be converted to their "URL escaped" version

see http://curl.haxx.se/libcurl/c/curl_escape.html
2012-07-18 18:50:42 +08:00
Xinchen Hui
0e97cdf86b Merge branch 'PHP-5.4'
* PHP-5.4:
  update NEWS
  Fixed bug #62499 (curl_setopt($ch, CURLOPT_COOKIEFILE, "") returns false)
  appease MSVC (doesnt like unary minus of unsigned ints)
  appease MSVC (doesnt like unary minus of unsigned ints)
2012-07-09 08:46:38 +08:00
Xinchen Hui
0398cc22a9 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fixed bug #62499 (curl_setopt($ch, CURLOPT_COOKIEFILE, "") returns false)
  appease MSVC (doesnt like unary minus of unsigned ints)

Conflicts:
	ext/curl/interface.c
2012-07-09 08:38:03 +08:00
Xinchen Hui
c819cf9d6b Fixed bug #62499 (curl_setopt($ch, CURLOPT_COOKIEFILE, "") returns false)
this bc break is caused by the fix for #61948
2012-07-09 08:32:40 +08:00
Your Name
60c4728594 VIM uses spaces as tabs and that doesn't comply with the coding
standard. I think I'd fixed it so it's using real tabs now.
2012-05-27 15:39:45 -07:00
Your Name
0667da8cb4 Removed syslog.h. That should never have been commited. 2012-05-27 01:50:29 -07:00
Your Name
d41fb16a52 Fixed the libcurl version checking for CURLOPT_MAIL_AUTH 2012-05-27 00:21:08 -07:00
Your Name
f75c1ed201 Added support for CURLOPT_MAIL_AUTH 2012-05-27 00:02:53 -07:00
Anatoliy Belsky
c8d8d2442e Merge branch 'PHP-5.4'
* PHP-5.4:
  Fixed bug #62149 Test Bug - ext/curl/tests/bug61948
  Fixed bug #62148 mail_skipif doesn't skip imap tests on Release Build
2012-05-25 10:53:09 +02:00
Anatoliy Belsky
16a592b13a Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fixed bug #62149 Test Bug - ext/curl/tests/bug61948
  Fixed bug #62148 mail_skipif doesn't skip imap tests on Release Build
2012-05-25 10:52:38 +02:00
Matt Ficken
86d2fafded Fixed bug #62149 Test Bug - ext/curl/tests/bug61948 2012-05-25 10:44:59 +02:00
Xinchen Hui
71e7c854b1 Merge branch 'PHP-5.4'
* PHP-5.4:
  correct NEWS
  Fixed bug #61948 (CURLOPT_COOKIEFILE '' raises open_basedir restriction)
  Fixed bug #61948 (CURLOPT_COOKIEFILE '' raises open_basedir restriction)
2012-05-06 00:53:47 +08:00
Xinchen Hui
0747b29bdf Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  correct NEWS
  Fixed bug #61948 (CURLOPT_COOKIEFILE '' raises open_basedir restriction)

Conflicts:
	ext/curl/interface.c
2012-05-06 00:52:51 +08:00
Xinchen Hui
19632ae7dc Fixed bug #61948 (CURLOPT_COOKIEFILE '' raises open_basedir restriction) 2012-05-06 00:50:37 +08:00
Xinchen Hui
035ce937e1 Fixed bug #61948 (CURLOPT_COOKIEFILE '' raises open_basedir restriction) 2012-05-06 00:40:49 +08:00
Christopher Jones
dbefe8d8ea Allow alternative curl output shown in several qa.php.net/reports logs 2012-02-06 23:14:47 +00:00