Skip to content

Commit 4150253

Browse files
authored
Make ssl.verifyFlag non-optional (#15)
Motivation: `VerifyFlag` already has an enum case `.none`, which might be confused with `Optional.none`. Modifications: - Add `.default` case to `VerifyFlag` to represent user's intention to use DataStax driver's default - Change `ssl.verifyFlag` to non-optional with default value `.default` Resolves #13
1 parent 0538b3b commit 4150253

File tree

1 file changed

+17
-12
lines changed

1 file changed

+17
-12
lines changed

Sources/CassandraClient/Configuration.swift

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -326,12 +326,15 @@ internal final class Cluster {
326326
extension CassandraClient.Configuration {
327327
public struct SSL {
328328
public var trustedCertificates: [String]?
329-
public var verifyFlag: VerifyFlag?
329+
public var verifyFlag: VerifyFlag = .default
330330
public var cert: String?
331331
public var privateKey: (key: String, password: String)?
332332

333333
/// Verification performed on the peer's certificate.
334334
public enum VerifyFlag {
335+
/// Use DataStax driver's default, which is .peerCert
336+
case `default`
337+
335338
/// No verification is performed
336339
case none
337340
/// Certificate is present and valid
@@ -354,18 +357,20 @@ extension CassandraClient.Configuration {
354357
try sslContext.addTrustedCert(cert)
355358
}
356359
}
357-
if let verifyFlag = self.verifyFlag {
358-
switch verifyFlag {
359-
case .none:
360-
sslContext.setVerifyFlags(CASS_SSL_VERIFY_NONE)
361-
case .peerCert:
362-
sslContext.setVerifyFlags(CASS_SSL_VERIFY_PEER_CERT)
363-
case .peerIdentity:
364-
sslContext.setVerifyFlags(CASS_SSL_VERIFY_PEER_IDENTITY)
365-
case .peerIdentityDNS:
366-
sslContext.setVerifyFlags(CASS_SSL_VERIFY_PEER_IDENTITY_DNS)
367-
}
360+
361+
switch self.verifyFlag {
362+
case .none:
363+
sslContext.setVerifyFlags(CASS_SSL_VERIFY_NONE)
364+
case .peerCert:
365+
sslContext.setVerifyFlags(CASS_SSL_VERIFY_PEER_CERT)
366+
case .peerIdentity:
367+
sslContext.setVerifyFlags(CASS_SSL_VERIFY_PEER_IDENTITY)
368+
case .peerIdentityDNS:
369+
sslContext.setVerifyFlags(CASS_SSL_VERIFY_PEER_IDENTITY_DNS)
370+
case .default:
371+
() // use DataStax driver's default
368372
}
373+
369374
if let cert = self.cert {
370375
try sslContext.setCert(cert)
371376
}

0 commit comments

Comments
 (0)