@@ -13,7 +13,6 @@ import CFreeTDS
1313import Foundation
1414import os
1515import TableProMSSQLCore
16- import TableProPluginKit
1716
1817private let freetdsLogger = Logger ( subsystem: " com.TablePro " , category: " FreeTDSConnection " )
1918
@@ -167,8 +166,8 @@ nonisolated final class FreeTDSConnection: @unchecked Sendable {
167166 guard let proc = dbopen ( login, serverName) else {
168167 let detail = freetdsGetError ( for: nil )
169168 let msg = detail. isEmpty ? " Check host, port, credentials, and TLS settings " : detail
170- if let sslError = FreeTDSConnection . classifySSLError ( detail) {
171- throw sslError
169+ if let kind = FreeTDSConnection . classifySSLError ( detail) {
170+ throw MSSQLCoreError . tlsHandshakeFailed ( kind : kind , serverMessage : detail )
172171 }
173172 throw MSSQLCoreError . connectionFailed ( " Failed to connect to \( options. host) : \( options. port) : \( msg) " )
174173 }
@@ -532,22 +531,22 @@ nonisolated final class FreeTDSConnection: @unchecked Sendable {
532531 return raw
533532 }
534533
535- static func classifySSLError( _ message: String ) -> SSLHandshakeError ? {
534+ static func classifySSLError( _ message: String ) -> MSSQLTLSFailureKind ? {
536535 let lower = message. lowercased ( )
537536 if lower. contains ( " encryption is required " ) || lower. contains ( " server requires encryption " ) {
538- return . serverRejectedPlaintext( serverMessage : message )
537+ return . serverRejectedPlaintext
539538 }
540539 if lower. contains ( " encryption not supported " ) || lower. contains ( " server does not support encryption " ) {
541- return . serverRequiresPlaintext( serverMessage : message )
540+ return . serverRequiresPlaintext
542541 }
543542 if lower. contains ( " certificate verify failed " ) || lower. contains ( " certificate is not trusted " ) {
544- return . untrustedCertificate( serverMessage : message )
543+ return . untrustedCertificate
545544 }
546545 if lower. contains ( " does not match host " ) {
547- return . hostnameMismatch( serverMessage : message )
546+ return . hostnameMismatch
548547 }
549548 if lower. contains ( " ssl handshake " ) || lower. contains ( " tls handshake " ) || lower. contains ( " openssl error " ) {
550- return . cipherMismatch( serverMessage : message )
549+ return . cipherMismatch
551550 }
552551 return nil
553552 }
0 commit comments