diff --git a/src/Guzzle/Plugin/Cache/CachePlugin.php b/src/Guzzle/Plugin/Cache/CachePlugin.php index d9a2d84a..e16b4225 100644 --- a/src/Guzzle/Plugin/Cache/CachePlugin.php +++ b/src/Guzzle/Plugin/Cache/CachePlugin.php @@ -5,6 +5,7 @@ namespace Guzzle\Plugin\Cache; use Guzzle\Cache\CacheAdapterInterface; use Guzzle\Common\Event; use Guzzle\Common\Exception\InvalidArgumentException; +use Guzzle\Common\Version; use Guzzle\Http\Message\RequestInterface; use Guzzle\Http\Message\Response; use Guzzle\Cache\DoctrineCacheAdapter; @@ -149,6 +150,9 @@ class CachePlugin implements EventSubscriberInterface public function onRequestBeforeSend(Event $event) { $request = $event['request']; + + $request->addHeader('Via', sprintf('%s GuzzleCache/%s', $request->getProtocolVersion(), Version::VERSION)); + if (!$this->canCache->canCacheRequest($request)) { return; } @@ -197,6 +201,8 @@ class CachePlugin implements EventSubscriberInterface } } + $response->addHeader('Via', sprintf('%s GuzzleCache/%s', $request->getProtocolVersion(), Version::VERSION)); + if ($this->debugHeaders) { if ($request->getParams()->get('cache.lookup') === true) { $response->addHeader('X-Cache-Lookup', 'HIT from GuzzleCache'); diff --git a/tests/Guzzle/Tests/Plugin/Cache/CachePluginTest.php b/tests/Guzzle/Tests/Plugin/Cache/CachePluginTest.php index 0decfe66..98ba1a22 100644 --- a/tests/Guzzle/Tests/Plugin/Cache/CachePluginTest.php +++ b/tests/Guzzle/Tests/Plugin/Cache/CachePluginTest.php @@ -3,6 +3,7 @@ namespace Guzzle\Tests\Plugin\Cache; use Guzzle\Common\Event; +use Guzzle\Common\Version; use Guzzle\Cache\DoctrineCacheAdapter; use Guzzle\Http\Message\Request; use Guzzle\Http\Message\Response; @@ -198,6 +199,8 @@ class CachePluginTest extends \Guzzle\Tests\GuzzleTestCase $this->assertEquals($response[2], $request->getResponse()->getBody(true)); $this->assertContains('key=', (string) $request->getResponse()->getHeader('X-Guzzle-Cache')); $this->assertTrue($request->getResponse()->hasHeader('Age')); + $this->assertSame(sprintf('%s GuzzleCache/%s', $request->getProtocolVersion(), Version::VERSION), $request->getHeader('Via', true)); + $this->assertSame(sprintf('%s GuzzleCache/%s', $request->getProtocolVersion(), Version::VERSION), $request->getResponse()->getHeader('Via', true)); $this->assertTrue($request->getParams()->get('cache.lookup')); $this->assertTrue($request->getParams()->get('cache.hit'));