8 skip_curl_test("7.34.0");
9 if (0 === strpos(http\Client\Curl\Versions\CURL, "7.87.0")) {
10 die("skip SSL bug in libcurl-7.87\n");
12 if (strpos(http\Client\Curl\Versions\SSL, "SecureTransport") !== false)
13 die("skip SecureTransport\n");
19 $client = new http\Client;
21 $client->setSslOptions(array("verifypeer" => true));
22 $client->addSslOptions(array("verifyhost" => 2));
27 ) === $client->getSslOptions()
30 $client->attach($observer = new class implements SplObserver {
33 #[ReturnTypeWillChange]
34 function update(SplSubject $client, $req = null, $progress = null) {
35 $ti = $client->getTransferInfo($req);
36 if (isset($ti->tls_session["internals"])) {
37 foreach ((array) $ti->tls_session["internals"] as $key => $val) {
38 if (!isset($this->data[$key]) || $this->data[$key] < $val) {
39 $this->data[$key] = $val;
46 $client->enqueue($req = new http\Client\Request("GET", "https://twitter.com/"));
49 switch ($client->getTransferInfo($req)->tls_session["backend"]) {
52 if (count($observer->data) < 1) {
53 printf("%s: failed count(ssl.internals) >= 1\n", $client->getTransferInfo($req)->tls_session["backend"]);