Skip to content
Snippets Groups Projects
Commit 713faea6 authored by Oleksiy Mishchenko's avatar Oleksiy Mishchenko
Browse files

ETag passing support.

Reviewed-by: imsnah
parent a570e2a8
No related branches found
No related tags found
No related merge requests found
......@@ -61,6 +61,9 @@ class RemoteApiHttpServer(http.HttpServer):
try:
result = fn()
sn = handler.getSerialNumber()
if sn:
req.response_headers[http.HTTP_ETAG] = str(sn)
except:
logging.exception("Error while handling the %s request", method)
raise
......
......@@ -65,6 +65,7 @@ HTTP_1_1 = "HTTP/1.1"
HTTP_GET = "GET"
HTTP_HEAD = "HEAD"
HTTP_ETAG = "ETag"
class SocketClosed(socket.error):
......@@ -372,6 +373,7 @@ class _HttpConnectionHandler(object):
self.response_body = None
self.response_code = HTTP_OK
self.response_content_type = None
self.response_headers = {}
self.should_fork = False
......@@ -484,6 +486,9 @@ class _HttpConnectionHandler(object):
self._SendHeader("Date", self._DateTimeHeader())
self._SendHeader("Content-Type", self.response_content_type)
self._SendHeader("Content-Length", str(len(self.response_body)))
for key, val in self.response_headers.iteritems():
self._SendHeader(key, val)
# We don't support keep-alive at this time
self._SendHeader("Connection", "close")
self.wfile.write("\r\n")
......
......@@ -137,3 +137,10 @@ class R_Generic(object):
self.items = items
self.queryargs = queryargs
self.post_data = post_data
self.sn = None
def getSerialNumber(self):
"""Get Serial Number.
"""
return self.sn
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment