Parser: Interface name can be added after parsing

Signed-off-by: Roopesh Chander <roop@roopc.net>
This commit is contained in:
Roopesh Chander
2018-10-27 15:13:02 +05:30
parent 1187657497
commit a8dbeeda6d
@@ -21,15 +21,13 @@ class WgQuickConfigFileParser {
// Based on the parser written by Eric Kuck <eric@bluelinelabs.com> in commit 5ef1656 // Based on the parser written by Eric Kuck <eric@bluelinelabs.com> in commit 5ef1656
static func parse(_ text: String, name: String) throws -> TunnelConfiguration { static func parse(_ text: String) throws -> TunnelConfiguration {
assert(!name.isEmpty)
func collate(interfaceAttributes attributes: [String:String]) -> InterfaceConfiguration? { func collate(interfaceAttributes attributes: [String:String]) -> InterfaceConfiguration? {
// required wg fields // required wg fields
guard let privateKeyString = attributes["PrivateKey"] else { return nil } guard let privateKeyString = attributes["PrivateKey"] else { return nil }
guard let privateKey = Data(base64Encoded: privateKeyString), privateKey.count == 32 else { return nil } guard let privateKey = Data(base64Encoded: privateKeyString), privateKey.count == 32 else { return nil }
var interface = InterfaceConfiguration(name: name, privateKey: privateKey) var interface = InterfaceConfiguration(name: "", privateKey: privateKey)
// other wg fields // other wg fields
if let listenPortString = attributes["ListenPort"] { if let listenPortString = attributes["ListenPort"] {
guard let listenPort = UInt16(listenPortString) else { return nil } guard let listenPort = UInt16(listenPortString) else { return nil }