[tor-dev] Code review for meek

David Fifield david at bamsoftware.com
Fri Apr 18 21:50:08 UTC 2014


There are a lot of components that make up the meek transport. There is
the client and server, and then there is the middle part that runs on
App Engine, and the browser extension that ensures we are speaking HTTPS
the right way. I'm working towards deploying the transport, and to that
end I'd like to encourage code review. This is your chance to get in on
the ground floor of a new transport!

The purpose of review is to find bugs. Yawning found one already in the
server component (the server didn't put a time limit on handling
requests). Even comments such as "it's not clear what this part of the
code is doing" are useful, because those parts of the code can hide
bugs.

The following are, in my opinion, the files most in need of review. Most
of them are under 350 lines, so they shouldn't be too hard to get into.
The languages used are JavaScript for the browser extensions and Go for
everything else. The overall information flow is
	tor ↔ meek-client ↔ extension ↔ reflector ↔ meek-server ↔ tor
Also look at https://trac.torproject.org/projects/tor/wiki/doc/meek#Overview
to get a feel for precisely what packets get sent.

Client plugin (meek-client)
https://gitweb.torproject.org/pluggable-transports/meek.git/blob/HEAD:/meek-client/meek-client.go
https://gitweb.torproject.org/pluggable-transports/meek.git/blob/HEAD:/meek-client/helper.go

Server plugin (meek-server)
https://gitweb.torproject.org/pluggable-transports/meek.git/blob/HEAD:/meek-server/meek-server.go

Reflector (the part that runs on App Engine)
https://gitweb.torproject.org/pluggable-transports/meek.git/blob/HEAD:/appengine/reflect.go

Firefox extension (#11183)
https://gitweb.torproject.org/pluggable-transports/meek.git/blob/HEAD:/firefox/components/main.js
https://gitweb.torproject.org/user/dcf/tor-browser-bundle.git/blob/refs/heads/meek:/Bundle-Data/PTConfigs/meek-http-helper-user.js

Chrome extension (#11393) (Not currently part of the bundle, but you can run it manually.)
https://gitweb.torproject.org/pluggable-transports/meek.git/blob/HEAD:/chrome/app/background.js
https://gitweb.torproject.org/pluggable-transports/meek.git/blob/HEAD:/chrome/extension/background.js

Browser bundle packaging (#10935)
https://gitweb.torproject.org/user/dcf/tor-browser-bundle.git/commitdiff/tbb-3.5.4-meek-1?hp=tbb-3.5.4-build3

David Fifield


More information about the tor-dev mailing list