Commit graph

54 commits

Author SHA1 Message Date
Serene Han
f024f6b832 create and removing from webrtcRemotes test 2016-03-27 09:08:54 -07:00
Serene Han
b2d7586cb4 use webrtcRemotes len for capacity instead of the chan 2016-03-27 09:08:54 -07:00
Serene Han
22ace32a71 replace webrtcRemote with webrtcRemotes map & indexing, client multiplexing remotes confirmed working (#31) 2016-03-27 09:08:54 -07:00
Serene Han
a8ea5e586e client multiplexing using a webRTCConn channel (#31) 2016-03-27 09:08:54 -07:00
Serene Han
2515ddb1fa begin client sub-readme 2016-03-27 09:08:54 -07:00
Serene Han
451edb6dec begin multiplex snowflake connect loop for #31 2016-03-27 09:08:54 -07:00
Arlo Breault
ed60c74686 Redundant close 2016-03-20 08:48:49 -07:00
Serene Han
b8815627bd defer conn.Close for simplicity and remove unnecessary goroutines, improve error handling (close #12) 2016-03-19 22:36:17 -07:00
Arlo Breault
598e2a3bfb Close SocksConn when WebRTC connection is reset
* This will induce the tor client to establish a new SocksConn,
   which in turn will dial a new WebRTC connection.

   To be improved upon.

 * Part of #12
2016-03-18 21:29:31 -07:00
Serene Han
ba7b59f80e clarify webRTCConn errorChannel and error handling 2016-03-10 17:14:45 -08:00
Serene Han
f91b8faa0a more informative broker error messages (close #26) 2016-03-09 14:37:45 -08:00
Serene Han
960a136c64 retry client offers immediately instead of reset, combine sendOffer and receiveAnswer into exchangeSDP 2016-03-08 20:33:39 -08:00
Serene Han
d61534b3a0 keep readme up to date 2016-03-08 18:23:41 -08:00
Serene Han
91673a4abe fix datachannel remote vs. local closing during client's peerconnection cleanup 2016-03-06 11:40:05 -08:00
Serene Han
9daa6c4b71 multiple arbitrary ice servers can be passed as client flag (close #24) 2016-03-05 17:01:33 -08:00
Serene Han
4e6bba559a provide IceServerList flag as variadic arg to webrtc Configuration (#24) 2016-03-04 13:21:56 -08:00
Serene Han
3ec771df01 prepare IceServerList client flag (#24) 2016-03-03 22:51:10 -08:00
Serene Han
8a8273e972 use const LogTimeInterval 2016-02-28 13:16:12 -08:00
Serene Han
5aae41c901 rendezvous / BrokerChannel tests for client 2016-02-27 14:45:53 -08:00
Serene Han
5edac195f6 move endWebRTC() mostly into webRTCConn.Close() 2016-02-26 14:35:20 -08:00
Serene Han
f3e0abe0e1 only flush datachannel with nonzero bytes, which prevents Tor from marking the SOCKS for close (#12) 2016-02-25 01:24:06 -08:00
Serene Han
d4efe774d1 remove webRTCConn SendLoop and simplify Write without additional channel, as net.Conn is already safe 2016-02-23 17:34:51 -08:00
Serene Han
3a7e0ea620 simplify client handler & dialWebRTC with independent webRTCConn constructor 2016-02-23 17:01:44 -08:00
Serene Han
f86f5b5b07 move webRTCConn into separate file 2016-02-21 22:03:19 -08:00
Serene Han
ef5cb162c0 fix SendData channel syncing 2016-02-21 22:00:51 -08:00
Serene Han
26f5caf404 add ReceiveAnswer test to client 2016-02-20 16:11:45 -08:00
Serene Han
c3ada1b545 Use a channel to safely synchronize datachannel writes, (#12)
clean up ice candidate log message.
still need to debug the copy loop break.
2016-02-19 16:25:08 -08:00
Serene Han
c4215b5614 log traffic bytes only once every few seconds, along with OnMessage & datachannel.Send counts, to prevent flooded logs 2016-02-18 14:15:22 -08:00
Serene Han
a1b7e01c54 Include answer channel as part of the webRTCConn struct (#12) 2016-02-17 20:41:33 -08:00
Serene Han
8a2e7a6041 Use reconnect timeout on client (#12) 2016-02-17 19:53:11 -08:00
Serene Han
f205a0be59 Snowflake client now using a reconnect loop (#12) 2016-02-17 19:19:16 -08:00
Serene Han
eb7eb04ac0 Buffer writes to DataChannel, remove blocking on openChannel (#12) 2016-02-17 18:38:52 -08:00
Serene Han
760dee8a0f prepare snowflake client for buffered datachannel writes, separate out dialWebRTC (#12) 2016-02-17 17:42:00 -08:00
Arlo Breault
9fd471b4c4 Update to go-webrtc HEAD 2016-02-15 12:37:52 -08:00
Serene Han
b04d1f67fb Add context to HTTP handlers, attempt to support localhost Broker.
Seems unlikely to work due to dev_appserver single inflight request limitation
2016-02-12 18:00:36 -08:00
Serene Han
678cf454cd s/MeekChannel/BrokerChannel (close #14) and more informative TODOs 2016-01-31 21:51:21 -08:00
Arlo Breault
133f657928 Test on Travis
* Closes #10
2016-01-21 15:42:16 -08:00
Serene Han
c0b6383f26 Automatic 100% bootstrap using meek-signaling broker works.
Minimum viable webrtc pt now exists.
(close #1)
2016-01-21 14:00:39 -08:00
Serene Han
0cd6852ad0 broker tracking a heap of snowflakes 2016-01-21 10:44:14 -08:00
Serene Han
f2d8a749f4 Also skip creating named pipe if --meek is enabled, and output a more useful waiting message if pipe is expected 2016-01-20 15:51:22 -08:00
Arlo Breault
0abb3bd856 Skip creating the named pipe on the client if we're using http signaling
* Blocks waiting on the open for write (`cat > signal`), at least for me.
2016-01-19 21:44:23 -08:00
Serene Han
5e9b23de9e consolidate RequestInfo into MeekChannel with a simplified Negotiate method 2016-01-19 18:06:40 -08:00
Serene Han
b4a07c4192 add --meek flag to client to toggle the domain fronted rendezvous 2016-01-19 17:21:10 -08:00
Serene Han
e4e068640f begin appengine rendezvous component - domain fronting works,
although it just reflects the offer.
next step is to retrieve browser proxy answer (#1)
2016-01-19 13:24:57 -08:00
David Fifield
e0b36d2f33 Do simple HTTP POST signaling in the client.
This is just enough to be compatible with the HTTP signaling in the
server, and doesn't do domain fronting or anything like that. It's just
an interim replacement for the copy-paste FIFO signaling while we
continue to develop the other pieces that'll be dropped in the middle.
2016-01-18 22:53:22 -08:00
David Fifield
c9eeff6fc2 Remove unused notImplemented error. 2016-01-18 22:39:18 -08:00
David Fifield
a77ae6b771 Use chan struct{} instead of chan bool in openChan.
http://dave.cheney.net/2014/03/25/the-empty-struct
"...there is one important practical use of empty structs, and that is
the chan struct{} construct used for signaling between go routines"
2016-01-18 03:04:39 -08:00
David Fifield
48db4ac132 Log errors from main. 2016-01-17 23:22:23 -08:00
Serene Han
b4934f3979 begin meek-webrtc signalling channel for client (issue #1) 2016-01-15 11:43:15 -08:00
Serene Han
fb304c673c README update and go fmt 2016-01-14 16:40:28 -08:00