
RSN:
o Switch backend to sqlite
X Drop email->bridge mappings after N days
o Bump up epoch length a lot.
o Test DB migration code.
o Drop email persistence.
o Rate-limit email replies.
o Stop looking for "get bridges" in emails.
o Clean email backend periodically
- Write a spec.


Soon:
- List only one bridge per /16 per reply.
o It keeps corrupting its database, causing Roger to delete the old
  database and undermine this whole give-the-same-answer-each-time
  design:
  https://bugs.torproject.org/flyspray/index.php?do=details&id=1098
  [SOLUTION: Switch to sqlite.]
- Keep strings in gettext file, internationalize properly with gettext
o Send back an email even if there are no bridges
o Check dkim headers for sanity.
X Make the 'magic word' for the email configurable, case-tolerant,
  html-tolerant, and punctuation-tolerant
  X for bonus points, make it base64-tolerant
- make all the rest of the email options configurable.
o bug: the email handler gets really upset when the email doesn't have
  a message-id header in it.
o When we hit the end of a period, forget email address history.
X When sending bridges to an email address in the history, check for
  liveness.
. Make bounces go to the right address.
  o Make address sent in "mail from" command configurable.
  - Actually configure it.
- make the bridge list you get back include at least one *non*443
  bridge. turns out sometimes 443 isn't all it's cracked up to be.
X write the ip addresses of the unallocated bridges to a local file,
  so we can give them out manually as needed
  [Instead, we keep them in a sqlite database.  That should be good
  enough to query manually.]

Not now:
- check that incoming IP of email is sane.
- check more email headers for sanity

Later:
- document stuff better
- better area division logic
. make all proxies get stuck in their own area.
o implement slightly nicer logging
- add captchas
o decent template for web interface
o decent template for mail interface
- implement 'help' command
- Reload configuration on sighup; not just bridges.
- Reply with locale support.
- Check host option in http
