Skip to content

Commit 24ea66e

Browse files
committed
Update guard for WebSocket scheme
1 parent e54997e commit 24ea66e

File tree

3 files changed

+9
-6
lines changed

3 files changed

+9
-6
lines changed

Sources/WebSocketKit/WebSocket+Connect.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,10 @@ extension WebSocket {
2020
on eventLoopGroup: EventLoopGroup,
2121
onUpgrade: @Sendable @escaping (WebSocket) -> ()
2222
) -> EventLoopFuture<Void> {
23-
guard let url = URL(string: url) else {
23+
guard
24+
url.hasPrefix("ws://") || url.hasPrefix("wss://"),
25+
let url = URL(string: url)
26+
else {
2427
return eventLoopGroup.any().makeFailedFuture(WebSocketClient.Error.invalidURL)
2528
}
2629
return self.connect(

Tests/WebSocketKitTests/AsyncWebSocketKitTests.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,9 +91,9 @@ final class AsyncWebSocketKitTests: XCTestCase {
9191
return XCTFail("couldn't get port from \(String(reflecting: server.localAddress))")
9292
}
9393
try await WebSocket.connect(to: "ws://localhost:\(port)", on: self.elg) { (ws) async in
94-
ws.onPong {
94+
ws.onPong { webSocket, _ in
9595
do {
96-
try await $0.close()
96+
try await webSocket.close()
9797
} catch {
9898
XCTFail("Failed to close websocket: \(String(reflecting: error))")
9999
}
@@ -118,8 +118,8 @@ final class AsyncWebSocketKitTests: XCTestCase {
118118
}
119119
try await WebSocket.connect(to: "ws://localhost:\(port)", on: self.elg) { (ws) async in
120120
ws.pingInterval = .milliseconds(100)
121-
ws.onPong {
122-
do { try await $0.close() } catch { XCTFail("Failed to close websocket: \(String(reflecting: error))") }
121+
ws.onPong { webSocket, _ in
122+
do { try await webSocket.close() } catch { XCTFail("Failed to close websocket: \(String(reflecting: error))") }
123123
promise.succeed(())
124124
}
125125
}

Tests/WebSocketKitTests/WebSocketKitTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -478,7 +478,7 @@ final class WebSocketKitTests: XCTestCase {
478478
try server.close(mode: .all).wait()
479479
}
480480

481-
func testBadURLInWebsocketConnect() async throws {
481+
func testBadURLInWebsocketConnect() throws {
482482
XCTAssertThrowsError(try WebSocket.connect(to: "%w", on: self.elg, onUpgrade: { _ in }).wait()) {
483483
guard case .invalidURL = $0 as? WebSocketClient.Error else {
484484
return XCTFail("Expected .invalidURL but got \(String(reflecting: $0))")

0 commit comments

Comments
 (0)