Skip to content

Commit

Permalink
Extract scheme info from server logs
Browse files Browse the repository at this point in the history
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
  • Loading branch information
piotrpio committed Dec 1, 2023
1 parent 6d965e5 commit f95e1f5
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion Tests/NatsSwiftTests/NatsServer.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,17 @@ import XCTest
class NatsServer {
var port: UInt? { return natsServerPort }
var clientURL: String {
let scheme = tlsEnabled ? "tls://" : "nats://"
if let natsServerPort {
return "nats://localhost:\(natsServerPort)"
return "\(scheme)localhost:\(natsServerPort)"
} else {
return ""
}
}

private var process: Process?
private var natsServerPort: UInt?
private var tlsEnabled = false

// TODO: When implementing JetStream, creating and deleting store dir should be handled in start/stop methods
func start(port: Int = -1, cfg: String? = nil, file: StaticString = #file, line: UInt = #line) {
Expand Down Expand Up @@ -47,6 +49,9 @@ class NatsServer {

serverError = self.extracErrorMessage(from: line)
serverPort = self.extractPort(from: line)
if !self.tlsEnabled && self.isTLS(from: line) {
self.tlsEnabled = true
}
if serverPort != nil || serverError != nil || lineCount >= maxLines {
serverError = serverError
semaphore.signal()
Expand All @@ -73,6 +78,7 @@ class NatsServer {
process?.waitUntilExit()
process = nil
natsServerPort = port
tlsEnabled = false
}

private func extractPort(from string: String) -> UInt? {
Expand Down Expand Up @@ -106,6 +112,10 @@ class NatsServer {
return String(message).trimmingCharacters(in: .whitespaces)
}

private func isTLS(from logLine: String) -> Bool {
return logLine.contains("TLS required for client connections")
}

deinit{
stop()
}
Expand Down

0 comments on commit f95e1f5

Please sign in to comment.