def main(request, response): def fail(message): response.content = b"FAIL: " + message response.status = 400 def getState(token): server_state = request.server.stash.take(token) if not server_state: return b"Uninitialized" return server_state def setState(token, state): request.server.stash.put(token, state) def resetState(token): setState(token, b"") response.headers.set(b"Cache-Control", b"no-store") response.headers.set(b"Access-Control-Allow-Origin", request.headers.get(b"origin")) response.headers.set(b"Access-Control-Max-Age", 1) token = request.GET.first(b"token", None) state = getState(token) command = request.GET.first(b"command", None) if command == b"reset": if request.method == u"GET": resetState(token) response.content = b"Server state reset" else: fail(b"Invalid Method.") elif state == b"Uninitialized": if request.method == u"OPTIONS": response.content = b"This request should not be displayed." setState(token, b"Denied") else: fail(state) elif state == b"Denied": if request.method == u"GET" and command == b"complete": resetState(token) response.content = b"Request successfully blocked." else: setState(token, b"Deny Ignored") fail(b"The request was not denied.") elif state == b"Deny Ignored": resetState(token) fail(state) else: resetState(token) fail(b"Unknown Error.")