tor-browser

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

query.py (638B)


      1 from typing import Optional
      2 from urllib.parse import urlsplit, parse_qsl
      3 import json
      4 
      5 
      6 def session_established(session):
      7    path: Optional[bytes] = None
      8    for key, value in session.request_headers:
      9        if key == b':path':
     10            path = value
     11    assert path is not None
     12    qs = dict(parse_qsl(urlsplit(path).query))
     13    token = qs[b'token']
     14    if token is None:
     15        raise Exception('token is missing, path = {}'.format(path))
     16 
     17    stream_id = session.create_unidirectional_stream()
     18    data = json.dumps(session.stash.take(key=token) or {}).encode('utf-8')
     19    session.send_stream_data(stream_id, data, end_stream=True)