Browse Source

Merge remote-tracking branch 'rod/master'

Adam Pritchard 11 years ago
parent
commit
7e1f69b917
5 changed files with 16 additions and 12 deletions
  1. 1 3
      AndroidApp/README.md
  2. 10 3
      README.md
  3. 2 2
      psiphon/LookupIP_nobind.go
  4. 2 3
      psiphon/TCPConn_windows.go
  5. 1 1
      psiphon/bindToDevice_nobind.go

+ 1 - 3
AndroidApp/README.md

@@ -12,9 +12,7 @@ Status
 --------------------------------------------------------------------------------
 
 * Incomplete
-  * Android app code builds but is not tested.
-  * Go client builds and runs (tested via adb shell).
-  * Go client support for protect sockets (VpnService) must be implemented.
+  * Android app builds and runs but it is not yet stable.
 
 Native libraries
 --------------------------------------------------------------------------------

+ 10 - 3
README.md

@@ -45,13 +45,21 @@ Roadmap
 
 ### TODO (proof-of-concept)
 
-* fail-over to new server on "ssh: rejected: administratively prohibited (open failed)" error?
+* Android app
+  * open home pages
+  * Go binary PIE, or use a Go library and JNI
+  * settings UI (e.g., region selection)
+* reconnection busy loop when no network available (ex. close laptop); should wait for network connectivity
+* sometimes fails to promptly detect loss of connection after device sleep
+* continuity and performance
+  * always-on local proxies
+  * multiplex across simultaneous tunnels
+  * monitor health of tunnels; for example fail-over to new server on "ssh: rejected: administratively prohibited (open failed)" error?
 * PendingConns: is interrupting connection establishment worth the extra code complexity?
 * prefilter entries by capability; don't log "server does not have sufficient capabilities"
 * log noise: "use of closed network connection"
 * log noise(?): 'Unsolicited response received on idle HTTP channel starting with "H"'
 * use ContextError in more places
-* reconnection busy loop when no network available (ex. close laptop)
 
 ### TODO (future)
 
@@ -71,7 +79,6 @@ Roadmap
   * download entire client
   * download core component only
 * try multiple protocols for each server (currently only tries one protocol per server)
-* consider ability to multiplex across multiple tunnel sessions
 * support a config pushed by the network
   * server can push preferred/optimized settings; client should prefer over defaults
   * e.g., etablish worker pool size; multiplex tunnel pool size

+ 2 - 2
psiphon/LookupIP_nobind.go

@@ -1,4 +1,4 @@
-// +build !android !linux
+// +build !android,!linux
 
 /*
  * Copyright (c) 2014, Psiphon Inc.
@@ -28,7 +28,7 @@ import (
 // LookupIP resolves a hostname. When BindToDevice is not required, it
 // simply uses net.LookuIP.
 func LookupIP(host string, config *DialConfig) (addrs []net.IP, err error) {
-	if config.BindToDeviceServiceAddr != "" {
+	if config.BindToDeviceServiceAddress != "" {
 		Fatal("LookupIP with bind not supported on this platform")
 	}
 	return net.LookupIP(host)

+ 2 - 3
psiphon/TCPConn_windows.go

@@ -23,14 +23,13 @@ package psiphon
 
 import (
 	"net"
-	"time"
 )
 
 type interruptibleTCPSocket struct {
 }
 
-func interruptibleTCPDial(addr string, config *TCPConfig) (conn *TCPConn, err error) {
-	if config.BindToDeviceServiceAddr != "" {
+func interruptibleTCPDial(addr string, config *DialConfig) (conn *TCPConn, err error) {
+	if config.BindToDeviceServiceAddress != "" {
 		Fatal("psiphon.interruptibleTCPDial with bind not supported on Windows")
 	}
 	// Note: using standard net.Dial(); interruptible connections not supported on Windows

+ 1 - 1
psiphon/bindToDevice_nobind.go

@@ -1,4 +1,4 @@
-// +build !android !linux
+// +build !android,!linux
 
 /*
  * Copyright (c) 2014, Psiphon Inc.