Kitura / Kitura/BlueSSLService
`verifyCallback` not being called
- Dominant language
- Swift
- Stars
- 101
- Forks
- 50
- PR merge metrics
- No merged PRs in 30d
Description
I am using `SSLService` like so:
```swift
let listeningSocket = try Socket.create(family: .inet)
let configuration = ...
let sslService = try SSLService(usingConfiguration: configuration)
sslService?.skipVerification = true
sslService?.verifyCallback = { service in
return (false, "invalid client cert")
}
listeningSocket.delegate = sslService
let newConnectionSocket = try socketConnection.acceptClientConnection()
```
Debugging led me to notice that neither `skipVerification` nor `verifyCallback` is being copied onto the new socket created by the last line.
This diff seems to fix it. I can open a PR but first wanted to make sure that a) I am not missing something and b) this won't have any unintended side effects.
```diff
diff --git a/Sources/SSLService/SSLService.swift b/Sources/SSLService/SSLService.swift
index f64f6fe..644a7ae 100644
--- a/Sources/SSLService/SSLService.swift
+++ b/Sources/SSLService/SSLService.swift
@@ -404,6 +404,8 @@ public class SSLService: SSLServiceDelegate {
private init?(with source: SSLService) throws {
self.configuration = source.configuration
+ self.skipVerification = source.skipVerification
+ self.verifyCallback = source.verifyCallback
// Validate the config...
try self.validate(configuration: source.configuration)
```
Contributor guide
Assessment
This issue has not been assessed yet.