浏览代码

lib/protocol: Eliminate nativeModel on Unix

greatroar 4 年之前
父节点
当前提交
46082f194c

+ 2 - 0
lib/protocol/nativemodel_darwin.go

@@ -9,6 +9,8 @@ package protocol
 
 import "golang.org/x/text/unicode/norm"
 
+func makeNative(m Model) Model { return nativeModel{m} }
+
 type nativeModel struct {
 	Model
 }

+ 1 - 3
lib/protocol/nativemodel_unix.go

@@ -7,6 +7,4 @@ package protocol
 
 // Normal Unixes uses NFC and slashes, which is the wire format.
 
-type nativeModel struct {
-	Model
-}
+func makeNative(m Model) Model { return m }

+ 2 - 0
lib/protocol/nativemodel_windows.go

@@ -13,6 +13,8 @@ import (
 	"strings"
 )
 
+func makeNative(m Model) Model { return nativeModel{m} }
+
 type nativeModel struct {
 	Model
 }

+ 1 - 1
lib/protocol/protocol.go

@@ -231,7 +231,7 @@ var CloseTimeout = 10 * time.Second
 func NewConnection(deviceID DeviceID, reader io.Reader, writer io.Writer, closer io.Closer, receiver Model, connInfo ConnectionInfo, compress Compression, passwords map[string]string) Connection {
 	// Encryption / decryption is first (outermost) before conversion to
 	// native path formats.
-	nm := nativeModel{receiver}
+	nm := makeNative(receiver)
 	em := &encryptedModel{model: nm, folderKeys: newFolderKeyRegistry(passwords)}
 
 	// We do the wire format conversion first (outermost) so that the