Commit graph

528 commits

Author SHA1 Message Date
David Fifield
1fa9bc051c Remove SIGINT handling (no longer part of pt-spec). 2017-06-29 15:20:54 -07:00
David Fifield
c3f87281be Add -log option to proxy-go. 2017-06-29 15:11:14 -07:00
Hooman
b7df69fa55 Make Broker run standalone 2017-06-29 13:51:55 -07:00
David Fifield
62f50b29b2 Minimal README for proxy-go. 2017-05-04 01:19:42 -07:00
yinghuocho
4b5794c935 Golang implementation of standalone snowflake proxy 2017-04-24 16:16:02 -07:00
David Fifield
61b604fc46 Merge branch 'letsencrypt' 2017-03-30 19:13:01 -07:00
Serene H
9f2e9a6ecb disable for TBB user agents. closes #37 2017-03-01 19:09:24 -08:00
Serene H
6d2b0ac420 move disable check to snowflakeIsDisabled 2017-03-01 18:51:24 -08:00
Serene H
3fe10f3e7c default to wss and some documentation updates, #40 2017-02-28 22:46:39 -08:00
Arlo Breault
d1ec51bfb9 Remove unused clientAddr from ProxyPair 2017-01-23 12:34:08 -08:00
Arlo Breault
5212eda6b2 Fix logging inactive to ui 2017-01-23 12:01:23 -08:00
David Fifield
a936fc7e9b README and documentation for server. 2017-01-21 14:53:51 -08:00
David Fifield
1f8be86a01 Add a DirCache for certificates under TOR_PT_STATE_LOCATION.
This way, we don't lose state of certificates every time the process is
restarted. There's a possibility, otherwise, that if you have to restart
the server rapidly, you might run into Let's Encrypt rate limits and be
unable to create a cert for a while.
https://godoc.org/rsc.io/letsencrypt#hdr-Persistent_Storage
2017-01-21 14:23:15 -08:00
David Fifield
b0826304a4 Make certManager a pointer and only set it when !disableTLS. 2017-01-21 14:01:43 -08:00
David Fifield
138d2b5391 Use websocket relay at wss://snowflake.bamsoftware.com:443. 2017-01-20 19:17:08 -08:00
David Fifield
1b1fb37afe Add "hostname" args to the bridge descriptor as well. 2017-01-20 19:17:08 -08:00
David Fifield
80acfbd8d8 Explain more in usage. 2017-01-20 19:17:08 -08:00
David Fifield
b86bbd748d Add --acme-email option. 2017-01-20 19:17:08 -08:00
David Fifield
61310600c3 Automatically fetch certificates from Let's Encrypt.
This removes the --tls-cert and --tls-keys options and replaces them
with --acme-hostname and (optional) --acme-email. It uses
https://godoc.org/golang.org/x/crypto/acme/autocert, which is kind of a
successor to https://godoc.org/rsc.io/letsencrypt.

The autocert package only works when the listener runs on port 443. For
that reason, if TOR_PT_SERVER_BINDADDR asks for a port other than 443,
the program will open an *additional* listening port on 443. If there is
an error opening the listener, it is reported through an SMETHOD-ERROR
for the requested address.

The inspiration for this code came from George Tankersley's patch for
meek-server:
https://bugs.torproject.org/18655#comment:8
https://github.com/gtank/meek/tree/letsencrypt
2017-01-20 19:17:08 -08:00
David Fifield
af70d49e96 Add a log messages when failing to open a listener. 2017-01-20 17:56:52 -08:00
David Fifield
42cdd53077 continue, not break, after SmethodError.
This was a bug added in 8378f85952 when
this code was moved out of a switch.
2017-01-20 15:22:11 -08:00
David Fifield
8378f85952 Remove a level of indentation in server. 2017-01-20 10:19:25 -08:00
David Fifield
d8411816c4 Include "tls=no" or "tls=yes" in the bridge descriptor.
Might make this controlled by ServerTransportOptions instead of the
--disable-tls command line option.
2017-01-20 10:13:39 -08:00
David Fifield
aa204af6b1 Make log messages more uniform. 2017-01-20 09:43:33 -08:00
David Fifield
21e27d3b3c Use log.Fatalf instead of log.Printf + os.Exit in server. 2017-01-20 09:39:53 -08:00
David Fifield
11f3bbe3c2 go fmt in server. 2017-01-19 16:42:29 -08:00
David Fifield
15963688c2 Remove support for the base64 WebSocket subprotocol.
This was only needed for very very old Firefox before WebSockets were
properly standardized.
2017-01-18 20:00:59 -08:00
David Fifield
3e78251715 Remove the --port option from WebSocket server.
Recommend ServerTransportListenAddr in torrc instead.
2017-01-18 19:33:07 -08:00
David Fifield
2a9126a158 Simplify signal handling in WebSocket server.
pt-spec no longer talks about SIGINT.
2017-01-18 19:24:02 -08:00
David Fifield
57f72ab4ff Remove unused logFile variable. 2017-01-18 19:20:30 -08:00
Arlo Breault
3516599bae Fix lint complaints 2017-01-18 17:23:18 -08:00
Arlo Breault
61a2702ded Pass on exit code from spawned task so CI fails 2017-01-18 17:20:13 -08:00
Arlo Breault
815f976355 go get websocket in CI 2017-01-18 17:06:01 -08:00
Arlo Breault
2fd691c490 Remove Makefile 2017-01-18 16:58:16 -08:00
Serene H
58d2854bbd implement snowflake-allow cookie check, messaging for when cookies disabled in options page. close #21 2017-01-02 14:43:45 -08:00
Serene H
c6b02fdaca implement options page opt-in button, messaging and styling.
clicking the badge links to options page, and tested no-js mode #21
2017-01-02 14:23:21 -08:00
Serene H
f2bbf80c7d begin options page for proxy #21 2017-01-02 13:41:28 -08:00
Arlo Breault
e295556254 Standalone snowflake
* Start of #30
2016-12-20 10:36:42 -08:00
Arlo Breault
c8c5d56b73 Remove deprecated callbacks 2016-12-20 10:35:08 -08:00
Arlo Breault
1d193a38a3 Use logger instead 2016-12-20 08:21:41 -08:00
Arlo Breault
77c41207ef Drop unmaintained coffee-snowflake.html 2016-12-20 08:21:35 -08:00
Arlo Breault
5cd2a226aa Enable tls websockets on the server
* Code lifted from meek-server
2016-12-19 16:07:02 -08:00
Serene H
7e9066a29d fix broker offer answer test 2016-09-20 08:52:45 -07:00
Serene H
47e1338290 initial client roundtrip estimate on broker 2016-09-20 06:28:11 -07:00
Arlo Breault
6cecd31fd8 Log to TOR_PT_STATE_LOCATION 2016-08-21 18:32:02 -07:00
Serene H
ac9d49b872 ensure closing stale remotes from the client side 2016-08-01 12:17:28 -07:00
Serene H
ea2e052a7d defer snowflake.Reset to fix handler recovery when localhost SOCKS occassionally fails first 2016-07-29 10:59:51 -07:00
Serene H
0ae71952d2 additional proxy timeout check 2016-07-25 15:28:10 -07:00
Serene Han
c1f623948b update README 2016-06-18 15:51:14 -07:00
Serene Han
e93c38f834 client multiplexes AND recovers correctly! (close #31)
- stabilize rest of WebRTCPeer
 - use uid for the datachannel label
 - store a consistent WebRTC config in the dialer
2016-06-15 21:57:56 -07:00