ソースを参照

bep/1.0 negotiation can't be a hard error.

Jakob Borg 10 年 前
コミット
51c932164f
1 ファイル変更3 行追加4 行削除
  1. 3 4
      cmd/syncthing/connections.go

+ 3 - 4
cmd/syncthing/connections.go

@@ -44,12 +44,11 @@ next:
 		cs := conn.ConnectionState()
 		cs := conn.ConnectionState()
 
 
 		// We should have negotiated the next level protocol "bep/1.0" as part
 		// We should have negotiated the next level protocol "bep/1.0" as part
-		// of the TLS handshake. If we didn't, we're not speaking to another
-		// BEP-speaker so drop the connection.
+		// of the TLS handshake. Unfortunately this can't be a hard error,
+		// because there are implementations out there that don't support
+		// protocol negotiation (iOS for one...).
 		if !cs.NegotiatedProtocolIsMutual || cs.NegotiatedProtocol != bepProtocolName {
 		if !cs.NegotiatedProtocolIsMutual || cs.NegotiatedProtocol != bepProtocolName {
 			l.Infof("Peer %s did not negotiate bep/1.0", conn.RemoteAddr())
 			l.Infof("Peer %s did not negotiate bep/1.0", conn.RemoteAddr())
-			conn.Close()
-			continue
 		}
 		}
 
 
 		// We should have received exactly one certificate from the other
 		// We should have received exactly one certificate from the other