in Sources/NIOSOCKS/State/ClientStateMachine.swift [65:85]
mutating func receiveBuffer(_ buffer: inout ByteBuffer) throws -> ClientAction {
do {
switch self.state {
case .waitingForAuthenticationMethod(let greeting):
guard let action = try self.handleSelectedAuthenticationMethod(&buffer, greeting: greeting) else {
return .waitForMoreData
}
return action
case .waitingForServerResponse(let request):
guard let action = try self.handleServerResponse(&buffer, request: request) else {
return .waitForMoreData
}
return action
case .active, .error, .inactive, .waitingForClientGreeting, .waitingForClientRequest:
throw SOCKSError.UnexpectedRead()
}
} catch {
self.state = .error
throw error
}
}