1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/content/base/test/bug475156.sjs Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,27 @@ 1.4 +function handleRequest(request, response) 1.5 +{ 1.6 + if (request.queryString == "") 1.7 + { 1.8 + var etag = request.hasHeader("If-Match") ? request.getHeader("If-Match") : null; 1.9 + if (!etag || etag == getState("etag")) 1.10 + { 1.11 + response.setStatusLine(request.httpVersion, 200, "Ok"); 1.12 + response.setHeader("Content-Type", "text/html"); 1.13 + response.setHeader("ETag", getState("etag")); 1.14 + response.setHeader("Cache-control", "max-age=36000"); 1.15 + response.write(getState("etag")); 1.16 + } 1.17 + else if (etag) 1.18 + { 1.19 + response.setStatusLine(request.httpVersion, 412, "Precondition Failed"); 1.20 + } 1.21 + } 1.22 + else 1.23 + { 1.24 + var etag = request.queryString.match(/^etag=(.*)$/); 1.25 + if (etag) 1.26 + setState("etag", etag[1]); 1.27 + 1.28 + response.setStatusLine(request.httpVersion, 204, "No content"); 1.29 + } 1.30 +}