mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Server: Log the X-Forwarded-For header in the access log
This commit is contained in:
parent
042df155ea
commit
dcf95a3418
@ -210,6 +210,7 @@ class HTTPRequest(Connection):
|
|||||||
Connection.__init__(self, *args, **kwargs)
|
Connection.__init__(self, *args, **kwargs)
|
||||||
self.max_header_line_size = int(1024 * self.opts.max_header_line_size)
|
self.max_header_line_size = int(1024 * self.opts.max_header_line_size)
|
||||||
self.max_request_body_size = int(1024 * 1024 * self.opts.max_request_body_size)
|
self.max_request_body_size = int(1024 * 1024 * self.opts.max_request_body_size)
|
||||||
|
self.forwarded_for = None
|
||||||
|
|
||||||
def read(self, buf, endpos):
|
def read(self, buf, endpos):
|
||||||
size = endpos - buf.tell()
|
size = endpos - buf.tell()
|
||||||
@ -243,6 +244,7 @@ class HTTPRequest(Connection):
|
|||||||
'Become ready to read an HTTP request'
|
'Become ready to read an HTTP request'
|
||||||
self.method = self.request_line = None
|
self.method = self.request_line = None
|
||||||
self.response_protocol = self.request_protocol = HTTP1
|
self.response_protocol = self.request_protocol = HTTP1
|
||||||
|
self.forwarded_for = None
|
||||||
self.path = self.query = None
|
self.path = self.query = None
|
||||||
self.close_after_response = False
|
self.close_after_response = False
|
||||||
self.header_line_too_long_error_code = httplib.REQUEST_URI_TOO_LONG
|
self.header_line_too_long_error_code = httplib.REQUEST_URI_TOO_LONG
|
||||||
@ -337,6 +339,7 @@ class HTTPRequest(Connection):
|
|||||||
if inheaders.get("Expect", '').lower() == "100-continue":
|
if inheaders.get("Expect", '').lower() == "100-continue":
|
||||||
buf = BytesIO((HTTP11 + " 100 Continue\r\n\r\n").encode('ascii'))
|
buf = BytesIO((HTTP11 + " 100 Continue\r\n\r\n").encode('ascii'))
|
||||||
return self.set_state(WRITE, self.write_continue, buf, inheaders, request_content_length, chunked_read)
|
return self.set_state(WRITE, self.write_continue, buf, inheaders, request_content_length, chunked_read)
|
||||||
|
self.forwarded_for = inheaders.get('X-Forwarded-For')
|
||||||
|
|
||||||
self.read_request_body(inheaders, request_content_length, chunked_read)
|
self.read_request_body(inheaders, request_content_length, chunked_read)
|
||||||
|
|
||||||
|
@ -525,8 +525,11 @@ class HTTPConnection(HTTPRequest):
|
|||||||
return
|
return
|
||||||
if not self.opts.log_not_found and status_code == httplib.NOT_FOUND:
|
if not self.opts.log_not_found and status_code == httplib.NOT_FOUND:
|
||||||
return
|
return
|
||||||
line = '%s port-%s %s %s "%s" %s %s' % (
|
ff = self.forwarded_for
|
||||||
self.remote_addr, self.remote_port, username or '-',
|
if ff:
|
||||||
|
ff = '[%s] ' % ff
|
||||||
|
line = '%s port-%s %s%s %s "%s" %s %s' % (
|
||||||
|
self.remote_addr, self.remote_port, ff or '', username or '-',
|
||||||
fast_now_strftime('%d/%b/%Y:%H:%M:%S %z'),
|
fast_now_strftime('%d/%b/%Y:%H:%M:%S %z'),
|
||||||
force_unicode(self.request_line or '', 'utf-8'),
|
force_unicode(self.request_line or '', 'utf-8'),
|
||||||
status_code, ('-' if response_size is None else response_size))
|
status_code, ('-' if response_size is None else response_size))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user