mirror of
https://github.com/mirror/wget.git
synced 2025-02-05 01:01:00 +08:00
Support conditional GET in testenv server.
* src/exc/server_error.py: Add exception for GET to HEAD fallback. * src/server/http/http_server.py: Do not send body if 304 return code requested for a file.
This commit is contained in:
parent
e397a48f6a
commit
901bc98edf
@ -6,6 +6,12 @@ class ServerError (Exception):
|
|||||||
def __init__(self, err_message):
|
def __init__(self, err_message):
|
||||||
self.err_message = err_message
|
self.err_message = err_message
|
||||||
|
|
||||||
|
class NoBodyServerError (Exception):
|
||||||
|
""" A custom exception which is raised by the test servers.
|
||||||
|
Used if no body should be sent in response. """
|
||||||
|
|
||||||
|
def __init__(self, err_message):
|
||||||
|
self.err_message = err_message
|
||||||
|
|
||||||
class AuthError (ServerError):
|
class AuthError (ServerError):
|
||||||
""" A custom exception raised byt he servers when authentication of the
|
""" A custom exception raised byt he servers when authentication of the
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
from http.server import HTTPServer, BaseHTTPRequestHandler
|
from http.server import HTTPServer, BaseHTTPRequestHandler
|
||||||
from exc.server_error import ServerError, AuthError
|
from exc.server_error import ServerError, AuthError, NoBodyServerError
|
||||||
from socketserver import BaseServer
|
from socketserver import BaseServer
|
||||||
from posixpath import basename, splitext
|
from posixpath import basename, splitext
|
||||||
from base64 import b64encode
|
from base64 import b64encode
|
||||||
@ -201,6 +201,8 @@ class _Handler(BaseHTTPRequestHandler):
|
|||||||
def Response(self, resp_obj):
|
def Response(self, resp_obj):
|
||||||
self.send_response(resp_obj.response_code)
|
self.send_response(resp_obj.response_code)
|
||||||
self.finish_headers()
|
self.finish_headers()
|
||||||
|
if resp_obj.response_code == 304:
|
||||||
|
raise NoBodyServerError("Conditional get falling to head")
|
||||||
raise ServerError("Custom Response code sent.")
|
raise ServerError("Custom Response code sent.")
|
||||||
|
|
||||||
def custom_response(self):
|
def custom_response(self):
|
||||||
@ -401,6 +403,9 @@ class _Handler(BaseHTTPRequestHandler):
|
|||||||
except AuthError as ae:
|
except AuthError as ae:
|
||||||
print(ae.__str__())
|
print(ae.__str__())
|
||||||
return(None, None)
|
return(None, None)
|
||||||
|
except NoBodyServerError as nbse:
|
||||||
|
print(nbse.__str__())
|
||||||
|
return(None, None)
|
||||||
except ServerError as se:
|
except ServerError as se:
|
||||||
print(se.__str__())
|
print(se.__str__())
|
||||||
return(content, None)
|
return(content, None)
|
||||||
|
Loading…
Reference in New Issue
Block a user