Procházet zdrojové kódy

Move client plugins to client (psiphon) package

Rod Hynes před 9 roky
rodič
revize
0fc97c32fe
3 změnil soubory, kde provedl 15 přidání a 8 odebrání
  1. 8 4
      psiphon/pluginProtocol.go
  2. 3 2
      psiphon/tunnel.go
  3. 4 2
      psiphon/userAgentPicker.go

+ 8 - 4
psiphon/common/pluginProtocol.go → psiphon/pluginProtocol.go

@@ -17,12 +17,14 @@
  *
  */
 
-package common
+package psiphon
 
 import (
 	"io"
 	"net"
 	"sync/atomic"
+
+	"github.com/Psiphon-Labs/psiphon-tunnel-core/psiphon/common"
 )
 
 var registeredPluginProtocolDialer atomic.Value
@@ -41,8 +43,9 @@ type PluginProtocolNetDialer func(network, addr string) (net.Conn, error)
 // PluginProtocolDialer must add its connection to pendingConns
 // before the initial dial to allow for interruption.
 type PluginProtocolDialer func(
+	config *Config,
 	loggerOutput io.Writer,
-	pendingConns *Conns,
+	pendingConns *common.Conns,
 	netDialer PluginProtocolNetDialer,
 	addr string) (
 	bool, net.Conn, error)
@@ -56,8 +59,9 @@ func RegisterPluginProtocol(protcolDialer PluginProtocolDialer) {
 // DialPluginProtocol uses the current plugin protocol dialer,
 // if set, to connect to addr over the plugin protocol.
 func DialPluginProtocol(
+	config *Config,
 	loggerOutput io.Writer,
-	pendingConns *Conns,
+	pendingConns *common.Conns,
 	netDialer PluginProtocolNetDialer,
 	addr string) (
 	bool, net.Conn, error) {
@@ -65,7 +69,7 @@ func DialPluginProtocol(
 	dialer := registeredPluginProtocolDialer.Load()
 	if dialer != nil {
 		return dialer.(PluginProtocolDialer)(
-			loggerOutput, pendingConns, netDialer, addr)
+			config, loggerOutput, pendingConns, netDialer, addr)
 	}
 	return false, nil, nil
 }

+ 3 - 2
psiphon/tunnel.go

@@ -616,7 +616,7 @@ func dialSsh(
 		}
 	}
 
-	dialCustomHeaders, selectedUserAgent = common.UserAgentIfUnset(config.CustomHeaders)
+	dialCustomHeaders, selectedUserAgent = UserAgentIfUnset(config.CustomHeaders)
 
 	// Use an asynchronous callback to record the resolved IP address when
 	// dialing a domain name. Note that DialMeek doesn't immediately
@@ -705,7 +705,8 @@ func dialSsh(
 		// For some direct connect servers, DialPluginProtocol
 		// will layer on another obfuscation protocol.
 		var dialedPlugin bool
-		dialedPlugin, dialConn, err = common.DialPluginProtocol(
+		dialedPlugin, dialConn, err = DialPluginProtocol(
+			config,
 			NewNoticeWriter("DialPluginProtocol"),
 			pendingConns,
 			func(_, addr string) (net.Conn, error) {

+ 4 - 2
psiphon/common/userAgentPicker.go → psiphon/userAgentPicker.go

@@ -17,11 +17,13 @@
  *
  */
 
-package common
+package psiphon
 
 import (
 	"net/http"
 	"sync/atomic"
+
+	"github.com/Psiphon-Labs/psiphon-tunnel-core/psiphon/common"
 )
 
 var registeredUserAgentPicker atomic.Value
@@ -54,7 +56,7 @@ func UserAgentIfUnset(h http.Header) (http.Header, bool) {
 			}
 		}
 
-		if FlipCoin() {
+		if common.FlipCoin() {
 			dialHeaders.Set("User-Agent", pickUserAgent())
 		} else {
 			dialHeaders.Set("User-Agent", "")