Showing 70 of 607 total issues
File UInt128.swift
has 502 lines of code (exceeds 250 allowed). Consider refactoring. Open
public enum UInt128Errors : Error {
/// Input cannot be converted to a UInt128 value.
case invalidString
}
File DNSMessage.swift
has 321 lines of code (exceeds 250 allowed). Consider refactoring. Open
import Foundation
import CocoaLumberjackSwift
open class DNSMessage {
// var sourceAddress: IPv4Address?
File ProtocolObfuscater.swift
has 304 lines of code (exceeds 250 allowed). Consider refactoring. Open
import Foundation
extension ShadowsocksAdapter {
public struct ProtocolObfuscater {
public class Factory {
Function didRead
has 82 lines of code (exceeds 25 allowed). Consider refactoring. Open
override public func didRead(data: Data, from: RawTCPSocketProtocol) {
super.didRead(data: data, from: from)
switch readStatus {
case .forwarding:
Function multipliedFullWidth
has 75 lines of code (exceeds 25 allowed). Consider refactoring. Open
public func multipliedFullWidth(by other: UInt128) -> (high: UInt128, low: UInt128.Magnitude) {
// Bit mask that facilitates masking the lower 32 bits of a 64 bit UInt.
let lower32 = UInt64(UInt32.max)
// Decompose lhs into an array of 4, 32 significant bit UInt64s.
Function checkReadData
has a Cognitive Complexity of 21 (exceeds 5 allowed). Consider refactoring. Open
fileprivate func checkReadData() {
if pendingReadData.count > 0 {
queueCall {
guard self.reading else {
// no queued read request
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Function spec
has a Cognitive Complexity of 21 (exceeds 5 allowed). Consider refactoring. Open
override func spec() {
let cidrWrongSamples = [
("127.0.0.132", IPRangeError.invalidCIDRFormat),
("13.1242.1241.1/3", IPRangeError.invalidCIDRFormat),
("123.122.33.21/35", IPRangeError.invalidMask),
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Function spec
has 66 lines of code (exceeds 25 allowed). Consider refactoring. Open
override func spec() {
let cidrWrongSamples = [
("127.0.0.132", IPRangeError.invalidCIDRFormat),
("13.1242.1241.1/3", IPRangeError.invalidCIDRFormat),
("123.122.33.21/35", IPRangeError.invalidMask),
Function parseShadowsocksAdapterFactory
has a Cognitive Complexity of 19 (exceeds 5 allowed). Consider refactoring. Open
static func parseShadowsocksAdapterFactory(_ config: Yaml) throws -> ShadowsocksAdapterFactory {
guard let host = config["host"].string else {
throw ConfigurationParserError.adapterParsingError(errorInfo: "Host (host) is required.")
}
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Function parseShadowsocksAdapterFactory
has 60 lines of code (exceeds 25 allowed). Consider refactoring. Open
static func parseShadowsocksAdapterFactory(_ config: Yaml) throws -> ShadowsocksAdapterFactory {
guard let host = config["host"].string else {
throw ConfigurationParserError.adapterParsingError(errorInfo: "Host (host) is required.")
}
Function handleStatus0
has 56 lines of code (exceeds 25 allowed). Consider refactoring. Open
private func handleStatus0() {
status = 1
var outData = Data()
outData.append(contentsOf: [0x03, 0x03])
Function didRead
has a Cognitive Complexity of 15 (exceeds 5 allowed). Consider refactoring. Open
override public func didRead(data: Data, from: RawTCPSocketProtocol) {
super.didRead(data: data, from: from)
switch readStatus {
case .forwarding:
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Function input
has a Cognitive Complexity of 15 (exceeds 5 allowed). Consider refactoring. Open
func input(_ data: Data) throws -> Result {
switch nextAction {
case .readHeader:
let header: HTTPHeader
do {
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Function didRead
has 45 lines of code (exceeds 25 allowed). Consider refactoring. Open
public override func didRead(data: Data, from socket: RawTCPSocketProtocol) {
super.didRead(data: data, from: socket)
switch internalStatus {
case .readingMethodResponse:
Function output
has 41 lines of code (exceeds 25 allowed). Consider refactoring. Open
public override func output(data: Data) {
let fullBlockCount = data.count / DATA_BLOCK_SIZE
var outputSize = fullBlockCount * (DATA_BLOCK_SIZE + 10 + 2)
if data.count > fullBlockCount * DATA_BLOCK_SIZE {
outputSize += data.count - fullBlockCount * DATA_BLOCK_SIZE + 10 + 2
Function readPackets
has a Cognitive Complexity of 13 (exceeds 5 allowed). Consider refactoring. Open
fileprivate func readPackets() {
packetFlow?.readPackets { packets, versions in
QueueFactory.getQueue().async {
for (i, packet) in packets.enumerated() {
for stack in self.stacks {
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Function mask
has a Cognitive Complexity of 13 (exceeds 5 allowed). Consider refactoring. Open
func mask(baseIP: IPAddress) -> (IPAddress, IPAddress)? {
switch (self, baseIP.address) {
case (.IPv4(var m), .IPv4(let addr)):
guard m <= 32 else {
return nil
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Function update
has 37 lines of code (exceeds 25 allowed). Consider refactoring. Open
open func update(_ data: inout Data) {
guard data.count > 0 else {
return
}
Function input
has 37 lines of code (exceeds 25 allowed). Consider refactoring. Open
func input(_ data: Data) throws -> Result {
switch nextAction {
case .readHeader:
let header: HTTPHeader
do {
Function mask
has 36 lines of code (exceeds 25 allowed). Consider refactoring. Open
func mask(baseIP: IPAddress) -> (IPAddress, IPAddress)? {
switch (self, baseIP.address) {
case (.IPv4(var m), .IPv4(let addr)):
guard m <= 32 else {
return nil