diff --git a/README b/README new file mode 100644 index 0000000..9ca0871 --- /dev/null +++ b/README @@ -0,0 +1,7 @@ +anthony service + +federated server anthony + +federated server alek + +alek: client diff --git a/init_query.sh b/init_query.sh new file mode 100644 index 0000000..2e4bc66 --- /dev/null +++ b/init_query.sh @@ -0,0 +1 @@ +curl 10.29.55.48:8000/tunnel?petname=Anthony&path=bob diff --git a/server.py b/server.py index 5b988eb..881d691 100644 --- a/server.py +++ b/server.py @@ -4,20 +4,33 @@ from urllib import parse from requests import post from inbox import Send, Fetch, inbox - petname_to_pubkey = {} pubkey_to_server = {} - +Q = "blah" class HTTPRequestHandler(BaseHTTPRequestHandler): def do_GET(self): - '''Fetch the user inbox''' - - user = parse.parse_qs(parse.urlsplit(self.path).query)['user'][0] + p = parse.parse_qs(parse.urlsplit(self.path).query) + func = parse.urlsplit(self.path).path[1:] + self.send_response(200) self.send_header('Content-type', 'text/plain') self.end_headers() - self.wfile.write(str(Fetch(user)).encode('utf-8')) + + if func == "tunnel": + if "pubkey" in p: + Q = p["path"] + elif "petname" in p: + petname = petname_to_pubkey[p["pubkey"]] + requests.get("{pubkey_to_server[petname]}/tunnel?pubkey={petname}&path={p['path']}") + + elif func == "getinbox": + user = p['user'][0] + self.wfile.write(str(Fetch(user)).encode('utf-8')) + + elif func == "queue": + self.wfile.write(Q.encode('utf-8')) + def do_POST(self): data = self.rfile.read(int(self.headers['Content-Length'])) diff --git a/tunnel_client.py b/tunnel_client.py new file mode 100644 index 0000000..5963491 --- /dev/null +++ b/tunnel_client.py @@ -0,0 +1 @@ +os.system('curl "10.29.55.48:8000/tunnel?dest=anthony"')