|
14 | 14 | +----------------------------------------------------------------------+ |
15 | 15 | */ |
16 | 16 |
|
17 | | -/* $Id: 8534d98950d0a91de9879d1b9bcb904b7d5a3cb4 */ |
| 17 | +/* $Id: 51d60adcf7beee32ef614c349fdd4a65ea2f3faf */ |
18 | 18 |
|
19 | 19 | #ifndef SWOOLE_LIBRARY_H |
20 | 20 | #define SWOOLE_LIBRARY_H |
@@ -4402,7 +4402,13 @@ static const char* swoole_library_source_core_curl_handler = |
4402 | 4402 | " $this->readFunction = $value;\n" |
4403 | 4403 | " break;\n" |
4404 | 4404 | " case CURLOPT_WRITEFUNCTION:\n" |
4405 | | - " $this->writeFunction = $value;\n" |
| 4405 | + " if (SWOOLE_VERSION_ID >= 50100) {\n" |
| 4406 | + " $this->clientOptions[Constant::OPTION_WRITE_FUNC] = function ($client, $data) use ($value) {\n" |
| 4407 | + " return $value($this, $data);\n" |
| 4408 | + " };\n" |
| 4409 | + " } else {\n" |
| 4410 | + " $this->writeFunction = $value;\n" |
| 4411 | + " }\n" |
4406 | 4412 | " break;\n" |
4407 | 4413 | " case CURLOPT_NOPROGRESS:\n" |
4408 | 4414 | " $this->noProgress = $value;\n" |
@@ -4639,11 +4645,14 @@ static const char* swoole_library_source_core_curl_handler = |
4639 | 4645 | " $headerContent .= $row;\n" |
4640 | 4646 | " }\n" |
4641 | 4647 | " foreach ($client->headers as $k => $v) {\n" |
4642 | | - " $row = \"{$k}: {$v}\\r\\n\";\n" |
4643 | | - " if ($cb) {\n" |
4644 | | - " $cb($this, $row);\n" |
| 4648 | + " $list = is_array($v) ? $v : [$v];\n" |
| 4649 | + " foreach ($list as $_v) {\n" |
| 4650 | + " $row = \"{$k}: {$_v}\\r\\n\";\n" |
| 4651 | + " if ($cb) {\n" |
| 4652 | + " $cb($this, $row);\n" |
| 4653 | + " }\n" |
| 4654 | + " $headerContent .= $row;\n" |
4645 | 4655 | " }\n" |
4646 | | - " $headerContent .= $row;\n" |
4647 | 4656 | " }\n" |
4648 | 4657 | " $headerContent .= \"\\r\\n\";\n" |
4649 | 4658 | " $this->info['header_size'] = strlen($headerContent);\n" |
|
0 commit comments