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() | ||
|  | 
 |