Opened 6 years ago

Closed 5 years ago

#5425 closed task (fixed)

Decouple flash proxy facilitator front- and backend

Reported by: dcf Owned by: dcf
Priority: Medium Milestone:
Component: Archived/Flashproxy Version:
Severity: Keywords:
Cc: Actual Points:
Parent ID: Points:
Reviewer: Sponsor:

Description

The flash proxy facilitator uses Python http://docs.python.org/library/basehttpserver.html, which means it's stuck with a substandard web server and a substandard event model. It should be rewritten to have a small web frontend that communicates with a local process that keeps facilitator state.

This will allow us to use a real web server with TLS. The frontend is responsible only for checking the syntax of requests, passing them on to the local facilitator process, reading the result, and passing them back on to the web client. (Maybe the frontend can also be responsible for rate limiting.) I don't think there's anything that needs to block for a long time.

The backend can be written in C and libevent, for example. The web frontend gives it a layer of input sanitization. libevent will allow proper timers for expiring registrations, which is awkward in the BaseHTTPServer model. The backend can save state across restarts. I envision a simple test-based protocol for communication between the front- and backends.

Child Tickets

Change History (1)

comment:1 Changed 5 years ago by dcf

Resolution: fixed
Status: newclosed

This is done as of 0.4. https://gitweb.torproject.org/flashproxy.git/shortlog/refs/tags/0.4

I changed the DNS for tor-facilitator.bamsoftware.com to one using HTTPS with a CGI and separate backend. Hourly tests have been working with wild proxies for half a day or so.

Note: See TracTickets for help on using tickets.