diff options
| author | Cash Costello <cash.costello@gmail.com> | 2012-01-07 12:35:58 -0500 | 
|---|---|---|
| committer | Cash Costello <cash.costello@gmail.com> | 2012-01-07 12:35:58 -0500 | 
| commit | 00fc90b9c67b0e3438ca2307acd5d3e42332a462 (patch) | |
| tree | afe9ea37de5a86a52c5a446cee579c674de1a54b | |
| parent | 1973a28f46d8678c79721aeca63b007f2b20bdcb (diff) | |
| parent | 6b8301f6433ec22b065d734e9fc26d09f723b07d (diff) | |
| download | elgg-00fc90b9c67b0e3438ca2307acd5d3e42332a462.tar.gz elgg-00fc90b9c67b0e3438ca2307acd5d3e42332a462.tar.bz2  | |
Merge pull request #134 from sembrestels/etag2
| -rw-r--r-- | mod/groups/icon.php | 10 | ||||
| -rw-r--r-- | mod/profile/icondirect.php | 9 | 
2 files changed, 18 insertions, 1 deletions
diff --git a/mod/groups/icon.php b/mod/groups/icon.php index f4c0f8010..104da4b41 100644 --- a/mod/groups/icon.php +++ b/mod/groups/icon.php @@ -10,8 +10,15 @@ require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");  $group_guid = get_input('group_guid');  $group = get_entity($group_guid); +// If is the same ETag, content didn't changed. +$etag = $group->icontime . $group_guid; +if (isset($_SERVER['HTTP_IF_NONE_MATCH']) && trim($_SERVER['HTTP_IF_NONE_MATCH']) == $etag) { +	header("HTTP/1.1 304 Not Modified"); +	exit; +} +  $size = strtolower(get_input('size')); -if (!in_array($size,array('large','medium','small','tiny','master','topbar'))) +if (!in_array($size, array('large', 'medium', 'small', 'tiny', 'master', 'topbar')))  	$size = "medium";  $success = false; @@ -37,4 +44,5 @@ header('Expires: ' . date('r',time() + 864000));  header("Pragma: public");  header("Cache-Control: public");  header("Content-Length: " . strlen($contents)); +header("ETag: $etag");  echo $contents; diff --git a/mod/profile/icondirect.php b/mod/profile/icondirect.php index f7188455e..6c3148f2b 100644 --- a/mod/profile/icondirect.php +++ b/mod/profile/icondirect.php @@ -12,8 +12,16 @@ require_once(dirname(dirname(dirname(__FILE__))). '/engine/settings.php');  global $CONFIG;  $join_date = (int)$_GET['joindate']; +$last_cache = (int)$_GET['lastcache']; // icontime  $guid = (int)$_GET['guid']; +// If is the same ETag, content didn't changed. +$etag = $last_cache . $guid; +if (isset($_SERVER['HTTP_IF_NONE_MATCH']) && trim($_SERVER['HTTP_IF_NONE_MATCH']) == $etag) { +	header("HTTP/1.1 304 Not Modified"); +	exit; +} +  $size = strtolower($_GET['size']);  if (!in_array($size, array('large', 'medium', 'small', 'tiny', 'master', 'topbar'))) {  	$size = "medium"; @@ -48,6 +56,7 @@ if ($mysql_dblink) {  				header("Pragma: public");  				header("Cache-Control: public");  				header("Content-Length: " . strlen($contents)); +				header("ETag: $etag");  				// this chunking is done for supposedly better performance  				$split_string = str_split($contents, 1024);  				foreach ($split_string as $chunk) {  | 
