Skip to content

Commit

Permalink
Updating client to be compliant with RFC 2616: case-insensitive headers
Browse files Browse the repository at this point in the history
  • Loading branch information
douglasmiller committed Oct 1, 2020
1 parent ef02b6d commit 9171c56
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 17 deletions.
18 changes: 11 additions & 7 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
language: php
php:
- 7
- 5.6
- 5.5
- 5.4
- 5.3
- hhvm
jobs:
include:
- php: 7
- php: 5.6
- php: 5.5
dist: precise
- php: 5.4
dist: precise
- php: 5.3
dist: precise
- php: hhvm
sudo: false
install:
- composer install --dev
Expand Down
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Recurly PHP Client Library CHANGELOG

## Version 2.5.4 (October 1, 2020)

* Fixed issue with RFC 2616 compliance: headers should be treated as case-insensitive.

## Version 2.5.3 (July 5th, 2016)

* Added support for setting `free_trial_amount` and `free_trial_unit` to `Recurly_Coupon` [#224](https://github.com/recurly/recurly-client-php/pull/224)
Expand Down
6 changes: 4 additions & 2 deletions Tests/bootstrap.php
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,10 @@ protected function responseFromFixture($filename) {
break;
}
preg_match('/([^:]+): (.*)/', $fixture[$i], $matches);
if (sizeof($matches) > 2)
$headers[$matches[1]] = $matches[2];
if (sizeof($matches) > 2) {
$headerKey = strtolower($matches[1]);
$headers[$headerKey] = $matches[2];
}
}

if ($bodyLineNumber < sizeof($fixture))
Expand Down
8 changes: 5 additions & 3 deletions lib/recurly/client.php
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ class Recurly_Client
*/
private $_acceptLanguage = 'en-US';

const API_CLIENT_VERSION = '2.5.3';
const API_CLIENT_VERSION = '2.5.4';
const DEFAULT_ENCODING = 'UTF-8';

const GET = 'GET';
Expand Down Expand Up @@ -187,8 +187,10 @@ private function _getHeaders($headerText)
$returnHeaders = array();
foreach ($headers as &$header) {
preg_match('/([^:]+): (.*)/', $header, $matches);
if (sizeof($matches) > 2)
$returnHeaders[$matches[1]] = $matches[2];
if (sizeof($matches) > 2) {
$headerKey = strtolower($matches[1]);
$returnHeaders[$headerKey] = $matches[2];
}
}
return $returnHeaders;
}
Expand Down
2 changes: 1 addition & 1 deletion lib/recurly/coupon.php
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ public function generate($number) {
$response->assertValidResponse();

$coupons = array();
foreach (new Recurly_UniqueCouponCodeList($response->headers['Location'], $this->_client) as $coupon) {
foreach (new Recurly_UniqueCouponCodeList($response->headers['location'], $this->_client) as $coupon) {
$coupons[] = $coupon;
if (count($coupons) == $number) break;
}
Expand Down
8 changes: 4 additions & 4 deletions lib/recurly/pager.php
Original file line number Diff line number Diff line change
Expand Up @@ -121,8 +121,8 @@ protected static function _setState($params, $state) {
private function _loadLinks($response) {
$this->_links = array();

if (isset($response->headers['Link'])) {
$links = $response->headers['Link'];
if (isset($response->headers['link'])) {
$links = $response->headers['link'];
preg_match_all('/\<([^>]+)\>; rel=\"([^"]+)\"/', $links, $matches);
if (sizeof($matches) > 2) {
for ($i = 0; $i < sizeof($matches[1]); $i++) {
Expand All @@ -137,8 +137,8 @@ private function _loadLinks($response) {
*/
private function _loadRecordCount($response)
{
if (isset($response->headers['X-Records'])) {
$this->_count = intval($response->headers['X-Records']);
if (isset($response->headers['x-records'])) {
$this->_count = intval($response->headers['x-records']);
}
}

Expand Down

0 comments on commit 9171c56

Please sign in to comment.