tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

preflight-partitioning.py (1264B)


      1 def main(request, response):
      2    headers = [(b"Content-Type", b"text/plain")]
      3    headers.append((b"Access-Control-Allow-Origin", b"*"))
      4 
      5    if request.method == u"GET":
      6        token = request.GET.first(b"token")
      7        value = request.server.stash.take(token)
      8        if value == None:
      9            body = u"0"
     10        else:
     11            if request.GET.first(b"check", None) == b"keep":
     12                request.server.stash.put(token, value)
     13            body = u"1"
     14 
     15        return headers, body
     16 
     17    if request.method == u"OPTIONS":
     18        if not b"Access-Control-Request-Method" in request.headers:
     19            response.set_error(400, u"No Access-Control-Request-Method header")
     20            return u"ERROR: No access-control-request-method in preflight!"
     21 
     22        headers.append((b"Access-Control-Allow-Methods",
     23                        request.headers[b'Access-Control-Request-Method']))
     24 
     25        if b"max_age" in request.GET:
     26            headers.append((b"Access-Control-Max-Age", request.GET[b'max_age']))
     27 
     28        if b"token" in request.GET:
     29            request.server.stash.put(request.GET.first(b"token"), 1)
     30 
     31    headers.append((b"Access-Control-Allow-Headers", b"x-print"))
     32 
     33    body = request.headers.get(b"x-print", b"NO")
     34 
     35    return headers, body