aboutsummaryrefslogtreecommitdiff
path: root/mod/profile
diff options
context:
space:
mode:
authorSem <sembrestels@riseup.net>2012-01-03 16:13:57 +0100
committerCash Costello <cash.costello@gmail.com>2012-01-07 11:58:26 -0500
commitef71ffca08b91f514208adfdd67249dd52fc1aa3 (patch)
tree2e6cb526c1b770a55b72aac2b8e7c3295153704f /mod/profile
parent1973a28f46d8678c79721aeca63b007f2b20bdcb (diff)
downloadelgg-ef71ffca08b91f514208adfdd67249dd52fc1aa3.tar.gz
elgg-ef71ffca08b91f514208adfdd67249dd52fc1aa3.tar.bz2
Refs #4142. Added ETag header support for user avatars.
Diffstat (limited to 'mod/profile')
-rw-r--r--mod/profile/icondirect.php9
1 files changed, 9 insertions, 0 deletions
diff --git a/mod/profile/icondirect.php b/mod/profile/icondirect.php
index f7188455e..1680d8fce 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 (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) {