Skip to content

Commit 07114ac

Browse files
Yurunsofttwose
authored andcommitted
Fix Swoole\Coroutine\Http\Client->setCookies() bug (swoole#2644)
Separate cookies array
1 parent c83ad17 commit 07114ac

File tree

2 files changed

+51
-1
lines changed

2 files changed

+51
-1
lines changed

swoole_http_client_coro.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1686,7 +1686,7 @@ static PHP_METHOD(swoole_http_client_coro, setCookies)
16861686
zval *cookies;
16871687

16881688
ZEND_PARSE_PARAMETERS_START(1, 1)
1689-
Z_PARAM_ARRAY(cookies)
1689+
Z_PARAM_ARRAY_EX(cookies, 0, 1)
16901690
ZEND_PARSE_PARAMETERS_END_EX(RETURN_FALSE);
16911691

16921692
zend_update_property(swoole_http_client_coro_ce, getThis(), ZEND_STRL("cookies"), cookies);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
--TEST--
2+
swoole_http_client_coro: cookies set bug
3+
--SKIPIF--
4+
<?php
5+
require __DIR__ . '/../include/skipif.inc';
6+
skip_if_in_travis('travis network');
7+
?>
8+
--FILE--
9+
<?php
10+
require __DIR__ . '/../include/bootstrap.php';
11+
12+
function getCookies()
13+
{
14+
$result = [];
15+
var_dump($result); // must be empty array
16+
return $result;
17+
}
18+
19+
go(function () {
20+
$url_info = parse_url('http://httpbin.org/cookies/set/a/1');
21+
$domain = $url_info['host'];
22+
$path = $url_info['path'];
23+
$cli = new Swoole\Coroutine\Http\Client($domain);
24+
$cli->set(['timeout' => 5]);
25+
$cli->setHeaders([
26+
'Host' => $domain,
27+
'User-Agent' => 'Chrome/49.0.2587.3',
28+
'Accept' => 'text/html,application/xhtml+xml,application/xml',
29+
'Accept-Encoding' => 'gzip'
30+
]);
31+
32+
// first request
33+
$cookies = getCookies();
34+
$cli->setCookies($cookies);
35+
36+
Assert::assert($cli->get($path));
37+
38+
// second request
39+
$cookies = getCookies();
40+
$cli->setCookies($cookies);
41+
42+
Assert::assert($cli->get('/cookies'));
43+
});
44+
45+
?>
46+
--EXPECTF--
47+
array(0) {
48+
}
49+
array(0) {
50+
}

0 commit comments

Comments
 (0)