zhuhaow/NEKit

View on GitHub

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
}

Severity: Major
Found in src/Utils/UInt128.swift - About 1 day to fix

    File DNSMessage.swift has 321 lines of code (exceeds 250 allowed). Consider refactoring.
    Open

    import Foundation
    import CocoaLumberjackSwift
    
    open class DNSMessage {
        //    var sourceAddress: IPv4Address?
    Severity: Minor
    Found in src/IPStack/DNS/DNSMessage.swift - About 3 hrs to fix

      File ProtocolObfuscater.swift has 304 lines of code (exceeds 250 allowed). Consider refactoring.
      Open

      import Foundation
      
      extension ShadowsocksAdapter {
          public struct ProtocolObfuscater {
              public class Factory {
      Severity: Minor
      Found in src/Socket/AdapterSocket/Shadowsocks/ProtocolObfuscater.swift - About 3 hrs to fix

        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:
        Severity: Major
        Found in src/Socket/ProxySocket/SOCKS5ProxySocket.swift - About 3 hrs to fix

          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.
          Severity: Major
          Found in src/Utils/UInt128.swift - About 3 hrs to fix

            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
            Severity: Minor
            Found in src/RawSocket/TUNTCPSocket.swift - About 2 hrs to fix

            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),
            Severity: Minor
            Found in test/Utils/IPRangeSpec.swift - About 2 hrs to fix

            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),
            Severity: Major
            Found in test/Utils/IPRangeSpec.swift - About 2 hrs to fix

              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.")
                      }
              
              
              Severity: Minor
              Found in src/Config/AdapterFactoryParser.swift - About 2 hrs to fix

              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.")
                      }
              
              
              Severity: Major
              Found in src/Config/AdapterFactoryParser.swift - About 2 hrs to fix

                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])
                Severity: Major
                Found in src/Socket/AdapterSocket/Shadowsocks/ProtocolObfuscater.swift - About 2 hrs to fix

                  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:
                  Severity: Minor
                  Found in src/Socket/ProxySocket/SOCKS5ProxySocket.swift - About 1 hr to fix

                  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 {
                  Severity: Minor
                  Found in src/Utils/HTTPStreamScanner.swift - About 1 hr to fix

                  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:
                  Severity: Minor
                  Found in src/Socket/AdapterSocket/SOCKS5Adapter.swift - About 1 hr to fix

                    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
                    Severity: Minor
                    Found in src/Socket/AdapterSocket/Shadowsocks/StreamObfuscater.swift - About 1 hr to fix

                      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 {
                      Severity: Minor
                      Found in src/IPStack/TUNInterface.swift - About 1 hr to fix

                      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
                      Severity: Minor
                      Found in src/Utils/IPMask.swift - About 1 hr to fix

                      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
                              }
                      
                      
                      Severity: Minor
                      Found in src/Crypto/SodiumStreamCrypto.swift - About 1 hr to fix

                        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 {
                        Severity: Minor
                        Found in src/Utils/HTTPStreamScanner.swift - About 1 hr to fix

                          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
                          Severity: Minor
                          Found in src/Utils/IPMask.swift - About 1 hr to fix
                            Severity
                            Category
                            Status
                            Source
                            Language