From abcab0c509a9e1278dd9917f98c0a455d3c2dde7 Mon Sep 17 00:00:00 2001 From: Ryan McGrath Date: Wed, 26 Dec 2018 18:34:03 -0800 Subject: [PATCH] Initial, holiday fun --- .gitignore | 25 + four.xcodeproj/project.pbxproj | 360 ++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + four/AppDelegate.swift | 44 + .../AppIcon.appiconset/Contents.json | 58 + four/Assets.xcassets/Contents.json | 6 + four/Icons.swift | 112 ++ four/Info.plist | 32 + four/JSSwitch.swift | 181 ++ four/TLDList.swift | 1551 +++++++++++++++++ four/VPNManager.swift | 103 ++ four/ViewController.swift | 92 + four/four.entitlements | 16 + four/main.swift | 20 + readme.md | 23 + screenshots/connected.png | Bin 0 -> 97358 bytes screenshots/disconnected.png | Bin 0 -> 94603 bytes 18 files changed, 2638 insertions(+) create mode 100644 .gitignore create mode 100644 four.xcodeproj/project.pbxproj create mode 100644 four.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 four.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 four/AppDelegate.swift create mode 100644 four/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 four/Assets.xcassets/Contents.json create mode 100644 four/Icons.swift create mode 100644 four/Info.plist create mode 100644 four/JSSwitch.swift create mode 100644 four/TLDList.swift create mode 100644 four/VPNManager.swift create mode 100644 four/ViewController.swift create mode 100644 four/four.entitlements create mode 100644 four/main.swift create mode 100644 readme.md create mode 100644 screenshots/connected.png create mode 100644 screenshots/disconnected.png diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6f9b233 --- /dev/null +++ b/.gitignore @@ -0,0 +1,25 @@ +# Xcode +# +# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore + +## User settings +xcuserdata/ + +## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9) +*.xcscmblueprint +*.xccheckout + +## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4) +build/ +DerivedData/ +*.moved-aside +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 + +.DS_Store diff --git a/four.xcodeproj/project.pbxproj b/four.xcodeproj/project.pbxproj new file mode 100644 index 0000000..3ad906a --- /dev/null +++ b/four.xcodeproj/project.pbxproj @@ -0,0 +1,360 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 2E7CEEE721CF8E1300BB164D /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E7CEEE621CF8E1300BB164D /* AppDelegate.swift */; }; + 2E7CEEE921CF8E1400BB164D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2E7CEEE821CF8E1400BB164D /* Assets.xcassets */; }; + 2E7CEEF521CF904700BB164D /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E7CEEF421CF904700BB164D /* main.swift */; }; + 2E7CEEF721D0BB6500BB164D /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E7CEEF621D0BB6500BB164D /* ViewController.swift */; }; + 2E7CEEF921D0BEE500BB164D /* Icons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E7CEEF821D0BEE500BB164D /* Icons.swift */; }; + 2E7CEEFE21D0C34C00BB164D /* NetworkExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2E7CEEFD21D0C34C00BB164D /* NetworkExtension.framework */; }; + 2E7CEF0021D0CE7000BB164D /* JSSwitch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E7CEEFF21D0CE7000BB164D /* JSSwitch.swift */; }; + 2E7CEF0221D0D65500BB164D /* VPNManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E7CEF0121D0D65500BB164D /* VPNManager.swift */; }; + 2E7CEF0421D0E72000BB164D /* TLDList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E7CEF0321D0E72000BB164D /* TLDList.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 2E7CEEE321CF8E1300BB164D /* four.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = four.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 2E7CEEE621CF8E1300BB164D /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 2E7CEEE821CF8E1400BB164D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 2E7CEEED21CF8E1400BB164D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 2E7CEEEE21CF8E1400BB164D /* four.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = four.entitlements; sourceTree = ""; }; + 2E7CEEF421CF904700BB164D /* main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = main.swift; sourceTree = ""; }; + 2E7CEEF621D0BB6500BB164D /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + 2E7CEEF821D0BEE500BB164D /* Icons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Icons.swift; sourceTree = ""; }; + 2E7CEEFD21D0C34C00BB164D /* NetworkExtension.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = NetworkExtension.framework; path = System/Library/Frameworks/NetworkExtension.framework; sourceTree = SDKROOT; }; + 2E7CEEFF21D0CE7000BB164D /* JSSwitch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JSSwitch.swift; sourceTree = ""; }; + 2E7CEF0121D0D65500BB164D /* VPNManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VPNManager.swift; sourceTree = ""; }; + 2E7CEF0321D0E72000BB164D /* TLDList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TLDList.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 2E7CEEE021CF8E1300BB164D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 2E7CEEFE21D0C34C00BB164D /* NetworkExtension.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 2E7CEEDA21CF8E1300BB164D = { + isa = PBXGroup; + children = ( + 2E7CEEE521CF8E1300BB164D /* four */, + 2E7CEEE421CF8E1300BB164D /* Products */, + 2E7CEEFA21D0C33200BB164D /* Frameworks */, + ); + sourceTree = ""; + }; + 2E7CEEE421CF8E1300BB164D /* Products */ = { + isa = PBXGroup; + children = ( + 2E7CEEE321CF8E1300BB164D /* four.app */, + ); + name = Products; + sourceTree = ""; + }; + 2E7CEEE521CF8E1300BB164D /* four */ = { + isa = PBXGroup; + children = ( + 2E7CEEE621CF8E1300BB164D /* AppDelegate.swift */, + 2E7CEEE821CF8E1400BB164D /* Assets.xcassets */, + 2E7CEEED21CF8E1400BB164D /* Info.plist */, + 2E7CEEEE21CF8E1400BB164D /* four.entitlements */, + 2E7CEEF421CF904700BB164D /* main.swift */, + 2E7CEEF621D0BB6500BB164D /* ViewController.swift */, + 2E7CEEF821D0BEE500BB164D /* Icons.swift */, + 2E7CEEFF21D0CE7000BB164D /* JSSwitch.swift */, + 2E7CEF0121D0D65500BB164D /* VPNManager.swift */, + 2E7CEF0321D0E72000BB164D /* TLDList.swift */, + ); + path = four; + sourceTree = ""; + }; + 2E7CEEFA21D0C33200BB164D /* Frameworks */ = { + isa = PBXGroup; + children = ( + 2E7CEEFD21D0C34C00BB164D /* NetworkExtension.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 2E7CEEE221CF8E1300BB164D /* four */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2E7CEEF121CF8E1400BB164D /* Build configuration list for PBXNativeTarget "four" */; + buildPhases = ( + 2E7CEEDF21CF8E1300BB164D /* Sources */, + 2E7CEEE021CF8E1300BB164D /* Frameworks */, + 2E7CEEE121CF8E1300BB164D /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = four; + productName = four; + productReference = 2E7CEEE321CF8E1300BB164D /* four.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 2E7CEEDB21CF8E1300BB164D /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1010; + LastUpgradeCheck = 1010; + ORGANIZATIONNAME = "Ryan McGrath"; + TargetAttributes = { + 2E7CEEE221CF8E1300BB164D = { + CreatedOnToolsVersion = 10.1; + SystemCapabilities = { + com.apple.NetworkExtensions = { + enabled = 1; + }; + com.apple.Sandbox = { + enabled = 1; + }; + com.apple.VPNLite = { + enabled = 1; + }; + }; + }; + }; + }; + buildConfigurationList = 2E7CEEDE21CF8E1300BB164D /* Build configuration list for PBXProject "four" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 2E7CEEDA21CF8E1300BB164D; + productRefGroup = 2E7CEEE421CF8E1300BB164D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 2E7CEEE221CF8E1300BB164D /* four */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 2E7CEEE121CF8E1300BB164D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2E7CEEE921CF8E1400BB164D /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 2E7CEEDF21CF8E1300BB164D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2E7CEEF721D0BB6500BB164D /* ViewController.swift in Sources */, + 2E7CEF0021D0CE7000BB164D /* JSSwitch.swift in Sources */, + 2E7CEEF521CF904700BB164D /* main.swift in Sources */, + 2E7CEEF921D0BEE500BB164D /* Icons.swift in Sources */, + 2E7CEF0221D0D65500BB164D /* VPNManager.swift in Sources */, + 2E7CEEE721CF8E1300BB164D /* AppDelegate.swift in Sources */, + 2E7CEF0421D0E72000BB164D /* TLDList.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 2E7CEEEF21CF8E1400BB164D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 2E7CEEF021CF8E1400BB164D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Release; + }; + 2E7CEEF221CF8E1400BB164D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = four/four.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEVELOPMENT_TEAM = 8JNDBG9U79; + INFOPLIST_FILE = four/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.rymc.four; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 4.2; + }; + name = Debug; + }; + 2E7CEEF321CF8E1400BB164D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = four/four.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEVELOPMENT_TEAM = 8JNDBG9U79; + INFOPLIST_FILE = four/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.rymc.four; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 4.2; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 2E7CEEDE21CF8E1300BB164D /* Build configuration list for PBXProject "four" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2E7CEEEF21CF8E1400BB164D /* Debug */, + 2E7CEEF021CF8E1400BB164D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 2E7CEEF121CF8E1400BB164D /* Build configuration list for PBXNativeTarget "four" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2E7CEEF221CF8E1400BB164D /* Debug */, + 2E7CEEF321CF8E1400BB164D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 2E7CEEDB21CF8E1300BB164D /* Project object */; +} diff --git a/four.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/four.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..df4a603 --- /dev/null +++ b/four.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/four.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/four.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/four.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/four/AppDelegate.swift b/four/AppDelegate.swift new file mode 100644 index 0000000..2fa1c86 --- /dev/null +++ b/four/AppDelegate.swift @@ -0,0 +1,44 @@ +// +// AppDelegate.swift +// four +// +// Created by Ryan McGrath on 12/23/18. +// Copyright © 2018 Ryan McGrath. All rights reserved. +// + +import Cocoa + +class AppDelegate: NSObject, NSApplicationDelegate { + lazy var popover: NSPopover = { + return NSPopover() + }() + + lazy var statusItem: NSStatusItem = { + return NSStatusBar.system.statusItem(withLength: NSStatusItem.squareLength) + }() + + func applicationDidFinishLaunching(_ aNotification: Notification) { + popover.behavior = .transient + popover.appearance = NSAppearance.current + popover.contentSize = CGSize(width: 300.0, height: 300.0) + popover.contentViewController = ViewController() + + let statusBarIcon = Icons.statusBarIcon() + statusBarIcon.isTemplate = true + statusItem.button?.image = statusBarIcon + statusItem.button?.alternateImage = statusBarIcon + statusItem.button?.action = #selector(togglePopover) + } + + func applicationWillTerminate(_ aNotification: Notification) { + } + + @objc + func togglePopover(sender: Any?) { + if(popover.isShown) { + popover.performClose(sender) + } else { + popover.show(relativeTo: statusItem.button!.bounds, of: statusItem.button!, preferredEdge: .minY) + } + } +} diff --git a/four/Assets.xcassets/AppIcon.appiconset/Contents.json b/four/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..2db2b1c --- /dev/null +++ b/four/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,58 @@ +{ + "images" : [ + { + "idiom" : "mac", + "size" : "16x16", + "scale" : "1x" + }, + { + "idiom" : "mac", + "size" : "16x16", + "scale" : "2x" + }, + { + "idiom" : "mac", + "size" : "32x32", + "scale" : "1x" + }, + { + "idiom" : "mac", + "size" : "32x32", + "scale" : "2x" + }, + { + "idiom" : "mac", + "size" : "128x128", + "scale" : "1x" + }, + { + "idiom" : "mac", + "size" : "128x128", + "scale" : "2x" + }, + { + "idiom" : "mac", + "size" : "256x256", + "scale" : "1x" + }, + { + "idiom" : "mac", + "size" : "256x256", + "scale" : "2x" + }, + { + "idiom" : "mac", + "size" : "512x512", + "scale" : "1x" + }, + { + "idiom" : "mac", + "size" : "512x512", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/four/Assets.xcassets/Contents.json b/four/Assets.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/four/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/four/Icons.swift b/four/Icons.swift new file mode 100644 index 0000000..f450a66 --- /dev/null +++ b/four/Icons.swift @@ -0,0 +1,112 @@ +// +// Icons.swift +// four +// +// Created by Ryan McGrath on 12/23/18. +// Copyright © 2018 Ryan McGrath. All rights reserved. +// + +import Foundation +import Cocoa + +struct Icons { + public static func statusBarIcon(frame targetFrame: NSRect = NSRect(x: 0, y: 0, width: 32, height: 32), resizing: ResizingBehavior = .aspectFit) -> NSImage { + let resizedFrame: NSRect = resizing.apply(rect: NSRect(x: 0, y: 0, width: 64, height: 64), target: targetFrame) + return NSImage(size: resizedFrame.size, flipped: false, drawingHandler: { (destRect: NSRect) -> Bool in + let context = NSGraphicsContext.current?.cgContext + NSGraphicsContext.saveGraphicsState() + context?.translateBy(x: resizedFrame.minX, y: resizedFrame.minY) + context?.scaleBy(x: resizedFrame.size.width / 64.0, y: resizedFrame.size.height / 64.0) + + //// Color Declarations + let fillColor = NSColor(red: 1, green: 1, blue: 1, alpha: 1) + + //// Bezier Drawing + let bezierPath = NSBezierPath() + bezierPath.move(to: NSPoint(x: 43.62, y: 16)) + bezierPath.line(to: NSPoint(x: 18.53, y: 16)) + bezierPath.line(to: NSPoint(x: 18.52, y: 16)) + bezierPath.curve(to: NSPoint(x: 9.01, y: 25.46), controlPoint1: NSPoint(x: 13.27, y: 16), controlPoint2: NSPoint(x: 9.01, y: 20.24)) + bezierPath.curve(to: NSPoint(x: 15.11, y: 34.29), controlPoint1: NSPoint(x: 9.01, y: 29.38), controlPoint2: NSPoint(x: 11.44, y: 32.89)) + bezierPath.line(to: NSPoint(x: 15.08, y: 34.24)) + bezierPath.curve(to: NSPoint(x: 23.86, y: 42.68), controlPoint1: NSPoint(x: 15.16, y: 38.98), controlPoint2: NSPoint(x: 19.09, y: 42.76)) + bezierPath.curve(to: NSPoint(x: 25.51, y: 42.49), controlPoint1: NSPoint(x: 24.41, y: 42.67), controlPoint2: NSPoint(x: 24.97, y: 42.6)) + bezierPath.line(to: NSPoint(x: 25.56, y: 42.52)) + bezierPath.curve(to: NSPoint(x: 42.59, y: 44.3), controlPoint1: NSPoint(x: 29.77, y: 47.68), controlPoint2: NSPoint(x: 37.39, y: 48.48)) + bezierPath.curve(to: NSPoint(x: 47.03, y: 35.99), controlPoint1: NSPoint(x: 45.14, y: 42.24), controlPoint2: NSPoint(x: 46.74, y: 39.24)) + bezierPath.line(to: NSPoint(x: 47, y: 36.08)) + bezierPath.curve(to: NSPoint(x: 53.43, y: 22.96), controlPoint1: NSPoint(x: 52.42, y: 34.22), controlPoint2: NSPoint(x: 55.3, y: 28.35)) + bezierPath.curve(to: NSPoint(x: 43.62, y: 16), controlPoint1: NSPoint(x: 51.99, y: 18.8), controlPoint2: NSPoint(x: 48.05, y: 16)) + bezierPath.line(to: NSPoint(x: 43.62, y: 16)) + bezierPath.close() + bezierPath.move(to: NSPoint(x: 44.84, y: 33.2)) + bezierPath.line(to: NSPoint(x: 44.83, y: 33.21)) + bezierPath.curve(to: NSPoint(x: 43.67, y: 34.68), controlPoint1: NSPoint(x: 44.19, y: 33.43), controlPoint2: NSPoint(x: 43.73, y: 34)) + bezierPath.line(to: NSPoint(x: 43.59, y: 35.6)) + bezierPath.line(to: NSPoint(x: 43.59, y: 35.6)) + bezierPath.curve(to: NSPoint(x: 35.03, y: 43.54), controlPoint1: NSPoint(x: 43.2, y: 40.03), controlPoint2: NSPoint(x: 39.5, y: 43.46)) + bezierPath.curve(to: NSPoint(x: 27.55, y: 39.51), controlPoint1: NSPoint(x: 31.04, y: 43.58), controlPoint2: NSPoint(x: 28.92, y: 41.23)) + bezierPath.line(to: NSPoint(x: 27.54, y: 39.5)) + bezierPath.curve(to: NSPoint(x: 25.82, y: 38.91), controlPoint1: NSPoint(x: 27.13, y: 38.99), controlPoint2: NSPoint(x: 26.46, y: 38.76)) + bezierPath.line(to: NSPoint(x: 25.83, y: 38.9)) + bezierPath.curve(to: NSPoint(x: 23.49, y: 39.23), controlPoint1: NSPoint(x: 25.07, y: 39.12), controlPoint2: NSPoint(x: 24.29, y: 39.23)) + bezierPath.line(to: NSPoint(x: 23.55, y: 39.23)) + bezierPath.curve(to: NSPoint(x: 18.53, y: 34.16), controlPoint1: NSPoint(x: 20.79, y: 39.14), controlPoint2: NSPoint(x: 18.58, y: 36.91)) + bezierPath.line(to: NSPoint(x: 18.51, y: 33.06)) + bezierPath.line(to: NSPoint(x: 18.51, y: 33.06)) + bezierPath.curve(to: NSPoint(x: 17.43, y: 31.51), controlPoint1: NSPoint(x: 18.5, y: 32.38), controlPoint2: NSPoint(x: 18.07, y: 31.76)) + bezierPath.curve(to: NSPoint(x: 12.48, y: 25.17), controlPoint1: NSPoint(x: 15.18, y: 30.63), controlPoint2: NSPoint(x: 12.33, y: 29.21)) + bezierPath.line(to: NSPoint(x: 12.48, y: 25.13)) + bezierPath.curve(to: NSPoint(x: 18.61, y: 19.44), controlPoint1: NSPoint(x: 12.65, y: 21.9), controlPoint2: NSPoint(x: 15.36, y: 19.39)) + bezierPath.line(to: NSPoint(x: 43.53, y: 19.44)) + bezierPath.line(to: NSPoint(x: 43.57, y: 19.44)) + bezierPath.curve(to: NSPoint(x: 50.54, y: 26.26), controlPoint1: NSPoint(x: 47.37, y: 19.44), controlPoint2: NSPoint(x: 50.47, y: 22.47)) + bezierPath.curve(to: NSPoint(x: 44.84, y: 33.2), controlPoint1: NSPoint(x: 50.57, y: 30.89), controlPoint2: NSPoint(x: 46.96, y: 32.48)) + bezierPath.close() + bezierPath.windingRule = .evenOdd + fillColor.setFill() + bezierPath.fill() + + NSGraphicsContext.restoreGraphicsState() + return true + }) + } + + public enum ResizingBehavior: Int { + case aspectFit /// The content is proportionally resized to fit into the target rectangle. + case aspectFill /// The content is proportionally resized to completely fill the target rectangle. + case stretch /// The content is stretched to match the entire target rectangle. + case center /// The content is centered in the target rectangle, but it is NOT resized. + + public func apply(rect: NSRect, target: NSRect) -> NSRect { + if rect == target || target == NSRect.zero { + return rect + } + + var scales = NSSize.zero + scales.width = abs(target.width / rect.width) + scales.height = abs(target.height / rect.height) + + switch self { + case .aspectFit: + scales.width = min(scales.width, scales.height) + scales.height = scales.width + case .aspectFill: + scales.width = max(scales.width, scales.height) + scales.height = scales.width + case .stretch: + break + case .center: + scales.width = 1 + scales.height = 1 + } + + var result = rect.standardized + result.size.width *= scales.width + result.size.height *= scales.height + result.origin.x = target.minX + (target.width - result.width) / 2 + result.origin.y = target.minY + (target.height - result.height) / 2 + return result + } + } +} diff --git a/four/Info.plist b/four/Info.plist new file mode 100644 index 0000000..a84aba2 --- /dev/null +++ b/four/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSHumanReadableCopyright + Copyright © 2018 Ryan McGrath. All rights reserved. + LSUIElement + + NSPrincipalClass + NSApplication + + diff --git a/four/JSSwitch.swift b/four/JSSwitch.swift new file mode 100644 index 0000000..0efc66c --- /dev/null +++ b/four/JSSwitch.swift @@ -0,0 +1,181 @@ +// +// JSSwitch.swift +// JSSwitch +// +// Created by Julien Sagot on 29/05/16. +// Modified slightly by Ryan McGrath on or about 12/24/2018. +// Copyright © 2016 Julien Sagot. All rights reserved. +// +import AppKit + +public class JSSwitch: NSControl { + // MARK: - Properties + private var pressed = false + private let backgroundLayer = CALayer() + private let knobContainer = CALayer() + private let knobLayer = CALayer() + private let knobShadows = (smallStroke: CALayer(), smallShadow: CALayer(), mediumShadow: CALayer(), bigShadow: CALayer()) + + // MARK: Computed + public override var wantsUpdateLayer: Bool { return true } + public override var intrinsicContentSize: NSSize { + return CGSize(width: 52, height: 32) + } + + private var scaleFactor: CGFloat { + return ceil(frame.size.height / 62) // Hardcoded base height + } + + public var tintColor = NSColor(deviceRed: 76/255, green: 217/255, blue: 100/255, alpha: 1.0) { + didSet { needsDisplay = true } + } + public var on = false { + didSet { needsDisplay = true } + } + + // MARK: - Initializers + public override init(frame: CGRect) { + super.init(frame: frame) + setupLayers() + } + + required public init?(coder: NSCoder) { + super.init(coder: coder) + setupLayers() + } + + // MARK: - Layers Setup + private func setupLayers() { + wantsLayer = true + layer?.masksToBounds = false + layerContentsRedrawPolicy = .onSetNeedsDisplay + + // Background + setupBackgroundLayer() + layer?.addSublayer(backgroundLayer) + + // Knob + setupKnobLayers() + layer?.addSublayer(knobContainer) + } + + // MARK: Background Layer + private func setupBackgroundLayer() { + backgroundLayer.frame = bounds + backgroundLayer.autoresizingMask = [.layerWidthSizable, .layerHeightSizable] + } + + // MARK: Knob + private func setupKnobLayers() { + setupKnobContainerLayer() + setupKnobLayer() + setupKnobLayerShadows() + knobContainer.addSublayer(knobLayer) + knobContainer.insertSublayer(knobShadows.smallStroke, below: knobLayer) + knobContainer.insertSublayer(knobShadows.smallShadow, below: knobShadows.smallStroke) + knobContainer.insertSublayer(knobShadows.mediumShadow, below: knobShadows.smallShadow) + knobContainer.insertSublayer(knobShadows.bigShadow, below: knobShadows.mediumShadow) + } + + private func setupKnobContainerLayer() { + knobContainer.frame = knobFrameForState(on: false, pressed: false) + } + + private func setupKnobLayer() { + knobLayer.autoresizingMask = [.layerWidthSizable] + knobLayer.backgroundColor = NSColor.white.cgColor + knobLayer.frame = knobContainer.bounds + knobLayer.cornerRadius = ceil(knobContainer.bounds.height / 2) + } + + private func setupKnobLayerShadows() { + let effectScale = scaleFactor + // Small Stroke + let smallStroke = knobShadows.smallStroke + smallStroke.frame = knobLayer.frame.insetBy(dx: -1, dy: -1) + smallStroke.autoresizingMask = [.layerWidthSizable] + smallStroke.backgroundColor = NSColor.black.withAlphaComponent(0.06).cgColor + smallStroke.cornerRadius = ceil(smallStroke.bounds.height / 2) + + let smallShadow = knobShadows.smallShadow + smallShadow.frame = knobLayer.frame.insetBy(dx: 2, dy: 2) + smallShadow.autoresizingMask = [.layerWidthSizable] + smallShadow.cornerRadius = ceil(smallShadow.bounds.height / 2) + smallShadow.backgroundColor = NSColor.red.cgColor + smallShadow.shadowColor = NSColor.black.cgColor + smallShadow.shadowOffset = CGSize(width: 0, height: -3 * effectScale) + smallShadow.shadowOpacity = 0.12 + smallShadow.shadowRadius = 2.0 * effectScale + + let mediumShadow = knobShadows.mediumShadow + mediumShadow.frame = smallShadow.frame + mediumShadow.autoresizingMask = [.layerWidthSizable] + mediumShadow.cornerRadius = smallShadow.cornerRadius + mediumShadow.backgroundColor = NSColor.red.cgColor + mediumShadow.shadowColor = NSColor.black.cgColor + mediumShadow.shadowOffset = CGSize(width: 0, height: -9 * effectScale) + mediumShadow.shadowOpacity = 0.16 + mediumShadow.shadowRadius = 6.0 * effectScale + + let bigShadow = knobShadows.bigShadow + bigShadow.frame = smallShadow.frame + bigShadow.autoresizingMask = [.layerWidthSizable] + bigShadow.cornerRadius = smallShadow.cornerRadius + bigShadow.backgroundColor = NSColor.red.cgColor + bigShadow.shadowColor = NSColor.black.cgColor + bigShadow.shadowOffset = CGSize(width: 0, height: -9 * effectScale) + bigShadow.shadowOpacity = 0.06 + bigShadow.shadowRadius = 0.5 * effectScale + } + + // MARK: - Drawing + public override func updateLayer() { + // Background + backgroundLayer.cornerRadius = ceil(bounds.height / 2) + backgroundLayer.borderWidth = on ? ceil(bounds.height) : 3.0 * scaleFactor + backgroundLayer.borderColor = on ? tintColor.cgColor : NSColor.black.withAlphaComponent(0.09).cgColor + + // Knob + knobContainer.frame = knobFrameForState(on: on, pressed: pressed) + knobLayer.cornerRadius = ceil(knobContainer.bounds.height / 2) + } + + // MARK: - Helpers + private func knobFrameForState(on: Bool, pressed: Bool) -> CGRect { + let borderWidth = 3.0 * scaleFactor + var origin: CGPoint + var size: CGSize { + if pressed { + return CGSize( + width: ceil(bounds.width * 0.69) - (2 * borderWidth), + height: bounds.height - (2 * borderWidth) + ) + } + return CGSize(width: bounds.height - (2 * borderWidth), height: bounds.height - (2 * borderWidth)) + } + + if on { + origin = CGPoint(x: bounds.width - size.width - borderWidth, y: borderWidth) + } else { + origin = CGPoint(x: borderWidth, y: borderWidth) + } + return CGRect(origin: origin, size: size) + } + + // MARK: - Events + public override func mouseDown(with theEvent: NSEvent) { + super.mouseDown(with: theEvent) + pressed = true + needsDisplay = true + } + + public override func mouseUp(with theEvent: NSEvent) { + super.mouseUp(with: theEvent) + pressed = false + on = !on + + if(action != nil && target != nil) { + sendAction(action, to: target) + } + } +} diff --git a/four/TLDList.swift b/four/TLDList.swift new file mode 100644 index 0000000..f3a5344 --- /dev/null +++ b/four/TLDList.swift @@ -0,0 +1,1551 @@ +// +// TLDList.swift +// four +// +// Created by Ryan McGrath on 12/24/18. +// Copyright © 2018 Ryan McGrath. All rights reserved. +// + +let TLDS = [ + "*.aaa", + "*.aarp", + "*.abarth", + "*.abb", + "*.abbott", + "*.abbvie", + "*.abc", + "*.able", + "*.abogado", + "*.abudhabi", + "*.ac", + "*.academy", + "*.accenture", + "*.accountant", + "*.accountants", + "*.aco", + "*.active", + "*.actor", + "*.ad", + "*.adac", + "*.ads", + "*.adult", + "*.ae", + "*.aeg", + "*.aero", + "*.aetna", + "*.af", + "*.afamilycompany", + "*.afl", + "*.africa", + "*.ag", + "*.agakhan", + "*.agency", + "*.ai", + "*.aig", + "*.aigo", + "*.airbus", + "*.airforce", + "*.airtel", + "*.akdn", + "*.al", + "*.alfaromeo", + "*.alibaba", + "*.alipay", + "*.allfinanz", + "*.allstate", + "*.ally", + "*.alsace", + "*.alstom", + "*.am", + "*.americanexpress", + "*.americanfamily", + "*.amex", + "*.amfam", + "*.amica", + "*.amsterdam", + "*.analytics", + "*.android", + "*.anquan", + "*.anz", + "*.ao", + "*.aol", + "*.apartments", + "*.app", + "*.apple", + "*.aq", + "*.aquarelle", + "*.ar", + "*.arab", + "*.aramco", + "*.archi", + "*.army", + "*.arpa", + "*.art", + "*.arte", + "*.as", + "*.asda", + "*.asia", + "*.associates", + "*.at", + "*.athleta", + "*.attorney", + "*.au", + "*.auction", + "*.audi", + "*.audible", + "*.audio", + "*.auspost", + "*.author", + "*.auto", + "*.autos", + "*.avianca", + "*.aw", + "*.aws", + "*.ax", + "*.axa", + "*.az", + "*.azure", + "*.ba", + "*.baby", + "*.baidu", + "*.banamex", + "*.bananarepublic", + "*.band", + "*.bank", + "*.bar", + "*.barcelona", + "*.barclaycard", + "*.barclays", + "*.barefoot", + "*.bargains", + "*.baseball", + "*.basketball", + "*.bauhaus", + "*.bayern", + "*.bb", + "*.bbc", + "*.bbt", + "*.bbva", + "*.bcg", + "*.bcn", + "*.bd", + "*.be", + "*.beats", + "*.beauty", + "*.beer", + "*.bentley", + "*.berlin", + "*.best", + "*.bestbuy", + "*.bet", + "*.bf", + "*.bg", + "*.bh", + "*.bharti", + "*.bi", + "*.bible", + "*.bid", + "*.bike", + "*.bing", + "*.bingo", + "*.bio", + "*.biz", + "*.bj", + "*.black", + "*.blackfriday", + "*.blanco", + "*.blockbuster", + "*.blog", + "*.bloomberg", + "*.blue", + "*.bm", + "*.bms", + "*.bmw", + "*.bn", + "*.bnl", + "*.bnpparibas", + "*.bo", + "*.boats", + "*.boehringer", + "*.bofa", + "*.bom", + "*.bond", + "*.boo", + "*.book", + "*.booking", + "*.bosch", + "*.bostik", + "*.boston", + "*.bot", + "*.boutique", + "*.box", + "*.br", + "*.bradesco", + "*.bridgestone", + "*.broadway", + "*.broker", + "*.brother", + "*.brussels", + "*.bs", + "*.bt", + "*.budapest", + "*.bugatti", + "*.build", + "*.builders", + "*.business", + "*.buy", + "*.buzz", + "*.bv", + "*.bw", + "*.by", + "*.bz", + "*.bzh", + "*.ca", + "*.cab", + "*.cafe", + "*.cal", + "*.call", + "*.calvinklein", + "*.cam", + "*.camera", + "*.camp", + "*.cancerresearch", + "*.canon", + "*.capetown", + "*.capital", + "*.capitalone", + "*.car", + "*.caravan", + "*.cards", + "*.care", + "*.career", + "*.careers", + "*.cars", + "*.cartier", + "*.casa", + "*.case", + "*.caseih", + "*.cash", + "*.casino", + "*.cat", + "*.catering", + "*.catholic", + "*.cba", + "*.cbn", + "*.cbre", + "*.cbs", + "*.cc", + "*.cd", + "*.ceb", + "*.center", + "*.ceo", + "*.cern", + "*.cf", + "*.cfa", + "*.cfd", + "*.cg", + "*.ch", + "*.chanel", + "*.channel", + "*.chase", + "*.chat", + "*.cheap", + "*.chintai", + "*.christmas", + "*.chrome", + "*.chrysler", + "*.church", + "*.ci", + "*.cipriani", + "*.circle", + "*.cisco", + "*.citadel", + "*.citi", + "*.citic", + "*.city", + "*.cityeats", + "*.ck", + "*.cl", + "*.claims", + "*.cleaning", + "*.click", + "*.clinic", + "*.clinique", + "*.clothing", + "*.cloud", + "*.club", + "*.clubmed", + "*.cm", + "*.cn", + "*.co", + "*.coach", + "*.codes", + "*.coffee", + "*.college", + "*.cologne", + "*.com", + "*.comcast", + "*.commbank", + "*.community", + "*.company", + "*.compare", + "*.computer", + "*.comsec", + "*.condos", + "*.construction", + "*.consulting", + "*.contact", + "*.contractors", + "*.cooking", + "*.cookingchannel", + "*.cool", + "*.coop", + "*.corsica", + "*.country", + "*.coupon", + "*.coupons", + "*.courses", + "*.cr", + "*.credit", + "*.creditcard", + "*.creditunion", + "*.cricket", + "*.crown", + "*.crs", + "*.cruise", + "*.cruises", + "*.csc", + "*.cu", + "*.cuisinella", + "*.cv", + "*.cw", + "*.cx", + "*.cy", + "*.cymru", + "*.cyou", + "*.cz", + "*.dabur", + "*.dad", + "*.dance", + "*.data", + "*.date", + "*.dating", + "*.datsun", + "*.day", + "*.dclk", + "*.dds", + "*.de", + "*.deal", + "*.dealer", + "*.deals", + "*.degree", + "*.delivery", + "*.dell", + "*.deloitte", + "*.delta", + "*.democrat", + "*.dental", + "*.dentist", + "*.desi", + "*.design", + "*.dev", + "*.dhl", + "*.diamonds", + "*.diet", + "*.digital", + "*.direct", + "*.directory", + "*.discount", + "*.discover", + "*.dish", + "*.diy", + "*.dj", + "*.dk", + "*.dm", + "*.dnp", + "*.do", + "*.docs", + "*.doctor", + "*.dodge", + "*.dog", + "*.doha", + "*.domains", + "*.dot", + "*.download", + "*.drive", + "*.dtv", + "*.dubai", + "*.duck", + "*.dunlop", + "*.duns", + "*.dupont", + "*.durban", + "*.dvag", + "*.dvr", + "*.dz", + "*.earth", + "*.eat", + "*.ec", + "*.eco", + "*.edeka", + "*.edu", + "*.education", + "*.ee", + "*.eg", + "*.email", + "*.emerck", + "*.energy", + "*.engineer", + "*.engineering", + "*.enterprises", + "*.epost", + "*.epson", + "*.equipment", + "*.er", + "*.ericsson", + "*.erni", + "*.es", + "*.esq", + "*.estate", + "*.esurance", + "*.et", + "*.etisalat", + "*.eu", + "*.eurovision", + "*.eus", + "*.events", + "*.everbank", + "*.exchange", + "*.expert", + "*.exposed", + "*.express", + "*.extraspace", + "*.fage", + "*.fail", + "*.fairwinds", + "*.faith", + "*.family", + "*.fan", + "*.fans", + "*.farm", + "*.farmers", + "*.fashion", + "*.fast", + "*.fedex", + "*.feedback", + "*.ferrari", + "*.ferrero", + "*.fi", + "*.fiat", + "*.fidelity", + "*.fido", + "*.film", + "*.final", + "*.finance", + "*.financial", + "*.fire", + "*.firestone", + "*.firmdale", + "*.fish", + "*.fishing", + "*.fit", + "*.fitness", + "*.fj", + "*.fk", + "*.flickr", + "*.flights", + "*.flir", + "*.florist", + "*.flowers", + "*.fly", + "*.fm", + "*.fo", + "*.foo", + "*.food", + "*.foodnetwork", + "*.football", + "*.ford", + "*.forex", + "*.forsale", + "*.forum", + "*.foundation", + "*.fox", + "*.fr", + "*.free", + "*.fresenius", + "*.frl", + "*.frogans", + "*.frontdoor", + "*.frontier", + "*.ftr", + "*.fujitsu", + "*.fujixerox", + "*.fun", + "*.fund", + "*.furniture", + "*.futbol", + "*.fyi", + "*.ga", + "*.gal", + "*.gallery", + "*.gallo", + "*.gallup", + "*.game", + "*.games", + "*.gap", + "*.garden", + "*.gb", + "*.gbiz", + "*.gd", + "*.gdn", + "*.ge", + "*.gea", + "*.gent", + "*.genting", + "*.george", + "*.gf", + "*.gg", + "*.ggee", + "*.gh", + "*.gi", + "*.gift", + "*.gifts", + "*.gives", + "*.giving", + "*.gl", + "*.glade", + "*.glass", + "*.gle", + "*.global", + "*.globo", + "*.gm", + "*.gmail", + "*.gmbh", + "*.gmo", + "*.gmx", + "*.gn", + "*.godaddy", + "*.gold", + "*.goldpoint", + "*.golf", + "*.goo", + "*.goodhands", + "*.goodyear", + "*.goog", + "*.google", + "*.gop", + "*.got", + "*.gov", + "*.gp", + "*.gq", + "*.gr", + "*.grainger", + "*.graphics", + "*.gratis", + "*.green", + "*.gripe", + "*.grocery", + "*.group", + "*.gs", + "*.gt", + "*.gu", + "*.guardian", + "*.gucci", + "*.guge", + "*.guide", + "*.guitars", + "*.guru", + "*.gw", + "*.gy", + "*.hair", + "*.hamburg", + "*.hangout", + "*.haus", + "*.hbo", + "*.hdfc", + "*.hdfcbank", + "*.health", + "*.healthcare", + "*.help", + "*.helsinki", + "*.here", + "*.hermes", + "*.hgtv", + "*.hiphop", + "*.hisamitsu", + "*.hitachi", + "*.hiv", + "*.hk", + "*.hkt", + "*.hm", + "*.hn", + "*.hockey", + "*.holdings", + "*.holiday", + "*.homedepot", + "*.homegoods", + "*.homes", + "*.homesense", + "*.honda", + "*.honeywell", + "*.horse", + "*.hospital", + "*.host", + "*.hosting", + "*.hot", + "*.hoteles", + "*.hotels", + "*.hotmail", + "*.house", + "*.how", + "*.hr", + "*.hsbc", + "*.ht", + "*.hu", + "*.hughes", + "*.hyatt", + "*.hyundai", + "*.ibm", + "*.icbc", + "*.ice", + "*.icu", + "*.id", + "*.ie", + "*.ieee", + "*.ifm", + "*.ikano", + "*.il", + "*.im", + "*.imamat", + "*.imdb", + "*.immo", + "*.immobilien", + "*.in", + "*.industries", + "*.infiniti", + "*.info", + "*.ing", + "*.ink", + "*.institute", + "*.insurance", + "*.insure", + "*.int", + "*.intel", + "*.international", + "*.intuit", + "*.investments", + "*.io", + "*.ipiranga", + "*.iq", + "*.ir", + "*.irish", + "*.is", + "*.iselect", + "*.ismaili", + "*.ist", + "*.istanbul", + "*.it", + "*.itau", + "*.itv", + "*.iveco", + "*.iwc", + "*.jaguar", + "*.java", + "*.jcb", + "*.jcp", + "*.je", + "*.jeep", + "*.jetzt", + "*.jewelry", + "*.jio", + "*.jlc", + "*.jll", + "*.jm", + "*.jmp", + "*.jnj", + "*.jo", + "*.jobs", + "*.joburg", + "*.jot", + "*.joy", + "*.jp", + "*.jpmorgan", + "*.jprs", + "*.juegos", + "*.juniper", + "*.kaufen", + "*.kddi", + "*.ke", + "*.kerryhotels", + "*.kerrylogistics", + "*.kerryproperties", + "*.kfh", + "*.kg", + "*.kh", + "*.ki", + "*.kia", + "*.kim", + "*.kinder", + "*.kindle", + "*.kitchen", + "*.kiwi", + "*.km", + "*.kn", + "*.koeln", + "*.komatsu", + "*.kosher", + "*.kp", + "*.kpmg", + "*.kpn", + "*.kr", + "*.krd", + "*.kred", + "*.kuokgroup", + "*.kw", + "*.ky", + "*.kyoto", + "*.kz", + "*.la", + "*.lacaixa", + "*.ladbrokes", + "*.lamborghini", + "*.lamer", + "*.lancaster", + "*.lancia", + "*.lancome", + "*.land", + "*.landrover", + "*.lanxess", + "*.lasalle", + "*.lat", + "*.latino", + "*.latrobe", + "*.law", + "*.lawyer", + "*.lb", + "*.lc", + "*.lds", + "*.lease", + "*.leclerc", + "*.lefrak", + "*.legal", + "*.lego", + "*.lexus", + "*.lgbt", + "*.li", + "*.liaison", + "*.lidl", + "*.life", + "*.lifeinsurance", + "*.lifestyle", + "*.lighting", + "*.like", + "*.lilly", + "*.limited", + "*.limo", + "*.lincoln", + "*.linde", + "*.link", + "*.lipsy", + "*.live", + "*.living", + "*.lixil", + "*.lk", + "*.llc", + "*.loan", + "*.loans", + "*.locker", + "*.locus", + "*.loft", + "*.lol", + "*.london", + "*.lotte", + "*.lotto", + "*.love", + "*.lpl", + "*.lplfinancial", + "*.lr", + "*.ls", + "*.lt", + "*.ltd", + "*.ltda", + "*.lu", + "*.lundbeck", + "*.lupin", + "*.luxe", + "*.luxury", + "*.lv", + "*.ly", + "*.ma", + "*.macys", + "*.madrid", + "*.maif", + "*.maison", + "*.makeup", + "*.man", + "*.management", + "*.mango", + "*.map", + "*.market", + "*.marketing", + "*.markets", + "*.marriott", + "*.marshalls", + "*.maserati", + "*.mattel", + "*.mba", + "*.mc", + "*.mckinsey", + "*.md", + "*.me", + "*.med", + "*.media", + "*.meet", + "*.melbourne", + "*.meme", + "*.memorial", + "*.men", + "*.menu", + "*.merckmsd", + "*.metlife", + "*.mg", + "*.mh", + "*.miami", + "*.microsoft", + "*.mil", + "*.mini", + "*.mint", + "*.mit", + "*.mitsubishi", + "*.mk", + "*.ml", + "*.mlb", + "*.mls", + "*.mm", + "*.mma", + "*.mn", + "*.mo", + "*.mobi", + "*.mobile", + "*.mobily", + "*.moda", + "*.moe", + "*.moi", + "*.mom", + "*.monash", + "*.money", + "*.monster", + "*.mopar", + "*.mormon", + "*.mortgage", + "*.moscow", + "*.moto", + "*.motorcycles", + "*.mov", + "*.movie", + "*.movistar", + "*.mp", + "*.mq", + "*.mr", + "*.ms", + "*.msd", + "*.mt", + "*.mtn", + "*.mtr", + "*.mu", + "*.museum", + "*.mutual", + "*.mv", + "*.mw", + "*.mx", + "*.my", + "*.mz", + "*.na", + "*.nab", + "*.nadex", + "*.nagoya", + "*.name", + "*.nationwide", + "*.natura", + "*.navy", + "*.nba", + "*.nc", + "*.ne", + "*.nec", + "*.net", + "*.netbank", + "*.netflix", + "*.network", + "*.neustar", + "*.new", + "*.newholland", + "*.news", + "*.next", + "*.nextdirect", + "*.nexus", + "*.nf", + "*.nfl", + "*.ng", + "*.ngo", + "*.nhk", + "*.ni", + "*.nico", + "*.nike", + "*.nikon", + "*.ninja", + "*.nissan", + "*.nissay", + "*.nl", + "*.no", + "*.nokia", + "*.northwesternmutual", + "*.norton", + "*.now", + "*.nowruz", + "*.nowtv", + "*.np", + "*.nr", + "*.nra", + "*.nrw", + "*.ntt", + "*.nu", + "*.nyc", + "*.nz", + "*.obi", + "*.observer", + "*.off", + "*.office", + "*.okinawa", + "*.olayan", + "*.olayangroup", + "*.oldnavy", + "*.ollo", + "*.om", + "*.omega", + "*.one", + "*.ong", + "*.onl", + "*.online", + "*.onyourside", + "*.ooo", + "*.open", + "*.oracle", + "*.orange", + "*.org", + "*.organic", + "*.origins", + "*.osaka", + "*.otsuka", + "*.ott", + "*.ovh", + "*.pa", + "*.page", + "*.panasonic", + "*.panerai", + "*.paris", + "*.pars", + "*.partners", + "*.parts", + "*.party", + "*.passagens", + "*.pay", + "*.pccw", + "*.pe", + "*.pet", + "*.pf", + "*.pfizer", + "*.pg", + "*.ph", + "*.pharmacy", + "*.phd", + "*.philips", + "*.phone", + "*.photo", + "*.photography", + "*.photos", + "*.physio", + "*.piaget", + "*.pics", + "*.pictet", + "*.pictures", + "*.pid", + "*.pin", + "*.ping", + "*.pink", + "*.pioneer", + "*.pizza", + "*.pk", + "*.pl", + "*.place", + "*.play", + "*.playstation", + "*.plumbing", + "*.plus", + "*.pm", + "*.pn", + "*.pnc", + "*.pohl", + "*.poker", + "*.politie", + "*.porn", + "*.post", + "*.pr", + "*.pramerica", + "*.praxi", + "*.press", + "*.prime", + "*.pro", + "*.prod", + "*.productions", + "*.prof", + "*.progressive", + "*.promo", + "*.properties", + "*.property", + "*.protection", + "*.pru", + "*.prudential", + "*.ps", + "*.pt", + "*.pub", + "*.pw", + "*.pwc", + "*.py", + "*.qa", + "*.qpon", + "*.quebec", + "*.quest", + "*.qvc", + "*.racing", + "*.radio", + "*.raid", + "*.re", + "*.read", + "*.realestate", + "*.realtor", + "*.realty", + "*.recipes", + "*.red", + "*.redstone", + "*.redumbrella", + "*.rehab", + "*.reise", + "*.reisen", + "*.reit", + "*.reliance", + "*.ren", + "*.rent", + "*.rentals", + "*.repair", + "*.report", + "*.republican", + "*.rest", + "*.restaurant", + "*.review", + "*.reviews", + "*.rexroth", + "*.rich", + "*.richardli", + "*.ricoh", + "*.rightathome", + "*.ril", + "*.rio", + "*.rip", + "*.rmit", + "*.ro", + "*.rocher", + "*.rocks", + "*.rodeo", + "*.rogers", + "*.room", + "*.rs", + "*.rsvp", + "*.ru", + "*.rugby", + "*.ruhr", + "*.run", + "*.rw", + "*.rwe", + "*.ryukyu", + "*.sa", + "*.saarland", + "*.safe", + "*.safety", + "*.sakura", + "*.sale", + "*.salon", + "*.samsclub", + "*.samsung", + "*.sandvik", + "*.sandvikcoromant", + "*.sanofi", + "*.sap", + "*.sarl", + "*.sas", + "*.save", + "*.saxo", + "*.sb", + "*.sbi", + "*.sbs", + "*.sc", + "*.sca", + "*.scb", + "*.schaeffler", + "*.schmidt", + "*.scholarships", + "*.school", + "*.schule", + "*.schwarz", + "*.science", + "*.scjohnson", + "*.scor", + "*.scot", + "*.sd", + "*.se", + "*.search", + "*.seat", + "*.secure", + "*.security", + "*.seek", + "*.select", + "*.sener", + "*.services", + "*.ses", + "*.seven", + "*.sew", + "*.sex", + "*.sexy", + "*.sfr", + "*.sg", + "*.sh", + "*.shangrila", + "*.sharp", + "*.shaw", + "*.shell", + "*.shia", + "*.shiksha", + "*.shoes", + "*.shop", + "*.shopping", + "*.shouji", + "*.show", + "*.showtime", + "*.shriram", + "*.si", + "*.silk", + "*.sina", + "*.singles", + "*.site", + "*.sj", + "*.sk", + "*.ski", + "*.skin", + "*.sky", + "*.skype", + "*.sl", + "*.sling", + "*.sm", + "*.smart", + "*.smile", + "*.sn", + "*.sncf", + "*.so", + "*.soccer", + "*.social", + "*.softbank", + "*.software", + "*.sohu", + "*.solar", + "*.solutions", + "*.song", + "*.sony", + "*.soy", + "*.space", + "*.spiegel", + "*.sport", + "*.spot", + "*.spreadbetting", + "*.sr", + "*.srl", + "*.srt", + "*.st", + "*.stada", + "*.staples", + "*.star", + "*.starhub", + "*.statebank", + "*.statefarm", + "*.statoil", + "*.stc", + "*.stcgroup", + "*.stockholm", + "*.storage", + "*.store", + "*.stream", + "*.studio", + "*.study", + "*.style", + "*.su", + "*.sucks", + "*.supplies", + "*.supply", + "*.support", + "*.surf", + "*.surgery", + "*.suzuki", + "*.sv", + "*.swatch", + "*.swiftcover", + "*.swiss", + "*.sx", + "*.sy", + "*.sydney", + "*.symantec", + "*.systems", + "*.sz", + "*.tab", + "*.taipei", + "*.talk", + "*.taobao", + "*.target", + "*.tatamotors", + "*.tatar", + "*.tattoo", + "*.tax", + "*.taxi", + "*.tc", + "*.tci", + "*.td", + "*.tdk", + "*.team", + "*.tech", + "*.technology", + "*.tel", + "*.telecity", + "*.telefonica", + "*.temasek", + "*.tennis", + "*.teva", + "*.tf", + "*.tg", + "*.th", + "*.thd", + "*.theater", + "*.theatre", + "*.tiaa", + "*.tickets", + "*.tienda", + "*.tiffany", + "*.tips", + "*.tires", + "*.tirol", + "*.tj", + "*.tjmaxx", + "*.tjx", + "*.tk", + "*.tkmaxx", + "*.tl", + "*.tm", + "*.tmall", + "*.tn", + "*.to", + "*.today", + "*.tokyo", + "*.tools", + "*.top", + "*.toray", + "*.toshiba", + "*.total", + "*.tours", + "*.town", + "*.toyota", + "*.toys", + "*.tr", + "*.trade", + "*.trading", + "*.training", + "*.travel", + "*.travelchannel", + "*.travelers", + "*.travelersinsurance", + "*.trust", + "*.trv", + "*.tt", + "*.tube", + "*.tui", + "*.tunes", + "*.tushu", + "*.tv", + "*.tvs", + "*.tw", + "*.tz", + "*.ua", + "*.ubank", + "*.ubs", + "*.uconnect", + "*.ug", + "*.uk", + "*.unicom", + "*.university", + "*.uno", + "*.uol", + "*.ups", + "*.us", + "*.uy", + "*.uz", + "*.va", + "*.vacations", + "*.vana", + "*.vanguard", + "*.vc", + "*.ve", + "*.vegas", + "*.ventures", + "*.verisign", + "*.versicherung", + "*.vet", + "*.vg", + "*.vi", + "*.viajes", + "*.video", + "*.vig", + "*.viking", + "*.villas", + "*.vin", + "*.vip", + "*.virgin", + "*.visa", + "*.vision", + "*.vista", + "*.vistaprint", + "*.viva", + "*.vivo", + "*.vlaanderen", + "*.vn", + "*.vodka", + "*.volkswagen", + "*.volvo", + "*.vote", + "*.voting", + "*.voto", + "*.voyage", + "*.vu", + "*.vuelos", + "*.wales", + "*.walmart", + "*.walter", + "*.wang", + "*.wanggou", + "*.warman", + "*.watch", + "*.watches", + "*.weather", + "*.weatherchannel", + "*.webcam", + "*.weber", + "*.website", + "*.wed", + "*.wedding", + "*.weibo", + "*.weir", + "*.wf", + "*.whoswho", + "*.wien", + "*.wiki", + "*.williamhill", + "*.win", + "*.windows", + "*.wine", + "*.winners", + "*.wme", + "*.wolterskluwer", + "*.woodside", + "*.work", + "*.works", + "*.world", + "*.wow", + "*.ws", + "*.wtc", + "*.wtf", + "*.xbox", + "*.xerox", + "*.xfinity", + "*.xihuan", + "*.xin", + "*.xn--11b4c3d", + "*.xn--1ck2e1b", + "*.xn--1qqw23a", + "*.xn--2scrj9c", + "*.xn--30rr7y", + "*.xn--3bst00m", + "*.xn--3ds443g", + "*.xn--3e0b707e", + "*.xn--3hcrj9c", + "*.xn--3oq18vl8pn36a", + "*.xn--3pxu8k", + "*.xn--42c2d9a", + "*.xn--45br5cyl", + "*.xn--45brj9c", + "*.xn--45q11c", + "*.xn--4gbrim", + "*.xn--54b7fta0cc", + "*.xn--55qw42g", + "*.xn--55qx5d", + "*.xn--5su34j936bgsg", + "*.xn--5tzm5g", + "*.xn--6frz82g", + "*.xn--6qq986b3xl", + "*.xn--80adxhks", + "*.xn--80ao21a", + "*.xn--80aqecdr1a", + "*.xn--80asehdb", + "*.xn--80aswg", + "*.xn--8y0a063a", + "*.xn--90a3ac", + "*.xn--90ae", + "*.xn--90ais", + "*.xn--9dbq2a", + "*.xn--9et52u", + "*.xn--9krt00a", + "*.xn--b4w605ferd", + "*.xn--bck1b9a5dre4c", + "*.xn--c1avg", + "*.xn--c2br7g", + "*.xn--cck2b3b", + "*.xn--cg4bki", + "*.xn--clchc0ea0b2g2a9gcd", + "*.xn--czr694b", + "*.xn--czrs0t", + "*.xn--czru2d", + "*.xn--d1acj3b", + "*.xn--d1alf", + "*.xn--e1a4c", + "*.xn--eckvdtc9d", + "*.xn--efvy88h", + "*.xn--estv75g", + "*.xn--fct429k", + "*.xn--fhbei", + "*.xn--fiq228c5hs", + "*.xn--fiq64b", + "*.xn--fiqs8s", + "*.xn--fiqz9s", + "*.xn--fjq720a", + "*.xn--flw351e", + "*.xn--fpcrj9c3d", + "*.xn--fzc2c9e2c", + "*.xn--fzys8d69uvgm", + "*.xn--g2xx48c", + "*.xn--gckr3f0f", + "*.xn--gecrj9c", + "*.xn--gk3at1e", + "*.xn--h2breg3eve", + "*.xn--h2brj9c", + "*.xn--h2brj9c8c", + "*.xn--hxt814e", + "*.xn--i1b6b1a6a2e", + "*.xn--imr513n", + "*.xn--io0a7i", + "*.xn--j1aef", + "*.xn--j1amh", + "*.xn--j6w193g", + "*.xn--jlq61u9w7b", + "*.xn--jvr189m", + "*.xn--kcrx77d1x4a", + "*.xn--kprw13d", + "*.xn--kpry57d", + "*.xn--kpu716f", + "*.xn--kput3i", + "*.xn--l1acc", + "*.xn--lgbbat1ad8j", + "*.xn--mgb9awbf", + "*.xn--mgba3a3ejt", + "*.xn--mgba3a4f16a", + "*.xn--mgba7c0bbn0a", + "*.xn--mgbaakc7dvf", + "*.xn--mgbaam7a8h", + "*.xn--mgbab2bd", + "*.xn--mgbai9azgqp6j", + "*.xn--mgbayh7gpa", + "*.xn--mgbb9fbpob", + "*.xn--mgbbh1a", + "*.xn--mgbbh1a71e", + "*.xn--mgbc0a9azcg", + "*.xn--mgbca7dzdo", + "*.xn--mgberp4a5d4ar", + "*.xn--mgbgu82a", + "*.xn--mgbi4ecexp", + "*.xn--mgbpl2fh", + "*.xn--mgbt3dhd", + "*.xn--mgbtx2b", + "*.xn--mgbx4cd0ab", + "*.xn--mix891f", + "*.xn--mk1bu44c", + "*.xn--mxtq1m", + "*.xn--ngbc5azd", + "*.xn--ngbe9e0a", + "*.xn--ngbrx", + "*.xn--node", + "*.xn--nqv7f", + "*.xn--nqv7fs00ema", + "*.xn--nyqy26a", + "*.xn--o3cw4h", + "*.xn--ogbpf8fl", + "*.xn--otu796d", + "*.xn--p1acf", + "*.xn--p1ai", + "*.xn--pbt977c", + "*.xn--pgbs0dh", + "*.xn--pssy2u", + "*.xn--q9jyb4c", + "*.xn--qcka1pmc", + "*.xn--qxam", + "*.xn--rhqv96g", + "*.xn--rovu88b", + "*.xn--rvc1e0am3e", + "*.xn--s9brj9c", + "*.xn--ses554g", + "*.xn--t60b56a", + "*.xn--tckwe", + "*.xn--tiq49xqyj", + "*.xn--unup4y", + "*.xn--vermgensberater-ctb", + "*.xn--vermgensberatung-pwb", + "*.xn--vhquv", + "*.xn--vuq861b", + "*.xn--w4r85el8fhu5dnra", + "*.xn--w4rs40l", + "*.xn--wgbh1c", + "*.xn--wgbl6a", + "*.xn--xhq521b", + "*.xn--xkc2al3hye2a", + "*.xn--xkc2dl3a5ee0h", + "*.xn--y9a3aq", + "*.xn--yfro4i67o", + "*.xn--ygbi2ammx", + "*.xn--zfr164b", + "*.xperia", + "*.xxx", + "*.xyz", + "*.yachts", + "*.yahoo", + "*.yamaxun", + "*.yandex", + "*.ye", + "*.yodobashi", + "*.yoga", + "*.yokohama", + "*.you", + "*.youtube", + "*.yt", + "*.yun", + "*.za", + "*.zappos", + "*.zara", + "*.zero", + "*.zip", + "*.zippo", + "*.zm", + "*.zone", + "*.zuerich", + "*.zw", +] diff --git a/four/VPNManager.swift b/four/VPNManager.swift new file mode 100644 index 0000000..71619b1 --- /dev/null +++ b/four/VPNManager.swift @@ -0,0 +1,103 @@ +// +// VPNManager.swift +// four +// +// Created by Ryan McGrath on 12/24/18. +// Copyright © 2018 Ryan McGrath. All rights reserved. +// + +import Foundation +import NetworkExtension + +class VPNManager { + fileprivate var manager = NETunnelProviderManager() + fileprivate static let vpnDescription = "CloudFlare 1.1.1.1 DNS" + fileprivate static let vpnServerDescription = "CloudFlare 1.1.1.1 DNS" + fileprivate static let vpnDNS = ["1.1.1.1", "1.0.0.1", "2606:4700:4700::1111", "2606:4700:4700::1001"] + + public var connected: Bool { + get { + return manager.isOnDemandEnabled + } + + set { + if newValue == connected { return } + + update(body: { [weak self] in + self?.manager.isEnabled = newValue + self?.manager.isOnDemandEnabled = newValue + }, complete: { [weak self] in + let session = self?.manager.connection as? NETunnelProviderSession + + if newValue { + do { + try session?.startVPNTunnel(options: nil) + print("STARTED!") + } catch let err as NSError { + print("\(err.localizedDescription)") + } + } else { + session?.stopVPNTunnel() + } + }) + } + } + + init() { + refreshManager() + } + + func refreshManager() -> Void { + NETunnelProviderManager.loadAllFromPreferences(completionHandler: { (managers, error) in + if nil == error { + if let managers = managers { + for manager in managers { + if manager.localizedDescription == VPNManager.vpnDescription { + self.manager = manager + return + } + } + } + } + + self.configureDNS() + }) + } + + private func update(body: @escaping () -> Void, complete: @escaping () -> Void) { + manager.loadFromPreferences { error in + if error != nil { + print("Load error: \(String(describing: error?.localizedDescription))") + return + } + + body() + + self.manager.saveToPreferences { (error) in + if nil != error { + print("vpn_connect: save error \(error!)") + } else { + complete() + } + } + } + } + + private func configureDNS() { + manager.localizedDescription = VPNManager.vpnDescription + + let proto = NETunnelProviderProtocol() + proto.providerBundleIdentifier = "com.rymc.vpntunnel.provider" + proto.serverAddress = VPNManager.vpnServerDescription + manager.protocolConfiguration = proto + + let evaluationRule = NEEvaluateConnectionRule(matchDomains: TLDS, andAction: .connectIfNeeded) + evaluationRule.useDNSServers = VPNManager.vpnDNS + + let onDemandRule = NEOnDemandRuleEvaluateConnection() + onDemandRule.connectionRules = [evaluationRule] + onDemandRule.interfaceTypeMatch = .any + + manager.onDemandRules = [onDemandRule] + } +} diff --git a/four/ViewController.swift b/four/ViewController.swift new file mode 100644 index 0000000..969e8cf --- /dev/null +++ b/four/ViewController.swift @@ -0,0 +1,92 @@ +// +// ViewController.swift +// four +// +// Created by Ryan McGrath on 12/23/18. +// Copyright © 2018 Ryan McGrath. All rights reserved. +// + +import Cocoa + +class View: NSView { + override var isFlipped: Bool { + get { return true } + } +} + +class ViewController: NSViewController { + let vpnManager = VPNManager() + + lazy var fourLabel: NSTextField = { + let label = NSTextField(labelWithString: "1.1.1.1") + label.translatesAutoresizingMaskIntoConstraints = false + label.alignment = .center + label.font = NSFont.boldSystemFont(ofSize: 30.0) + return label + }() + + lazy var toggle: JSSwitch = { + let sw = JSSwitch(frame: CGRect(x: 118.0, y: 95.0, width: 64.0, height: 44.0)) + sw.target = self + sw.action = #selector(toggleConnection) + return sw + }() + + lazy var connectionStatusLabel: NSTextField = { + let label = NSTextField(labelWithString: "DISCONNECTED") + label.translatesAutoresizingMaskIntoConstraints = false + label.alignment = .center + label.font = NSFont.boldSystemFont(ofSize: 18.0) + return label + }() + + lazy var makeThemFeelBadForNotBeingConnectedLabel: NSTextField = { + let label = NSTextField(labelWithString: "Your DNS queries are not private") + label.translatesAutoresizingMaskIntoConstraints = false + label.alignment = .center + label.font = NSFont.systemFont(ofSize: 18.0) + return label + }() + + override func loadView() { + let frame = NSRect(x: 0, y: 0, width: 300, height: 300) + let rootView = View(frame: frame) + view = rootView + } + + override func viewDidLoad() { + super.viewDidLoad() + + view.addSubview(fourLabel) + view.addSubview(toggle) + view.addSubview(connectionStatusLabel) + view.addSubview(makeThemFeelBadForNotBeingConnectedLabel) + + NSLayoutConstraint.activate([ + fourLabel.topAnchor.constraint(equalTo: view.topAnchor, constant: 30.0), + fourLabel.widthAnchor.constraint(equalToConstant: 300.0), + fourLabel.centerXAnchor.constraint(equalTo: view.centerXAnchor), + + connectionStatusLabel.topAnchor.constraint(equalTo: fourLabel.bottomAnchor, constant: 120.0), + connectionStatusLabel.widthAnchor.constraint(equalToConstant: 300.0), + connectionStatusLabel.centerXAnchor.constraint(equalTo: view.centerXAnchor), + + makeThemFeelBadForNotBeingConnectedLabel.topAnchor.constraint(equalTo: connectionStatusLabel.bottomAnchor, constant: 20.0), + makeThemFeelBadForNotBeingConnectedLabel.widthAnchor.constraint(equalToConstant: 300.0), + makeThemFeelBadForNotBeingConnectedLabel.centerXAnchor.constraint(equalTo: view.centerXAnchor) + ]) + } + + @objc + func toggleConnection() { + vpnManager.connected = !vpnManager.connected + + if vpnManager.connected { + connectionStatusLabel.stringValue = "CONNECTED" + makeThemFeelBadForNotBeingConnectedLabel.stringValue = "Your DNS queries are now\n private and faster" + } else { + connectionStatusLabel.stringValue = "DISCONNECTED" + makeThemFeelBadForNotBeingConnectedLabel.stringValue = "Your DNS queries are not private" + } + } +} diff --git a/four/four.entitlements b/four/four.entitlements new file mode 100644 index 0000000..d25f3d4 --- /dev/null +++ b/four/four.entitlements @@ -0,0 +1,16 @@ + + + + + com.apple.developer.networking.networkextension + + packet-tunnel-provider + + com.apple.developer.networking.vpn.api + + allow-vpn + + com.apple.security.app-sandbox + + + diff --git a/four/main.swift b/four/main.swift new file mode 100644 index 0000000..08e4bef --- /dev/null +++ b/four/main.swift @@ -0,0 +1,20 @@ +// +// main.swift +// four +// +// Created by Ryan McGrath on 12/23/18. +// Copyright © 2018 Ryan McGrath. All rights reserved. +// + +import Cocoa +import Foundation + +autoreleasepool { + let delegate = AppDelegate() + withExtendedLifetime(delegate, { + let application = NSApplication.shared + application.delegate = delegate + application.run() + application.delegate = nil + }) +} diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..a4278d1 --- /dev/null +++ b/readme.md @@ -0,0 +1,23 @@ +# 1.1.1.1 on macOS +[CloudFlare has a cool app for iOS devices](https://itunes.apple.com/us/app/1-1-1-1-faster-internet/id1423538627) that enables easy switching to faster, private, and encrypted DNS queries. While switching DNS isn't exactly difficult, I found the user experience to be interesting - very easy to configure, just tap a switch and you're in. + +Another interesting thing about it is that, unless they're doing some super custom stuff (which is totally possible), I'm gonna hazard a guess that it has to be built on top of `NetworkExtension` APIs. With the exception of smaller things like [NEDNSProxyProvider](https://developer.apple.com/documentation/networkextension/nednsproxyprovider), most of that stuff should work fine on macOS now... but very few companies ever take the time to take an almost-compatible iOS codebase and shim it for Cocoa/AppKit. The UI used on `1.1.1.1` isn't too difficult to do in macOS, though. + +Thus, over the holidays I dug in to see how annoying it'd be to do. This implements a very basic VPN tunnel that sets DNS to go over 1.1.1.1, in a basic UI as a status bar menu app. Some screenshots are below. I probably won't be pursuing this further in lieu of working on other projects, so anyone out there should feel free to take this and extend it as they wish. + +Also, side note: you probably want a true VPN instead of this, but this isn't a bad approach either in the grand scheme of things. Probably one where doing your research is worthwhile. :) + +## Screenshots +![Disconnected](https://github.com/ryanmcgrath/four/blob/master/screenshots/disconnected.png?raw=true) +![Connected](https://github.com/ryanmcgrath/flour/blob/master/screenshots/connected.png?raw=true) + +## What else is here? +This repo could also be used as scaffolding/reference for a nibless Swift Cocoa app, if you're into that sorta thing. I personally think Interface Builder makes anyone who deals with UI in code (web devs, etc) groan out loud, so maybe this goes towards showing it's not _that_ difficult or outlandish to do otherwise. + +- It implements a taskbar app with a custom `NSPopover` view in code. +- It implements a working `UISwitch` replacement, using a slightly-modified [JSSwitch](https://github.com/juliensagot/JSSwitch). + +## License, etc +This is very much a "do-wtf-you-want-with-it" license. Code is as-is. I'd like to give props to [this list of TLDs by popmedic](https://gist.github.com/popmedic/cf9472aa8c2adda875a484c5a1c5da06), because compiling it myself would've been annoying. + +Questions can be directed to [ryan@rymc.io](mailto:ryan@rymc.io) or [@ryanmcgrath on Twitter](https://twitter.com/ryanmcgrath). diff --git a/screenshots/connected.png b/screenshots/connected.png new file mode 100644 index 0000000000000000000000000000000000000000..f62a2516e0de1b45dc230d95bbb575811ee350e3 GIT binary patch literal 97358 zcmZU)1z1~6y9EkVuwtd9xLdIlcT%8OaVW0EDORk--7UClae`}$g|@i67AWpckU-#W zzVrX*eD_|SC+wZc%Gca*~qNDozd-*0$y-D6-*6TIky9eMH%MYI0Wo7_yjc;p5OmeBH;Wr2)~g zkDtGPhAG~8SX&-o^NK)4%SEG8Y6h)Ww}v&+_z2HcRY&I)Hs6P(f{y0H%cYy8>-Ha) zBWcce>RgvgBq%PQ+|{fp%dp?J7pNrTlk}%&CJ)n!K7L{R4F4}?l$+O&L<%aZN4d|I z?>QVQCFPm5^b_^(Gw-XuG2!=LqfnpVTVk!>dWGSk_@$f{)=Hp+wW~OYLRHE-)oJ)* ze?F#3W^rsJO<{2?BGoFjjejnHfArK(VeQ0h4#leJttd1s2gkkML1LeUAdCTJJC+7_ zHPQ_&ET5V(AqT7;o=5Sy_cnm(#vwC}E>pzt0z-4=+jFN>ZH}R}p*!%x35)@(%t`(m z7dKs&C@Hs`XREvy0vf5WN+ehiMT&PJOs-a~KGlgkGP{h0uNoAC&B^frqW|c=3%yP|@Zf$fo;%8v2Sd0$swVH=5g#@NaRHv*-nLOS>)2Fkjc(sRbqO4J7>g>^p|gPu|bymD!ZX&&~t+jq%0tpG(LPhjE(t&(aQu39m*zrdg4F z7VlR;Ln6yZEB>Naf1RuVO(*&TonEZRy5%~)6Ph5zg{CPMT^4lu{Myfi8He}nkczMi z`EF$Gm=zCZR)|IZ6Dv&J2o4$OsE`Z)d{FjV(6^aU`*RW@KU4*5QM9VUM|C#ZM@Ow~SknJxv36i|{>a5SPpGn0OMT7X?(ZNPD)L(e4>N% zz&YSa$;rt{$vM;X>^0L86)Y8Px?A;>R&B*Q6PZ@z^B>X!8Z#RMzhr)iyogXLUKo?y z-Z_^*IC+R7>5*c{EIvukay~7++_twZ(k*f~wHMA55iu3GdX~*f;Yx+WK3VcY-pwxz zgbiXil)tvyM<3EGk~Kf_cqYo>!>7 zoIi3EQWNc%K4$usr<(sS={oTT;#;%PkE0GH4%^nLCfc^zrf!|p8R47GuNr^tNv1zm*I_R7TK*Bv&zS(%TxU^MwxFTO%QHe1@ z!6MC;OVDndf8N-o!|HDPbnHfYnNLbFOMy^fE7hLYj-TQUH-98gLb}}>Ve4tjVIDlr z5l$l;pUKvlfR6-bG>zIej)SXTlW8J{`b{-zlxh&{itPDpFO&7ygxSz5_ABBmi1ZF> znk^L@E*gew4Q&=J79C7Ka*tV5Dh3YO=|xmjRrG#oJJ4BZ`f~B5^vm)b?}BIpf9=+M z$}IovvTLsJW8oJ9lY;uL^g;-sO(A=ieHV$W*35TGyhi6&`rvpt*LTC?pggy``e?tdStG^}*5T+l!IzSE-kS#N)O z_hNjpFYCx~&1Wj`kYJ^zBfo1cxVWx()Hz{G5fn1>uIi|DzE#Zq#%-XLtj*Kg){D#Q zlehg9=~ed)$C>Ds%rQ1x@9)>yqc&KRZ{EGwJ@}D6n$x2%Pedpjz=i@o3s*A!n*OaF z?EZ`5<+)M0Q~}L_?1An-U4P<9mP8yvuaYT>Gf4 zZKmz6E%V*S&B@L63W)&?+Ybu~yOXWz6^!f2$50(pg?_XDJoMemUbM+KU?j+$P)Tay z8(}^)pQ>A+tJg%A=^G)FfQXi5la1&iHO9e(vPK3^%f>bhKR#y7f%9@qprNr zYf%PoPee!J@$0>!a|L+1E*~7hb7S2#F|5p=md%gseU?SiN^--EK~hT6!XgL+& zuV8OsX93RnZ8YM`h(S>P@*L|?Ff>@X7OhUxQgjG+&@f?<6^lqC0?|qC*l;DK^kH~2 zv+0N94`HX!Q?;{;^@KC-Q#`qIh9B|j+(VW`Bm40}@&g5nPwt-VVIj=NY7d;=i776r zS)uUnA7G((HASFHiA(WH9a$6(&Ks3$vAwp>IpFc!*=J%PU;q#Q+&bQ>A8N>Ku{sQN z-*?yBq&wr@YGSW8RB6t&{J8!rE3zcg=@qhh*7an!s|qHEENYl6clo%J??4B$W1iqh zNLsw&_}elhf6TDTKp`)hY_E;@p|9eT_p9Ms?dlrWT`l%YLBZOpWveTv z|60f0TjRJa3kugvDfg+jSWPc#C~w%XF{;X_IrJ*D+}MOq!Xw~|8k`#JWVU?ee~xQ( zKX_L#)>|l7SRahfH<3Ld136&LO@5!Vb?(~41Bdy3|H0rSubyRKu%Wp+{jCDhRA?)F zlYaz(FDN!@+1}Sn*5-R!{u)+?i^1V73STR%-jcn*X=^DyJiL9qUz{wR(#`If>dA5u z&=%1KyU#p1gL{wN%wOCbI*1s1=3Y>*8M_mX^R$%0bSD2S#!rvCTK&pvoc5azghe6E zdp-{Q=9PH{DHnJzs_Wsht=(7Szc#++%~Y!_@+o8N%hvjOf|jzP(3GPP;`|3Ufu&Nm zd5-88j^jToXLnn82FGoqUSl^V>MdF~KaJXaL}ynP$6Wfh)Z~keENy14D)UnUK{?-_ zf7uw+IGl={F{yGjP;U1*>z*WAdL zp?IO?rZ=z}{Q!@UYRSFR_k5rK+JVaRJ=Fx2mROCO+WjPQXJsjDX?VH#cIiw3VOw3b zkJkqNlp`zxKDO-5IY1`dcpCN^K5Nsz=)anZnaQqNc)E&y2zw@_ zA3paXxWo6?Ze8yCR@7Mnw6~`cC?t26bQy+StKxvFjb$~E&sQGI zC4OLMf%#ch#~B5Mh~eRbDyK$&jDmuiW&J_hMO#rp$kf4(sOAi+#C*0mLN_+K|#@sQ06ZgR6@uE$zdD{`c>H+G*}){eMrgcmB_7 z0WS!8_yxqt@dot2bpu639#Vx=tli9QwclCWncF)9&k*C|5)k<(|Nrlo|9j%UO6vTp zqyW#qOaAMZ|CAH~J-oobUg&?U^-n5bE-@?-(EplV3`=5$V;=AZx%E5c55N`e!8L&6 zG=YE2|8sq~&$xV6h_uDOQ$(M;P{tiPjd7|*CxKa(fYl6IhR z2R{2v-5nA@9PpMcjG;YM8lNtie&ljB(mGwX<`M09O9!>8Y5;AopVf8{*RwXo76;^X z`@J))Wh+x}xWaN1W^t%0DES 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 acK$zOM_|3_KjrrT0000