]> git.ipfire.org Git - thirdparty/wireguard-apple.git/commitdiff
WgQuickConfig: Swift treats \r\n as a single character
authorJason A. Donenfeld <Jason@zx2c4.com>
Fri, 28 Jun 2019 10:26:39 +0000 (12:26 +0200)
committerJason A. Donenfeld <Jason@zx2c4.com>
Fri, 28 Jun 2019 10:26:39 +0000 (12:26 +0200)
let blah = "hello\nworld\ndoes\nthis\nwork"
print(blah.split(separator: "\n"))
//output: ["hello", "world", "does", "this", "work"]

let blah2 = "hello\r\nworld\r\ndoes\r\nthis\r\nwork"
print(blah2.split(separator: "\n"))
//output: ["hello\r\nworld\r\ndoes\r\nthis\r\nwork"]
//expected: ["hello\r", "world\r", "does\r", "this\r", "work\r"]

In blah2, the string splitting fails because swift considers \r\n to be
its own character.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
WireGuard/Shared/Model/TunnelConfiguration+WgQuickConfig.swift

index 6aba0ac72e853d1107bbdcd1c356b9d9eb1d6ba2..5e8f969f3ee620b9e6de92fd15b073e5c007d47a 100644 (file)
@@ -39,7 +39,7 @@ extension TunnelConfiguration {
         var interfaceConfiguration: InterfaceConfiguration?
         var peerConfigurations = [PeerConfiguration]()
 
-        let lines = wgQuickConfig.split(separator: "\n")
+        let lines = wgQuickConfig.split { $0.isNewline }
 
         var parserState = ParserState.notInASection
         var attributes = [String: String]()