[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [tor-bugs] #25985 [Obfuscation/Snowflake]: Add AMP cache as another domain fronting option with Google



#25985: Add AMP cache as another domain fronting option with Google
-----------------------------------+--------------------------------
 Reporter:  twim                   |          Owner:  (none)
     Type:  project                |         Status:  needs_revision
 Priority:  Medium                 |      Milestone:
Component:  Obfuscation/Snowflake  |        Version:
 Severity:  Normal                 |     Resolution:
 Keywords:                         |  Actual Points:
Parent ID:                         |         Points:
 Reviewer:                         |        Sponsor:
-----------------------------------+--------------------------------
Changes (by dcf):

 * status:  new => needs_revision


Comment:

 Thanks for this.

 I've only taken a quick look. Here is some preliminary feedback.
  * Changing POST to use only status code 200 breaks backward
 compatibility. I'm opposed to this change. At any rate, it would require
 matching changes in /proxy and /proxy-go. But it's better to remain
 compatible.
  * Try to minimize the extent of changes. This ticket shouldn't require
 any changes to `clientOffers`, so I'm skeptical if I see any changes
 there. Don't worry about code duplication. Go ahead and write duplicative
 code. If needed, we can deduplicate in a refactoring. I expect that the
 new feature in the broker will require 1 or 2 new functions and one new
 line in `main`. It's fine if AMP uses JSON and POST does not. If there are
 code architecture changes they need to be in a separate commit from the
 functional changes.
  * I'd prefer not to depend on an external amper, if we can reasonably
 include the necessary code here.
  * `-codec=post` and `-codec=amp` is a nice idea. The `-help` hint should
 list all the possible values.
  *
 [https://github.com/nogoegst/snowflake/commit/ce1e2e24d9bd39ad51c82006213dc7a1f1e4776f
 #diff-f9646f10eb8f3471d08ae2de44a3eaf9R100 BrokerChannel.RoundTrip]: it
 seems like this `switch` would be better done in `main` by setting a
 function pointer on `bc`. (Should fail immediately in `main` if the
 command line is bad.)
  *
 [https://github.com/nogoegst/snowflake/commit/ce1e2e24d9bd39ad51c82006213dc7a1f1e4776f
 #diff-79897051d7aac1f314600a930afebe9aR275 In the "/client/amp/" path],
 I'm not sure if a trailing slash is significant, but all the entries
 should either have a trailing slash or not have one.
  * Is it possible to avoid the vendoring changes, or at least get them in
 separate commits so they're separable from the functional changes?

 The biggest thing for me is to avoid making unnecessary code changes and
 to keep backward compatibility. If you absolutely need a refactoring
 change, you can do it as a separate commit preliminary to making your
 functional changes. It should be of a nature that we would want the
 refactoring even if we weren't going to add the AMP feature. But I feel
 it's less risky (= more likely to get the patch accepted) to add the new
 feature first, in a minimal patch with clearly defined boundaries, and
 then refactor later.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/25985#comment:16>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
_______________________________________________
tor-bugs mailing list
tor-bugs@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs