Known Issues
============
-## libcurl-7.64.1
+Windows:
+ If you keep getting "SSL connect error" when trying to issue
+ requests, try another (newer) libeay32.dll/ssleay32.dll pair.
-Superfluous output of "* Closing connection #" on STDERR.
\ No newline at end of file
+Internals:
+ Inflating raw deflated data causes a re-initialization of the inflate
+ stream where the corresponding window bits are modified to tell libz
+ to not check for zlib header bytes. This is not preventable AFAICS.
+ LFS dependant parts of libcurl are left out because of off_t,
+ respectively off64_t confusion.
+ Persistent handles and "cookiestore" request option do interfere,
+ as libcurl saves the cookies to the file on curl_easy_destroy(),
+ cookies are not saved until the CURL handle will be recycled.
+ Thus one would either need to
+ * run PHP with raphf.persistent_handles.limit = 0
+ * call raphf\persistent_handles_clean() every request
+ * call $client->flushCookies(), which is available
+ since libcurl v7.17.1 and does not work with the
+ procedural API
+ HTTP and Proxy authentication information (username/password) can not be
+ unset with NULL prior libcurl v7.19.6 and separate options for setting
+ username and password--which work--are only available since v7.19.6.
curl_easy_setopt(handler->handle, CURLOPT_COOKIELIST, "FLUSH");
curl_easy_setopt(handler->handle, CURLOPT_SHARE, NULL);
/* see gh issue #84 */
- //if (php_http_curle_get_storage(handler->handle)->cookiestore) {
- //curl_easy_setopt(handler->handle, CURLOPT_COOKIEJAR, NULL);
- //}
+ curl_easy_setopt(handler->handle, CURLOPT_COOKIEJAR, NULL);
}
static void php_http_client_curl_handler_dtor(php_http_client_curl_handler_t *handler)
+++ /dev/null
---TEST--
-client cookie sharing disabled
---SKIPIF--
-<?php
-include "skipif.inc";
-skip_client_test();
-?>
---FILE--
-<?php
-
-include "helper/server.inc";
-include "helper/dump.inc";
-
-echo "Test\n";
-
-server("cookie.inc", function($port) {
- $client = new http\Client(null, "cookies");
- $client->configure(array("share_cookies" => false));
- $request = new http\Client\Request("GET", "http://localhost:$port");
- $client->enqueue($request);
- $client->send();
- while (($r = $client->getResponse())) {
- dump_headers(null, $r->getHeaders());
- }
- /* requeue the previous request */
- $client->requeue($request);
- $request = new http\Client\Request("GET", "http://localhost:$port");
- $client->enqueue($request);
- $client->send();
- while (($r = $client->getResponse())) {
- dump_headers(null, $r->getHeaders());
- }
- $request = new http\Client\Request("GET", "http://localhost:$port");
- $client->enqueue($request);
- $client->send();
- while (($r = $client->getResponse())) {
- dump_headers(null, $r->getHeaders());
- }
- $request = new http\Client\Request("GET", "http://localhost:$port");
- $client->enqueue($request);
- $client->send();
- while (($r = $client->getResponse())) {
- dump_headers(null, $r->getHeaders());
- }
-});
-
-?>
-===DONE===
---EXPECTF--
-Test
-Etag: ""
-Set-Cookie: counter=1;
-X-Original-Transfer-Encoding: chunked
-
-Etag: ""
-Set-Cookie: counter=1;
-X-Original-Transfer-Encoding: chunked
-
-Etag: ""
-Set-Cookie: counter=2;
-X-Original-Transfer-Encoding: chunked
-
-Etag: ""
-Set-Cookie: counter=1;
-X-Original-Transfer-Encoding: chunked
-
-Etag: ""
-Set-Cookie: counter=1;
-X-Original-Transfer-Encoding: chunked
-
-===DONE===
+++ /dev/null
---TEST--
-client cookie sharing enabled
---SKIPIF--
-<?php
-include "skipif.inc";
-skip_client_test();
-?>
---FILE--
-<?php
-
-include "helper/server.inc";
-include "helper/dump.inc";
-
-echo "Test\n";
-
-server("cookie.inc", function($port) {
- $client = new http\Client(null, "cookies");
- $client->configure(array("share_cookies" => true));
- $request = new http\Client\Request("GET", "http://localhost:$port");
- $client->enqueue($request);
- $client->send();
- while (($r = $client->getResponse())) {
- dump_headers(null, $r->getHeaders());
- }
- /* requeue the previous request */
- $client->requeue($request);
- $request = new http\Client\Request("GET", "http://localhost:$port");
- $client->enqueue($request);
- $client->send();
- while (($r = $client->getResponse())) {
- dump_headers(null, $r->getHeaders());
- }
- $request = new http\Client\Request("GET", "http://localhost:$port");
- $client->enqueue($request);
- $client->send();
- while (($r = $client->getResponse())) {
- dump_headers(null, $r->getHeaders());
- }
- $request = new http\Client\Request("GET", "http://localhost:$port");
- $client->enqueue($request);
- $client->send();
- while (($r = $client->getResponse())) {
- dump_headers(null, $r->getHeaders());
- }
-});
-
-?>
-===DONE===
---EXPECTF--
-Test
-Etag: ""
-Set-Cookie: counter=1;
-X-Original-Transfer-Encoding: chunked
-
-Etag: ""
-Set-Cookie: counter=2;
-X-Original-Transfer-Encoding: chunked
-
-Etag: ""
-Set-Cookie: counter=2;
-X-Original-Transfer-Encoding: chunked
-
-Etag: ""
-Set-Cookie: counter=3;
-X-Original-Transfer-Encoding: chunked
-
-Etag: ""
-Set-Cookie: counter=4;
-X-Original-Transfer-Encoding: chunked
-
-===DONE===