0001 // 0002 // Based on NSLinux (https://github.com/johnno1962/NSLinux) by johnno1962. 0003 // 0004 0005 import Foundation 0006 0007 extension String { 0008 0009 func split(separator: Character) -> [String] { 0010 return self.characters.split { $0 == separator }.map(String.init) 0011 } 0012 0013 func split
Application.swift:150 let portString = secondArg.split("=")[1]BodyParser.swift:13 let contentTypeTokens = contentTypeHeader.split(";").map { $0.trim() }Multiparser.swift:49 let contentTypeHeaderTokens = contentTypeHeader.split(";").map { $0.trim() }Multiparser.swift:59 let tokens = token.split("=")Multiparser.swift:135 return "\(randomString)\(time.split(".").joinWithSeparator(""))"Multiparser.swift:175 let headerValueParams = header.value.split(";").map { $0.trim() }Multiparser.swift:215 let tokens = line.split(":")PathTree.swift:115 let pathSegments: [String] = (stripQuery(path)).split("/")PathTree.swift:121 if let path = path.split("?").first {Route.swift:74 let routePaths = self.path.split("?")[0].split("/")Route.swift:74 let routePaths = self.path.split("?")[0].split("/")Route.swift:78 let requestPaths = request.path.split("/")SocketParser.swift:22 let statusLineTokens = statusLine.split(" ")SocketParser.swift:36 let cookies = cookieString.split(";")SocketParser.swift:38 let cookieArray = cookie.split("=")SocketParser.swift:70 var urlParts = url.split("?")SocketParser.swift:75 for subQuery in urlParts[1].split("&") {(maxSplit: Int = Int.max, separator: Character) -> [String] { 0014 return self.characters.split(maxSplit) { $0 == separator }.map(String.init) 0015 } 0016 0017 func replace(old: Character, new: Character) -> String { 0018 var buffer = [Character]() 0019 self.characters.forEach { buffer.append($0 == old ? new : $0) } 0020 return String(buffer) 0021 } 0022 0023 func unquote
Multiparser.swift:177 let parameterTokens = token.split(1, separator: "=")SocketParser.swift:76 let tokens = subQuery.split(1, separator: "=")SocketParser.swift:102 let headerTokens = headerLine.split(1, separator: ":")() -> String { 0024 var scalars = self.unicodeScalars; 0025 if scalars.first == "\"" && scalars.last == "\"" && scalars.count >= 2 { 0026 scalars.removeFirst(); 0027 scalars.removeLast(); 0028 return String(scalars) 0029 } 0030 return self 0031 } 0032 0033 func trim
Multiparser.swift:145 return valueFor("content-disposition", parameterName: "name")?.unquote()Multiparser.swift:149 return valueFor("content-disposition", parameterName: "filename")?.unquote()() -> String { 0034 var scalars = self.unicodeScalars 0035 while let _ = unicodeScalarToUInt32Whitespace(scalars.first) { scalars.removeFirst() } 0036 while let _ = unicodeScalarToUInt32Whitespace(scalars.last) { scalars.removeLast() } 0037 return String(scalars) 0038 } 0039 0040 static func fromUInt8
BodyParser.swift:13 let contentTypeTokens = contentTypeHeader.split(";").map { $0.trim() }BodyParser.swift:115 key = cleanString(buffer.trim())BodyParser.swift:119 pairs.append((key: key, value: buffer.trim()))BodyParser.swift:136 pairs.append((key: key, value: buffer.trim()))BodyParser.swift:183 let component = component.trim()Multiparser.swift:49 let contentTypeHeaderTokens = contentTypeHeader.split(";").map { $0.trim() }Multiparser.swift:175 let headerValueParams = header.value.split(";").map { $0.trim() }Multiparser.swift:218 headers[name.lowercaseString] = value.trim()SocketParser.swift:104 requestHeaders[name.lowercaseString] = value.trim()SocketParser.swift:111 return "keep-alive" == value.trim()(array: [UInt8]) -> String { 0041 #if os(Linux) 0042 return String(data: NSData(bytes: array, length: array.count), encoding: NSUTF8StringEncoding) ?? "" 0043 #else 0044 if let s = String(data: NSData(bytes: array, length: array.count), encoding: NSUTF8StringEncoding) { 0045 return s 0046 } 0047 return "" 0048 #endif 0049 } 0050 0051 func removePercentEncoding
StringExtensions.swift:63 output.appendContentsOf(String.fromUInt8(bytesBuffer))StringExtensions.swift:71 output.appendContentsOf(String.fromUInt8(bytesBuffer))StringExtensions.swift:78 output.appendContentsOf(String.fromUInt8(bytesBuffer))() -> String { 0052 var scalars = self.unicodeScalars 0053 var output = "" 0054 var bytesBuffer = [UInt8]() 0055 while let scalar = scalars.popFirst() { 0056 if scalar == "%" { 0057 let first = scalars.popFirst() 0058 let secon = scalars.popFirst() 0059 if let first = unicodeScalarToUInt32Hex(first), secon = unicodeScalarToUInt32Hex(secon) { 0060 bytesBuffer.append(first*16+secon) 0061 } else { 0062 if !bytesBuffer.isEmpty { 0063 output.appendContentsOf(String.fromUInt8(bytesBuffer)) 0064 bytesBuffer.removeAll() 0065 } 0066 if let first = first { output.append(Character(first)) } 0067 if let secon = secon { output.append(Character(secon)) } 0068 } 0069 } else { 0070 if !bytesBuffer.isEmpty { 0071 output.appendContentsOf(String.fromUInt8(bytesBuffer)) 0072 bytesBuffer.removeAll() 0073 } 0074 output.append(Character(scalar)) 0075 } 0076 } 0077 if !bytesBuffer.isEmpty { 0078 output.appendContentsOf(String.fromUInt8(bytesBuffer)) 0079 bytesBuffer.removeAll() 0080 } 0081 return output 0082 } 0083 0084 private func unicodeScalarToUInt32Whitespace
SocketParser.swift:78 query[name.removePercentEncoding()] = value.removePercentEncoding()SocketParser.swift:78 query[name.removePercentEncoding()] = value.removePercentEncoding()(x: UnicodeScalar?) -> UInt8? { 0085 if let x = x { 0086 if x.value >= 9 && x.value <= 13 { 0087 return UInt8(x.value) 0088 } 0089 if x.value == 32 { 0090 return UInt8(x.value) 0091 } 0092 } 0093 return nil 0094 } 0095 0096 private func unicodeScalarToUInt32Hex
StringExtensions.swift:35 while let _ = unicodeScalarToUInt32Whitespace(scalars.first) { scalars.removeFirst() }StringExtensions.swift:36 while let _ = unicodeScalarToUInt32Whitespace(scalars.last) { scalars.removeLast() }(x: UnicodeScalar?) -> UInt8? { 0097 if let x = x { 0098 if x.value >= 48 && x.value <= 57 { 0099 return UInt8(x.value) - 48 0100 } 0101 if x.value >= 97 && x.value <= 102 { 0102 return UInt8(x.value) - 87 0103 } 0104 if x.value >= 65 && x.value <= 70 { 0105 return UInt8(x.value) - 55 0106 } 0107 } 0108 return nil 0109 } 0110 } 0111
StringExtensions.swift:59 if let first = unicodeScalarToUInt32Hex(first), secon = unicodeScalarToUInt32Hex(secon) {StringExtensions.swift:59 if let first = unicodeScalarToUInt32Hex(first), secon = unicodeScalarToUInt32Hex(secon) {