From e70228cff97f6b8b38639ff821558567ff6d84a9 Mon Sep 17 00:00:00 2001 From: Zach Borboa Date: Fri, 18 Sep 2015 01:14:51 -0700 Subject: [PATCH] Fix #248: Close MultiCurl resource only when still open --- src/Curl/Curl.php | 2 +- src/Curl/MultiCurl.php | 4 +++- tests/PHPCurlClass/PHPMultiCurlClassTest.php | 10 ++++++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/Curl/Curl.php b/src/Curl/Curl.php index 19ced4e..2fdf12e 100644 --- a/src/Curl/Curl.php +++ b/src/Curl/Curl.php @@ -4,7 +4,7 @@ namespace Curl; class Curl { - const VERSION = '4.7.0'; + const VERSION = '4.7.1'; const DEFAULT_TIMEOUT = 30; public $curl; diff --git a/src/Curl/MultiCurl.php b/src/Curl/MultiCurl.php index 4737c4d..eeb53f1 100644 --- a/src/Curl/MultiCurl.php +++ b/src/Curl/MultiCurl.php @@ -261,7 +261,9 @@ class MultiCurl $ch->close(); } - curl_multi_close($this->multiCurl); + if (is_resource($this->multiCurl)) { + curl_multi_close($this->multiCurl); + } } /** diff --git a/tests/PHPCurlClass/PHPMultiCurlClassTest.php b/tests/PHPCurlClass/PHPMultiCurlClassTest.php index 796e299..af2d2f5 100644 --- a/tests/PHPCurlClass/PHPMultiCurlClassTest.php +++ b/tests/PHPCurlClass/PHPMultiCurlClassTest.php @@ -1988,4 +1988,14 @@ class MultiCurlTest extends PHPUnit_Framework_TestCase $this->assertTrue(in_array($url, $urls_called, true)); } } + + public function testClose() + { + $multi_curl = new MultiCurl(); + $multi_curl->addGet(Test::TEST_URL); + $multi_curl->start(); + $this->assertTrue(is_resource($multi_curl->multiCurl)); + $multi_curl->close(); + $this->assertFalse(is_resource($multi_curl->multiCurl)); + } }