diff --git a/ZeroTier One.xcodeproj/project.pbxproj b/ZeroTier One.xcodeproj/project.pbxproj index a8da1c561..43ef22079 100644 --- a/ZeroTier One.xcodeproj/project.pbxproj +++ b/ZeroTier One.xcodeproj/project.pbxproj @@ -14,7 +14,6 @@ 932D47361D1CDC9B004BCFE2 /* AboutViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 932D47341D1CDC9B004BCFE2 /* AboutViewController.swift */; }; 932D47371D1CDC9B004BCFE2 /* AboutViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 932D47351D1CDC9B004BCFE2 /* AboutViewController.xib */; }; 932D473A1D220D63004BCFE2 /* LaunchAtLoginController.m in Sources */ = {isa = PBXBuildFile; fileRef = 932D47391D220D63004BCFE2 /* LaunchAtLoginController.m */; }; - 932D473C1D261ED4004BCFE2 /* NodeStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 932D473B1D261ED4004BCFE2 /* NodeStatus.swift */; }; 9330F1351CEAB4C400687EC8 /* ServiceCom.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9330F1341CEAB4C400687EC8 /* ServiceCom.swift */; }; 9330F1371CEBF87200687EC8 /* Network.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9330F1361CEBF87200687EC8 /* Network.swift */; }; 9330F13B1CF534E500687EC8 /* NetworkInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9330F13A1CF534E500687EC8 /* NetworkInfoCell.swift */; }; @@ -25,6 +24,7 @@ 93326BEB1CE7D9B9005CA2AC /* JoinNetworkViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 93326BE91CE7D9B9005CA2AC /* JoinNetworkViewController.xib */; }; 93326BEE1CE7DA30005CA2AC /* ShowNetworksViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93326BEC1CE7DA30005CA2AC /* ShowNetworksViewController.swift */; }; 93326BEF1CE7DA30005CA2AC /* ShowNetworksViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 93326BED1CE7DA30005CA2AC /* ShowNetworksViewController.xib */; }; + 93D1675F1D54191C00330C99 /* NodeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D1675E1D54191C00330C99 /* NodeStatus.m */; }; 93DAFB271D3F0BEE004D5417 /* about.html in Resources */ = {isa = PBXBuildFile; fileRef = 93DAFB261D3F0BEE004D5417 /* about.html */; }; 93DAFE4B1CFE53CA00547CC4 /* AuthtokenCopy.m in Sources */ = {isa = PBXBuildFile; fileRef = 93DAFE4A1CFE53CA00547CC4 /* AuthtokenCopy.m */; }; /* End PBXBuildFile section */ @@ -38,7 +38,6 @@ 932D47351D1CDC9B004BCFE2 /* AboutViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AboutViewController.xib; sourceTree = ""; }; 932D47381D220D63004BCFE2 /* LaunchAtLoginController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LaunchAtLoginController.h; sourceTree = ""; }; 932D47391D220D63004BCFE2 /* LaunchAtLoginController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LaunchAtLoginController.m; sourceTree = ""; }; - 932D473B1D261ED4004BCFE2 /* NodeStatus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NodeStatus.swift; sourceTree = ""; }; 9330F1341CEAB4C400687EC8 /* ServiceCom.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServiceCom.swift; sourceTree = ""; }; 9330F1361CEBF87200687EC8 /* Network.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Network.swift; sourceTree = ""; }; 9330F13A1CF534E500687EC8 /* NetworkInfoCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkInfoCell.swift; sourceTree = ""; }; @@ -51,6 +50,8 @@ 93326BE91CE7D9B9005CA2AC /* JoinNetworkViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = JoinNetworkViewController.xib; sourceTree = ""; }; 93326BEC1CE7DA30005CA2AC /* ShowNetworksViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShowNetworksViewController.swift; sourceTree = ""; }; 93326BED1CE7DA30005CA2AC /* ShowNetworksViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ShowNetworksViewController.xib; sourceTree = ""; }; + 93D1675D1D54191C00330C99 /* NodeStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NodeStatus.h; sourceTree = ""; }; + 93D1675E1D54191C00330C99 /* NodeStatus.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NodeStatus.m; sourceTree = ""; }; 93DAFB261D3F0BEE004D5417 /* about.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = about.html; sourceTree = ""; }; 93DAFE491CFE53C900547CC4 /* ZeroTier One-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ZeroTier One-Bridging-Header.h"; sourceTree = ""; }; 93DAFE4A1CFE53CA00547CC4 /* AuthtokenCopy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AuthtokenCopy.m; sourceTree = ""; }; @@ -109,8 +110,9 @@ 932D47351D1CDC9B004BCFE2 /* AboutViewController.xib */, 932D47381D220D63004BCFE2 /* LaunchAtLoginController.h */, 932D47391D220D63004BCFE2 /* LaunchAtLoginController.m */, - 932D473B1D261ED4004BCFE2 /* NodeStatus.swift */, 93DAFB261D3F0BEE004D5417 /* about.html */, + 93D1675D1D54191C00330C99 /* NodeStatus.h */, + 93D1675E1D54191C00330C99 /* NodeStatus.m */, ); path = "ZeroTier One"; sourceTree = ""; @@ -196,11 +198,11 @@ 932D47321D1CD861004BCFE2 /* PreferencesViewController.swift in Sources */, 932D473A1D220D63004BCFE2 /* LaunchAtLoginController.m in Sources */, 93326BDC1CE7C816005CA2AC /* AppDelegate.swift in Sources */, - 932D473C1D261ED4004BCFE2 /* NodeStatus.swift in Sources */, 93DAFE4B1CFE53CA00547CC4 /* AuthtokenCopy.m in Sources */, 9330F13B1CF534E500687EC8 /* NetworkInfoCell.swift in Sources */, 93326BEA1CE7D9B9005CA2AC /* JoinNetworkViewController.swift in Sources */, 93326BEE1CE7DA30005CA2AC /* ShowNetworksViewController.swift in Sources */, + 93D1675F1D54191C00330C99 /* NodeStatus.m in Sources */, 932D47361D1CDC9B004BCFE2 /* AboutViewController.swift in Sources */, 9330F1351CEAB4C400687EC8 /* ServiceCom.swift in Sources */, ); diff --git a/ZeroTier One/NodeStatus.h b/ZeroTier One/NodeStatus.h new file mode 100644 index 000000000..074928b41 --- /dev/null +++ b/ZeroTier One/NodeStatus.h @@ -0,0 +1,25 @@ +// +// NodeStatus.h +// ZeroTier One +// +// Created by Grant Limberg on 8/4/16. +// Copyright © 2016 ZeroTier, Inc. All rights reserved. +// + +#import + +@interface NodeStatus : NSObject + +@property (readonly) NSString *address; +@property (readonly) NSString *publicIdentity; +@property (readonly) BOOL online; +@property (readonly) BOOL tcpFallbackActive; +@property (readonly) int versionMajor; +@property (readonly) int versionMinor; +@property (readonly) int versionRev; +@property (readonly) NSString *version; +@property (readonly) UInt64 clock; + +- (id)initWithJsonData:(NSDictionary*)jsonData; + +@end diff --git a/ZeroTier One/NodeStatus.m b/ZeroTier One/NodeStatus.m new file mode 100644 index 000000000..5a3684919 --- /dev/null +++ b/ZeroTier One/NodeStatus.m @@ -0,0 +1,31 @@ +// +// NodeStatus.m +// ZeroTier One +// +// Created by Grant Limberg on 8/4/16. +// Copyright © 2016 ZeroTier, Inc. All rights reserved. +// + +#import "NodeStatus.h" + +@implementation NodeStatus + +- (id)initWithJsonData:(NSDictionary*)jsonData +{ + self = [super init]; + + if(self) { + _address = (NSString*)[jsonData objectForKey:@"address"]; + _publicIdentity = (NSString*)[jsonData objectForKey:@"publicIdentity"]; + _online = [(NSNumber*)[jsonData objectForKey:@"online"] boolValue]; + _tcpFallbackActive = [(NSNumber*)[jsonData objectForKey:@"tcpFallbackActive"] boolValue]; + _versionMajor = [(NSNumber*)[jsonData objectForKey:@"versionMajor"] intValue]; + _versionMinor = [(NSNumber*)[jsonData objectForKey:@"versionMinor"] intValue]; + _versionRev = [(NSNumber*)[jsonData objectForKey:@"versionRev"] intValue]; + _version = (NSString*)[jsonData objectForKey:@"version"]; + _clock = [(NSNumber*)[jsonData objectForKey:@"clock"] unsignedLongLongValue]; + } + + return self; +} +@end diff --git a/ZeroTier One/NodeStatus.swift b/ZeroTier One/NodeStatus.swift deleted file mode 100644 index e2ba0820a..000000000 --- a/ZeroTier One/NodeStatus.swift +++ /dev/null @@ -1,59 +0,0 @@ -// -// NodeStatus.swift -// ZeroTier One -// -// Created by Grant Limberg on 6/30/16. -// Copyright © 2016 ZeroTier, Inc. All rights reserved. -// - -import Cocoa - -class NodeStatus: NSObject { - var address: String = "" - var publicIdentity: String = "" - var online: Bool = false - var tcpFallbackActive: Bool = false - var versionMajor: Int = 0 - var versionMinor: Int = 0 - var versionRev: Int = 0 - var version: String = "" - var clock: UInt64 = 0 - - init(jsonData: [String: AnyObject]) { - if let a = jsonData["address"] as? String { - self.address = a - } - - if let p = jsonData["publicIdentity"] as? String { - self.publicIdentity = p - } - - if let o = jsonData["online"] as? NSNumber { - self.online = o.boolValue - } - - if let t = jsonData["tcpFallbackActive"] as? NSNumber { - self.tcpFallbackActive = t.boolValue - } - - if let v = jsonData["versionMajor"] as? NSNumber { - self.versionMajor = v.integerValue - } - - if let v = jsonData["versionMinor"] as? NSNumber { - self.versionMinor = v.integerValue - } - - if let v = jsonData["versionRev"] as? NSNumber { - self.versionRev = v.integerValue - } - - if let v = jsonData["version"] as? String { - self.version = v - } - - if let c = jsonData["version"] as? NSNumber { - self.clock = c.unsignedLongLongValue - } - } -} diff --git a/ZeroTier One/ZeroTier One-Bridging-Header.h b/ZeroTier One/ZeroTier One-Bridging-Header.h index de44090e2..423afe5cc 100644 --- a/ZeroTier One/ZeroTier One-Bridging-Header.h +++ b/ZeroTier One/ZeroTier One-Bridging-Header.h @@ -4,3 +4,4 @@ #import "AuthtokenCopy.h" #import "LaunchAtLoginController.h" +#import "NodeStatus.h" \ No newline at end of file