Skip to content

Commit

Permalink
Kitura/Kitura#33 Reset message state machine after receiving a final …
Browse files Browse the repository at this point in the history
…continuation frame. Improve test logging.
  • Loading branch information
shmuelk committed Nov 3, 2016
1 parent a1c353d commit d2966cd
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions Sources/KituraWebSocket/WebSocketClient.swift
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,12 @@ public class WebSocketClient {
print("WebSocketClient: Received a \(frame.finalFrame ? "final " : "")\(frame.opCode) frame")
print("WebSocketClient: payload is \(frame.payload.length) bytes long")

var zero: CChar = 0
frame.payload.append(&zero, length: 1)
print("WebSocketClient: payload=\(String(cString: frame.payload.bytes.assumingMemoryBound(to: CChar.self), encoding: .utf8))")
frame.payload.length -= 1
if (frame.payload.length < 127) {
var zero: CChar = 0
frame.payload.append(&zero, length: 1)
print("WebSocketClient: payload=\(String(cString: frame.payload.bytes.assumingMemoryBound(to: CChar.self), encoding: .utf8))")
frame.payload.length -= 1
}

switch frame.opCode {
case .binary:
Expand Down Expand Up @@ -80,6 +82,7 @@ public class WebSocketClient {
} else {
sendMessage(withOpCode: .text, payload: message)
}
messageState = .unknown
}

case .ping:
Expand Down

0 comments on commit d2966cd

Please sign in to comment.