forked from cerc-io/plugeth
24 lines
732 B
Python
24 lines
732 B
Python
|
"""
|
||
|
This implements a dispatcher which listens to localhost:8550, and proxies
|
||
|
requests via qrexec to the service qubes.EthSign on a target domain
|
||
|
"""
|
||
|
|
||
|
import http.server
|
||
|
import socketserver,subprocess
|
||
|
|
||
|
PORT=8550
|
||
|
TARGET_DOMAIN= 'debian-work'
|
||
|
|
||
|
class Dispatcher(http.server.BaseHTTPRequestHandler):
|
||
|
def do_POST(self):
|
||
|
post_data = self.rfile.read(int(self.headers['Content-Length']))
|
||
|
p = subprocess.Popen(['/usr/bin/qrexec-client-vm',TARGET_DOMAIN,'qubes.Clefsign'],stdin=subprocess.PIPE, stdout=subprocess.PIPE)
|
||
|
output = p.communicate(post_data)[0]
|
||
|
self.wfile.write(output)
|
||
|
|
||
|
|
||
|
with socketserver.TCPServer(("",PORT), Dispatcher) as httpd:
|
||
|
print("Serving at port", PORT)
|
||
|
httpd.serve_forever()
|
||
|
|