Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
40b64ff468 | ||
|
|
4d43c6aa24 | ||
|
|
d4ef5ff4ed | ||
|
|
3db42eab28 | ||
|
|
0ff3832d27 | ||
|
|
02653e45e9 | ||
|
|
061f214571 | ||
|
|
e910459ea6 | ||
|
|
5f85372baf | ||
|
|
2e18bb3ea5 | ||
|
|
795f1f6259 | ||
|
|
3c0ef587ae | ||
|
|
6a6056f169 | ||
|
|
b2c09d3010 | ||
|
|
88d8949703 | ||
|
|
d916d262de | ||
|
|
67c9239a9d | ||
|
|
eef1bf8b82 | ||
|
|
eed928246f | ||
|
|
d1e124d9ec | ||
|
|
1eceb02430 | ||
|
|
a04e4f452f | ||
|
|
7fbd47df6b | ||
|
|
3c41578f5e | ||
|
|
f50d637e7f | ||
|
|
ef38ab5d21 | ||
|
|
690ab7a6f1 | ||
|
|
79f2ebc9e1 | ||
|
|
53ad6a1aee | ||
|
|
5217b958fa | ||
|
|
83213b2ba8 | ||
|
|
0618cfcac6 | ||
|
|
c38e1b1688 | ||
|
|
156f3c1b70 | ||
|
|
579d08a422 | ||
|
|
4dea9c3ef7 | ||
|
|
6e44455581 | ||
|
|
2117311d90 | ||
|
|
58e728317e | ||
|
|
02983230d9 | ||
|
|
f4404d7c80 | ||
|
|
bb62762fd8 | ||
|
|
875cbb09e2 | ||
|
|
b1ca4ff31e | ||
|
|
6ca7749d9b | ||
|
|
a9d852b76d | ||
|
|
976e85bc26 | ||
|
|
4456f56381 | ||
|
|
2a6f52de56 | ||
|
|
a531592494 | ||
|
|
676507b0ef | ||
|
|
909218a765 | ||
|
|
eefb31be76 | ||
|
|
1e3a8db2b6 | ||
|
|
531d3e48ab | ||
|
|
edf400d681 | ||
|
|
c03ffce707 | ||
|
|
22fac25b52 | ||
|
|
d75b291e71 | ||
|
|
66efa12e24 | ||
|
|
90a3558751 | ||
|
|
5cd2147527 | ||
|
|
08af88b591 | ||
|
|
23bef375ef | ||
|
|
079a08db64 | ||
|
|
409cfa07c6 | ||
|
|
4d2c1e80b6 | ||
|
|
212e8921ec | ||
|
|
8cc814acba | ||
|
|
f5a4892bf3 | ||
|
|
784963b6fd | ||
|
|
bb49e3d386 | ||
|
|
3408d3beed | ||
|
|
8491012652 | ||
|
|
e5652d8933 | ||
|
|
1b53464c9a | ||
|
|
f4ab8a0991 | ||
|
|
121feecdf7 | ||
|
|
1c3184a36e | ||
|
|
fb1adf423b | ||
|
|
a364d88326 | ||
|
|
70a39e6756 | ||
|
|
0848088f22 | ||
|
|
4e681b272d | ||
|
|
105a7c800f | ||
|
|
bc5a6cbac4 | ||
|
|
ca7eedb795 | ||
|
|
98261a3396 | ||
|
|
dafba50926 | ||
|
|
aa82ddd1cb | ||
|
|
76bcc9755e | ||
|
|
85b67e70aa | ||
|
|
50a2250ac5 | ||
|
|
6c08e50dd2 | ||
|
|
71acebf3be | ||
|
|
e1236241fa | ||
|
|
afe2bfcdf5 | ||
|
|
2e5e311f00 | ||
|
|
f64a4991f0 | ||
|
|
650b910e7d | ||
|
|
6b6ae896fd | ||
|
|
3a3f040524 | ||
|
|
418bbe586c | ||
|
|
c274c6082c | ||
|
|
54ad6a70d2 | ||
|
|
61ccbaec85 | ||
|
|
9bd689a1f3 | ||
|
|
ce3dcf4c06 | ||
|
|
572b33a765 | ||
|
|
77742886c4 | ||
|
|
236957ce0c | ||
|
|
5ca4dc6dc7 | ||
|
|
de5235f8b2 | ||
|
|
275bb49624 |
@@ -7,18 +7,13 @@
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
09651148147D832D007FEE31 /* dnscrypt.icns in Resources */ = {isa = PBXBuildFile; fileRef = 09651147147D832D007FEE31 /* dnscrypt.icns */; };
|
||||
098E725E1905DF4C00C8CC6E /* icon-dnscrypt-active.png in Resources */ = {isa = PBXBuildFile; fileRef = 098E72581905DF4C00C8CC6E /* icon-dnscrypt-active.png */; };
|
||||
098E72601905DF4C00C8CC6E /* icon-dnscrypt-inactive.png in Resources */ = {isa = PBXBuildFile; fileRef = 098E725A1905DF4C00C8CC6E /* icon-dnscrypt-inactive.png */; };
|
||||
098E72621905DF4C00C8CC6E /* icon-no-network.png in Resources */ = {isa = PBXBuildFile; fileRef = 098E725C1905DF4C00C8CC6E /* icon-no-network.png */; };
|
||||
098E72671905E1A700C8CC6E /* icon-dnscrypt-active@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 098E72641905E1A700C8CC6E /* icon-dnscrypt-active@2x.png */; };
|
||||
098E72681905E1A700C8CC6E /* icon-dnscrypt-inactive@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 098E72651905E1A700C8CC6E /* icon-dnscrypt-inactive@2x.png */; };
|
||||
098E72691905E1A700C8CC6E /* icon-no-network@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 098E72661905E1A700C8CC6E /* icon-no-network@2x.png */; };
|
||||
091360731C88418E00F308D3 /* dnscrypt.iconset in Resources */ = {isa = PBXBuildFile; fileRef = 091360721C88418E00F308D3 /* dnscrypt.iconset */; };
|
||||
09A13AD2145F3B9000B227A4 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 09A13AD1145F3B9000B227A4 /* Cocoa.framework */; };
|
||||
09A13ADC145F3B9000B227A4 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 09A13ADA145F3B9000B227A4 /* InfoPlist.strings */; };
|
||||
09A13ADE145F3B9000B227A4 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 09A13ADD145F3B9000B227A4 /* main.m */; };
|
||||
09A13AE5145F3B9000B227A4 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 09A13AE4145F3B9000B227A4 /* AppDelegate.m */; };
|
||||
09A13AE8145F3B9000B227A4 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 09A13AE6145F3B9000B227A4 /* MainMenu.xib */; };
|
||||
F622E21B1C88C76800721313 /* Icons.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F622E21A1C88C76800721313 /* Icons.xcassets */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
@@ -34,13 +29,7 @@
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
09651147147D832D007FEE31 /* dnscrypt.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = dnscrypt.icns; path = ../dnscrypt.icns; sourceTree = "<group>"; };
|
||||
098E72581905DF4C00C8CC6E /* icon-dnscrypt-active.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-dnscrypt-active.png"; sourceTree = "<group>"; };
|
||||
098E725A1905DF4C00C8CC6E /* icon-dnscrypt-inactive.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-dnscrypt-inactive.png"; sourceTree = "<group>"; };
|
||||
098E725C1905DF4C00C8CC6E /* icon-no-network.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-no-network.png"; sourceTree = "<group>"; };
|
||||
098E72641905E1A700C8CC6E /* icon-dnscrypt-active@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-dnscrypt-active@2x.png"; sourceTree = "<group>"; };
|
||||
098E72651905E1A700C8CC6E /* icon-dnscrypt-inactive@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-dnscrypt-inactive@2x.png"; sourceTree = "<group>"; };
|
||||
098E72661905E1A700C8CC6E /* icon-no-network@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-no-network@2x.png"; sourceTree = "<group>"; };
|
||||
091360721C88418E00F308D3 /* dnscrypt.iconset */ = {isa = PBXFileReference; lastKnownFileType = folder.iconset; path = dnscrypt.iconset; sourceTree = "<group>"; };
|
||||
09A13ACD145F3B9000B227A4 /* DNSCrypt Menubar.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "DNSCrypt Menubar.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
09A13AD1145F3B9000B227A4 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
|
||||
09A13AD4145F3B9000B227A4 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
|
||||
@@ -53,6 +42,7 @@
|
||||
09A13AE3145F3B9000B227A4 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
|
||||
09A13AE4145F3B9000B227A4 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
|
||||
09A13AE7145F3B9000B227A4 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||
F622E21A1C88C76800721313 /* Icons.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Icons.xcassets; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
@@ -117,17 +107,12 @@
|
||||
09A13AD8145F3B9000B227A4 /* Supporting Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
09651147147D832D007FEE31 /* dnscrypt.icns */,
|
||||
091360721C88418E00F308D3 /* dnscrypt.iconset */,
|
||||
F622E21A1C88C76800721313 /* Icons.xcassets */,
|
||||
09A13AD9145F3B9000B227A4 /* DNSCrypt-Menubar-Info.plist */,
|
||||
09A13ADA145F3B9000B227A4 /* InfoPlist.strings */,
|
||||
09A13ADD145F3B9000B227A4 /* main.m */,
|
||||
09A13ADF145F3B9000B227A4 /* DNSCrypt-Menubar-Prefix.pch */,
|
||||
098E72581905DF4C00C8CC6E /* icon-dnscrypt-active.png */,
|
||||
098E725A1905DF4C00C8CC6E /* icon-dnscrypt-inactive.png */,
|
||||
098E725C1905DF4C00C8CC6E /* icon-no-network.png */,
|
||||
098E72641905E1A700C8CC6E /* icon-dnscrypt-active@2x.png */,
|
||||
098E72651905E1A700C8CC6E /* icon-dnscrypt-inactive@2x.png */,
|
||||
098E72661905E1A700C8CC6E /* icon-no-network@2x.png */,
|
||||
);
|
||||
name = "Supporting Files";
|
||||
sourceTree = "<group>";
|
||||
@@ -159,7 +144,7 @@
|
||||
09A13AC4145F3B9000B227A4 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0460;
|
||||
LastUpgradeCheck = 0510;
|
||||
};
|
||||
buildConfigurationList = 09A13AC7145F3B9000B227A4 /* Build configuration list for PBXProject "DNSCrypt-Menubar" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
@@ -183,15 +168,10 @@
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
098E72681905E1A700C8CC6E /* icon-dnscrypt-inactive@2x.png in Resources */,
|
||||
09A13ADC145F3B9000B227A4 /* InfoPlist.strings in Resources */,
|
||||
098E725E1905DF4C00C8CC6E /* icon-dnscrypt-active.png in Resources */,
|
||||
09A13AE8145F3B9000B227A4 /* MainMenu.xib in Resources */,
|
||||
098E72691905E1A700C8CC6E /* icon-no-network@2x.png in Resources */,
|
||||
098E72601905DF4C00C8CC6E /* icon-dnscrypt-inactive.png in Resources */,
|
||||
098E72621905DF4C00C8CC6E /* icon-no-network.png in Resources */,
|
||||
098E72671905E1A700C8CC6E /* icon-dnscrypt-active@2x.png in Resources */,
|
||||
09651148147D832D007FEE31 /* dnscrypt.icns in Resources */,
|
||||
F622E21B1C88C76800721313 /* Icons.xcassets in Resources */,
|
||||
091360731C88418E00F308D3 /* dnscrypt.iconset in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -235,7 +215,10 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
|
||||
CLANG_ENABLE_OBJC_ARC = NO;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
@@ -252,7 +235,9 @@
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
@@ -266,7 +251,10 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
|
||||
CLANG_ENABLE_OBJC_ARC = NO;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
@@ -277,7 +265,9 @@
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
||||
SDKROOT = macosx;
|
||||
@@ -287,6 +277,8 @@
|
||||
09A13AEC145F3B9000B227A4 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
@@ -296,6 +288,7 @@
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "DNSCrypt-Menubar/DNSCrypt-Menubar-Prefix.pch";
|
||||
INFOPLIST_FILE = "DNSCrypt-Menubar/DNSCrypt-Menubar-Info.plist";
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.8;
|
||||
PRODUCT_NAME = "DNSCrypt Menubar";
|
||||
WRAPPER_EXTENSION = app;
|
||||
};
|
||||
@@ -304,6 +297,8 @@
|
||||
09A13AED145F3B9000B227A4 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
@@ -313,6 +308,7 @@
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "DNSCrypt-Menubar/DNSCrypt-Menubar-Prefix.pch";
|
||||
INFOPLIST_FILE = "DNSCrypt-Menubar/DNSCrypt-Menubar-Info.plist";
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.8;
|
||||
PRODUCT_NAME = "DNSCrypt Menubar";
|
||||
WRAPPER_EXTENSION = app;
|
||||
};
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
#define kDNSCRYPT_CONTROL_DIR kDNSCRYPT_VAR_BASE_DIR @"/control"
|
||||
|
||||
@interface AppDelegate : NSObject <NSApplicationDelegate> {
|
||||
NSWindow *_window;
|
||||
NSWindow *__weak _window;
|
||||
NSMenu *_dnscryptMenu;
|
||||
NSStatusItem *_statusItem;
|
||||
NSMenuItem *_versionMenuItem;
|
||||
@@ -25,7 +25,7 @@ typedef enum {
|
||||
} DNSConfigurationState;
|
||||
|
||||
@property (strong) NSStatusItem *statusItem;
|
||||
@property (assign) NSWindow *window;
|
||||
@property (weak) NSWindow *window;
|
||||
|
||||
@property (strong) IBOutlet NSMenu *dnscryptMenu;
|
||||
@property (strong) IBOutlet NSMenuItem *versionMenuItem;
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
@synthesize versionMenuItem = _versionMenuItem;
|
||||
|
||||
DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
|
||||
BOOL appUpdated = FALSE;
|
||||
|
||||
- (void) setCheckBoxesEnabled: (BOOL) enabled
|
||||
{
|
||||
@@ -28,8 +29,7 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
|
||||
[task launch];
|
||||
data = [[pipe fileHandleForReading] readDataToEndOfFile];
|
||||
[task waitUntilExit];
|
||||
[task release];
|
||||
result = [[[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding] autorelease];
|
||||
result = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
|
||||
if ([result hasSuffix: @"\n"]) {
|
||||
result = [result substringToIndex: result.length - 1];
|
||||
}
|
||||
@@ -71,14 +71,15 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
|
||||
|
||||
switch (currentState) {
|
||||
case kDNS_CONFIGURATION_LOCALHOST:
|
||||
led = [NSImage imageNamed: @"icon-dnscrypt-active"];
|
||||
led = [NSImage imageNamed: @"Active"];
|
||||
break;
|
||||
case kDNS_CONFIGURATION_VANILLA:
|
||||
led = [NSImage imageNamed: @"icon-dnscrypt-inactive"];
|
||||
led = [NSImage imageNamed: @"Inactive"];
|
||||
break;
|
||||
default:
|
||||
led = [NSImage imageNamed: @"icon-no-network"];
|
||||
led = [NSImage imageNamed: @"No-Network"];
|
||||
}
|
||||
[led setTemplate:YES];
|
||||
_statusItem.image = led;
|
||||
}
|
||||
|
||||
@@ -87,6 +88,10 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
|
||||
NSString *stateDescription = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./get-current-resolvers.sh | ./get-resolvers-description.sh", nil]];
|
||||
if ([stateDescription isEqualToString: @"DNSCrypt"]) {
|
||||
currentState = kDNS_CONFIGURATION_LOCALHOST;
|
||||
if (appUpdated == FALSE) {
|
||||
appUpdated = TRUE;
|
||||
[self appUpdate];
|
||||
}
|
||||
} else if ([stateDescription isEqualToString: @"None"]) {
|
||||
currentState = kDNS_CONFIGURATION_UNKNOWN;
|
||||
} else if ([stateDescription isEqualToString: @"Updating"]) {
|
||||
@@ -133,7 +138,7 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
|
||||
{
|
||||
[self setCheckBoxesEnabled: FALSE];
|
||||
|
||||
NSImage *led = [NSImage imageNamed: @"icon-no-network"];
|
||||
NSImage *led = [NSImage imageNamed: @"No-Network"];
|
||||
_statusItem.image = led;
|
||||
|
||||
[self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./gui-push-conf-change.sh prefpane", nil]];
|
||||
@@ -146,7 +151,6 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
|
||||
- (void) awakeFromNib
|
||||
{
|
||||
_statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];
|
||||
[_statusItem retain];
|
||||
_statusItem.highlightMode = TRUE;
|
||||
_statusItem.toolTip = @"DNSCrypt";
|
||||
_statusItem.menu = _dnscryptMenu;
|
||||
@@ -191,6 +195,12 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (BOOL) appUpdate {
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./update-dnscrypt-app.sh", nil]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
- (IBAction)dnscryptMenuItemPushed:(NSMenuItem *)sender
|
||||
{
|
||||
|
||||
@@ -17,11 +17,11 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0.2</string>
|
||||
<string>1.0.12</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0.2</string>
|
||||
<string>1.0.12</string>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
<string>public.app-category.utilities</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
|
||||
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 4.3 KiB |
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "mac",
|
||||
"filename" : "Active.pdf"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "mac",
|
||||
"filename" : "Inactive.pdf"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "mac",
|
||||
"filename" : "No-Network.pdf"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 260 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,10 +1,3 @@
|
||||
//
|
||||
// main.m
|
||||
// DNSCrypt-Menubar
|
||||
//
|
||||
// Created by OpenDNS, Inc. on 10/31/11.
|
||||
// Copyright (c) 2011 OpenDNS, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="34px" width="130px" version="1.1" viewBox="0 0 130 34">
|
||||
<g fill-rule="evenodd">
|
||||
<path opacity="0.45" d="m48 6.0003c0-3.3139 2.682-6.0003 6-6.0003h22c3.314 0 6 2.6821 6 6.0003v22c0 3.314-2.682 6-6 6h-22c-3.314 0-6-2.682-6-6v-22zm4 1.0076c0-1.6612 1.343-3.0079 3.008-3.0079h19.984c1.661 0 3.008 1.3431 3.008 3.0079v19.984c0 1.661-1.343 3.008-3.008 3.008h-19.984c-1.661 0-3.008-1.343-3.008-3.008v-19.984zm5.632 5.0301l4.968 4.962-4.968 4.962 2.406 2.406 4.959-4.965 4.965 4.965 2.406-2.406-4.968-4.962 4.968-4.962-2.406-2.4058-4.962 4.9698-4.962-4.9698-2.406 2.4058z"/>
|
||||
<g transform="translate(96)">
|
||||
<path opacity="0.45" d="m0 6.0003c0-3.3139 2.6821-6.0003 6.0003-6.0003h22c3.314 0 6 2.6821 6 6.0003v22c0 3.314-2.682 6-6 6h-22c-3.3136 0-6-2.682-6-6v-22zm4 1.0076c0-1.6612 1.3431-3.0079 3.0079-3.0079h19.984c1.661 0 3.008 1.3431 3.008 3.0079v19.984c0 1.661-1.343 3.008-3.008 3.008h-19.984c-1.6613 0-3.008-1.343-3.008-3.008v-19.984z"/>
|
||||
<path d="m17.83 20.646h-1.662c-0.258-1.802-2.003-7.056-1.936-9.477 0.058-2.0546 0.781-4.5443 2.76-4.5343 2.034 0.0104 2.845 2.2516 2.773 4.5343-0.071 2.283-1.643 7.754-1.935 9.477zm1.634 4.351c0 0.649-0.247 1.208-0.742 1.677-0.487 0.461-1.058 0.691-1.716 0.691-0.665 0-1.246-0.23-1.741-0.691-0.486-0.469-0.729-1.028-0.729-1.677s0.243-1.208 0.729-1.677c0.495-0.478 1.076-0.717 1.741-0.717 0.658 0 1.229 0.239 1.716 0.717 0.495 0.469 0.742 1.028 0.742 1.677z"/>
|
||||
</g>
|
||||
<path d="m34 18.097v-12.097c0-3.3179-2.686-6-6-6h-22c-3.3179 0-6 2.6864-6 6.0003v22c0 3.318 2.6864 6 6.0003 6h12.249c-0.161-0.464-0.249-0.962-0.249-1.479v-1.556c-0.33 0.023-0.664 0.035-1 0.035-7.732 0-14-6.268-14-14s6.268-14 14-14c7.233 0 13.184 5.4847 13.923 12.522 1.228 0.586 2.284 1.477 3.077 2.575zm-1.447 7.042v-2.216c0-2.856-2.26-5.173-5.053-5.173s-5.053 2.317-5.053 5.173v2.216c-0.8 0-1.447 0.66-1.447 1.472v5.91c0 0.812 0.647 1.479 1.447 1.479h10.106c0.8 0 1.447-0.667 1.447-1.479v-5.91c0-0.812-0.647-1.472-1.447-1.472zm-8.087-2.216c0-1.714 1.358-3.104 3.034-3.104s3.034 1.39 3.034 3.104v2.216h-6.068v-2.216zm-1.466-5.923c0 3.314-2.686 6-6 6s-6-2.686-6-6 2.686-6 6-6 6 2.686 6 6z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
@@ -1,652 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>PROJECT</key>
|
||||
<dict>
|
||||
<key>PACKAGE_FILES</key>
|
||||
<dict>
|
||||
<key>DEFAULT_INSTALL_LOCATION</key>
|
||||
<string>/</string>
|
||||
<key>HIERARCHY</key>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>80</integer>
|
||||
<key>PATH</key>
|
||||
<string>Utilities</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>80</integer>
|
||||
<key>PATH</key>
|
||||
<string>Applications</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>509</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>80</integer>
|
||||
<key>PATH</key>
|
||||
<string>Application Support</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Documentation</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Filesystems</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Frameworks</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Internet Plug-Ins</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>LaunchAgents</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>LaunchDaemons</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>PreferencePanes</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Preferences</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>80</integer>
|
||||
<key>PATH</key>
|
||||
<string>Printers</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>PrivilegedHelperTools</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>QuickTime</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Screen Savers</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Scripts</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Services</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Widgets</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Library</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Extensions</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Library</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>System</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Shared</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>1023</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>80</integer>
|
||||
<key>PATH</key>
|
||||
<string>Users</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>/</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>PAYLOAD_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>VERSION</key>
|
||||
<integer>2</integer>
|
||||
</dict>
|
||||
<key>PACKAGE_SCRIPTS</key>
|
||||
<dict>
|
||||
<key>PREINSTALL_PATH</key>
|
||||
<dict>
|
||||
<key>PATH</key>
|
||||
<string>install.sh</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>3</integer>
|
||||
</dict>
|
||||
<key>RESOURCES</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>pkg.tgz</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>420</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>3</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<key>PACKAGE_SETTINGS</key>
|
||||
<dict>
|
||||
<key>AUTHENTICATION</key>
|
||||
<false/>
|
||||
<key>CONCLUSION_ACTION</key>
|
||||
<integer>0</integer>
|
||||
<key>IDENTIFIER</key>
|
||||
<string>osx.org.pureftpd.pkg.DNSCrypt-Meta-Installer</string>
|
||||
<key>OVERWRITE_PERMISSIONS</key>
|
||||
<false/>
|
||||
<key>VERSION</key>
|
||||
<string>0.19</string>
|
||||
</dict>
|
||||
<key>PROJECT_COMMENTS</key>
|
||||
<dict>
|
||||
<key>NOTES</key>
|
||||
<data>
|
||||
PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1M
|
||||
IDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQv
|
||||
c3RyaWN0LmR0ZCI+CjxodG1sPgo8aGVhZD4KPG1ldGEgaHR0cC1l
|
||||
cXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7
|
||||
IGNoYXJzZXQ9VVRGLTgiPgo8bWV0YSBodHRwLWVxdWl2PSJDb250
|
||||
ZW50LVN0eWxlLVR5cGUiIGNvbnRlbnQ9InRleHQvY3NzIj4KPHRp
|
||||
dGxlPjwvdGl0bGU+CjxtZXRhIG5hbWU9IkdlbmVyYXRvciIgY29u
|
||||
dGVudD0iQ29jb2EgSFRNTCBXcml0ZXIiPgo8bWV0YSBuYW1lPSJD
|
||||
b2NvYVZlcnNpb24iIGNvbnRlbnQ9IjExODcuMzQiPgo8c3R5bGUg
|
||||
dHlwZT0idGV4dC9jc3MiPgo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5
|
||||
Pgo8L2JvZHk+CjwvaHRtbD4K
|
||||
</data>
|
||||
</dict>
|
||||
<key>PROJECT_SETTINGS</key>
|
||||
<dict>
|
||||
<key>BUILD_PATH</key>
|
||||
<dict>
|
||||
<key>PATH</key>
|
||||
<string>build</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
<key>EXCLUDED_FILES</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>PATTERNS_ARRAY</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>REGULAR_EXPRESSION</key>
|
||||
<false/>
|
||||
<key>STRING</key>
|
||||
<string>.DS_Store</string>
|
||||
<key>TYPE</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>PROTECTED</key>
|
||||
<true/>
|
||||
<key>PROXY_NAME</key>
|
||||
<string>Remove .DS_Store files</string>
|
||||
<key>PROXY_TOOLTIP</key>
|
||||
<string>Remove ".DS_Store" files created by the Finder.</string>
|
||||
<key>STATE</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>PATTERNS_ARRAY</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>REGULAR_EXPRESSION</key>
|
||||
<false/>
|
||||
<key>STRING</key>
|
||||
<string>.pbdevelopment</string>
|
||||
<key>TYPE</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>PROTECTED</key>
|
||||
<true/>
|
||||
<key>PROXY_NAME</key>
|
||||
<string>Remove .pbdevelopment files</string>
|
||||
<key>PROXY_TOOLTIP</key>
|
||||
<string>Remove ".pbdevelopment" files created by ProjectBuilder or Xcode.</string>
|
||||
<key>STATE</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>PATTERNS_ARRAY</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>REGULAR_EXPRESSION</key>
|
||||
<false/>
|
||||
<key>STRING</key>
|
||||
<string>CVS</string>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>REGULAR_EXPRESSION</key>
|
||||
<false/>
|
||||
<key>STRING</key>
|
||||
<string>.cvsignore</string>
|
||||
<key>TYPE</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>REGULAR_EXPRESSION</key>
|
||||
<false/>
|
||||
<key>STRING</key>
|
||||
<string>.cvspass</string>
|
||||
<key>TYPE</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>REGULAR_EXPRESSION</key>
|
||||
<false/>
|
||||
<key>STRING</key>
|
||||
<string>.svn</string>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>PROTECTED</key>
|
||||
<true/>
|
||||
<key>PROXY_NAME</key>
|
||||
<string>Remove SCM metadata</string>
|
||||
<key>PROXY_TOOLTIP</key>
|
||||
<string>Remove helper files and folders used by the CVS and SVN Source Code Management systems.</string>
|
||||
<key>STATE</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>PATTERNS_ARRAY</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>REGULAR_EXPRESSION</key>
|
||||
<false/>
|
||||
<key>STRING</key>
|
||||
<string>classes.nib</string>
|
||||
<key>TYPE</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>REGULAR_EXPRESSION</key>
|
||||
<false/>
|
||||
<key>STRING</key>
|
||||
<string>designable.db</string>
|
||||
<key>TYPE</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>REGULAR_EXPRESSION</key>
|
||||
<false/>
|
||||
<key>STRING</key>
|
||||
<string>info.nib</string>
|
||||
<key>TYPE</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>PROTECTED</key>
|
||||
<true/>
|
||||
<key>PROXY_NAME</key>
|
||||
<string>Optimize nib files</string>
|
||||
<key>PROXY_TOOLTIP</key>
|
||||
<string>Remove "classes.nib", "info.nib" and "designable.nib" files within .nib bundles.</string>
|
||||
<key>STATE</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>PATTERNS_ARRAY</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>REGULAR_EXPRESSION</key>
|
||||
<false/>
|
||||
<key>STRING</key>
|
||||
<string>Resources Disabled</string>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>PROTECTED</key>
|
||||
<true/>
|
||||
<key>PROXY_NAME</key>
|
||||
<string>Remove Resources Disabled folders</string>
|
||||
<key>PROXY_TOOLTIP</key>
|
||||
<string>Remove "Resources Disabled" folders.</string>
|
||||
<key>STATE</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>SEPARATOR</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</array>
|
||||
<key>NAME</key>
|
||||
<string>DNSCrypt</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>VERSION</key>
|
||||
<integer>2</integer>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,7 +0,0 @@
|
||||
#! /bin/sh
|
||||
|
||||
env > /tmp/a
|
||||
tdir=$(mktemp -d /tmp/XXXXXXXXXXXXXXXX)
|
||||
chmod 755 "$tdir"
|
||||
tar x -z -C "$tdir" -f pkg.tgz
|
||||
(sleep 10 ; cd "$tdir" ; exec open -W -b 'com.apple.installer' ./DNSCrypt.mpkg) &
|
||||
@@ -47,836 +47,6 @@
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>80</integer>
|
||||
<key>PATH</key>
|
||||
<string>Application Support</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Documentation</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Filesystems</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Frameworks</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Internet Plug-Ins</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>LaunchAgents</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>LaunchDaemons</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>PreferencePanes</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Preferences</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>80</integer>
|
||||
<key>PATH</key>
|
||||
<string>Printers</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>PrivilegedHelperTools</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>QuickTime</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Screen Savers</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Scripts</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Services</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Widgets</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Library</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Extensions</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Library</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>System</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Shared</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>1023</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>80</integer>
|
||||
<key>PATH</key>
|
||||
<string>Users</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>/usr/local/bin/hostip</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>3</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>bin</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>2</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>/usr/local/lib/dnscrypt-proxy/libdcplugin_example_ldns_aaaa_blocking.la</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>3</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>/usr/local/lib/dnscrypt-proxy/libdcplugin_example_ldns_aaaa_blocking.so</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>3</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>/usr/local/lib/dnscrypt-proxy/libdcplugin_example_ldns_blocking.la</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>3</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>/usr/local/lib/dnscrypt-proxy/libdcplugin_example_ldns_blocking.so</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>3</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>/usr/local/lib/dnscrypt-proxy/libdcplugin_example_ldns_opendns_deviceid.la</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>3</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>/usr/local/lib/dnscrypt-proxy/libdcplugin_example_ldns_opendns_deviceid.so</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>3</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>/usr/local/lib/dnscrypt-proxy/libdcplugin_example_logging.la</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>3</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>/usr/local/lib/dnscrypt-proxy/libdcplugin_example_logging.so</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>3</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>dnscrypt-proxy</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>2</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>lib</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>2</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>/usr/local/sbin/dnscrypt-proxy</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>3</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>sbin</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>2</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>/usr/local/share/dnscrypt-proxy/dnscrypt-resolvers.csv</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>420</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>3</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>dnscrypt-proxy</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>2</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>/usr/local/share/man/man8/dnscrypt-proxy.8</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>420</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>3</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>/usr/local/share/man/man8/hostip.8</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>420</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>3</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>man8</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>2</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>man</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>2</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>share</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>2</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>local</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>2</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>usr</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>2</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>/</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>PAYLOAD_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>VERSION</key>
|
||||
<integer>2</integer>
|
||||
</dict>
|
||||
<key>PACKAGE_SCRIPTS</key>
|
||||
<dict>
|
||||
<key>POSTINSTALL_PATH</key>
|
||||
<dict/>
|
||||
<key>PREINSTALL_PATH</key>
|
||||
<dict/>
|
||||
<key>RESOURCES</key>
|
||||
<array/>
|
||||
</dict>
|
||||
<key>PACKAGE_SETTINGS</key>
|
||||
<dict>
|
||||
<key>AUTHENTICATION</key>
|
||||
<integer>1</integer>
|
||||
<key>CONCLUSION_ACTION</key>
|
||||
<integer>0</integer>
|
||||
<key>IDENTIFIER</key>
|
||||
<string>com.github.dnscrypt-osxclient.dnscryptClient.dnscrypt-proxy</string>
|
||||
<key>LOCATION</key>
|
||||
<integer>0</integer>
|
||||
<key>NAME</key>
|
||||
<string>DNSCrypt Proxy</string>
|
||||
<key>OVERWRITE_PERMISSIONS</key>
|
||||
<false/>
|
||||
<key>REFERENCE_PATH</key>
|
||||
<string>/</string>
|
||||
<key>RELOCATABLE</key>
|
||||
<false/>
|
||||
<key>USE_HFS+_COMPRESSION</key>
|
||||
<true/>
|
||||
<key>VERSION</key>
|
||||
<string>1.4.0</string>
|
||||
</dict>
|
||||
<key>UUID</key>
|
||||
<string>7F7D70AB-F7A2-4027-8304-3063C7B9532F</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>PACKAGE_FILES</key>
|
||||
<dict>
|
||||
<key>DEFAULT_INSTALL_LOCATION</key>
|
||||
<string>/</string>
|
||||
<key>HIERARCHY</key>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>80</integer>
|
||||
<key>PATH</key>
|
||||
<string>Utilities</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>80</integer>
|
||||
<key>PATH</key>
|
||||
<string>Applications</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>509</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
@@ -1314,73 +484,6 @@
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>/usr/local/bin/alarmer</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>3</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>bin</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>2</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>local</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>2</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>usr</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>2</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
@@ -1436,7 +539,7 @@
|
||||
<key>USE_HFS+_COMPRESSION</key>
|
||||
<true/>
|
||||
<key>VERSION</key>
|
||||
<string>1.0.2</string>
|
||||
<string>1.0.12</string>
|
||||
</dict>
|
||||
<key>TYPE</key>
|
||||
<integer>0</integer>
|
||||
@@ -1929,7 +1032,7 @@
|
||||
<key>USE_HFS+_COMPRESSION</key>
|
||||
<true/>
|
||||
<key>VERSION</key>
|
||||
<string>1.0.2</string>
|
||||
<string>1.0.12</string>
|
||||
</dict>
|
||||
<key>TYPE</key>
|
||||
<integer>0</integer>
|
||||
@@ -1982,29 +1085,6 @@
|
||||
<dict>
|
||||
<key>LIST</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>DESCRIPTION</key>
|
||||
<array/>
|
||||
<key>OPTIONS</key>
|
||||
<dict>
|
||||
<key>HIDDEN</key>
|
||||
<false/>
|
||||
<key>STATE</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
<key>PACKAGE_UUID</key>
|
||||
<string>7F7D70AB-F7A2-4027-8304-3063C7B9532F</string>
|
||||
<key>REQUIREMENTS</key>
|
||||
<array/>
|
||||
<key>TITLE</key>
|
||||
<array/>
|
||||
<key>TOOLTIP</key>
|
||||
<array/>
|
||||
<key>TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>UUID</key>
|
||||
<string>FE4B2779-1476-4341-A773-534E27377369</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>DESCRIPTION</key>
|
||||
<array/>
|
||||
@@ -2238,7 +1318,7 @@
|
||||
<key>ADVANCED_OPTIONS</key>
|
||||
<dict/>
|
||||
<key>BUILD_FORMAT</key>
|
||||
<integer>1</integer>
|
||||
<integer>0</integer>
|
||||
<key>BUILD_PATH</key>
|
||||
<dict>
|
||||
<key>PATH</key>
|
||||
|
||||
@@ -1,31 +1,30 @@
|
||||
#! /bin/sh
|
||||
|
||||
VERSION='1.0.2'
|
||||
VERSION='1.0.12'
|
||||
|
||||
echo '*** Do not forget to increase CURRENT_VERSION in common.inc'
|
||||
sleep 10
|
||||
|
||||
cd build || exit 1
|
||||
[ -d DNSCrypt.mpkg ] || exit 1
|
||||
[ -e DNSCrypt.pkg ] || exit 1
|
||||
|
||||
(
|
||||
cd DNSCrypt.mpkg/Contents/Packages || exit 1
|
||||
rm -fr DNSCrypt-OSX.pkg DNSCrypt-unsigned.pkg
|
||||
|
||||
productsign --sign 'Developer ID Installer' DNSCrypt.pkg DNSCrypt-OSX.pkg
|
||||
|
||||
mv DNSCrypt.pkg DNSCrypt-unsigned.pkg
|
||||
mv DNSCrypt-OSX.pkg DNSCrypt.pkg
|
||||
|
||||
for pkg in *pkg ; do
|
||||
rm -fr "x-${pkg}"
|
||||
mv "$pkg" "x-${pkg}"
|
||||
productsign --sign 'Developer ID Installer' "x-${pkg}" "$pkg"
|
||||
rm -fr "x-${pkg}"
|
||||
done
|
||||
)
|
||||
rm -fr DNSCrypt-OSX.mpkg DNSCrypt-unsigned.mpkg
|
||||
productsign --sign 'Developer ID Application' DNSCrypt.mpkg DNSCrypt-OSX.mpkg
|
||||
mv DNSCrypt.mpkg DNSCrypt-unsigned.mpkg
|
||||
mv DNSCrypt-OSX.mpkg DNSCrypt.mpkg
|
||||
zip -9 -r "dnscrypt-osxclient-${VERSION}.zip" DNSCrypt.mpkg
|
||||
rm -fr dnscrypt-pkg
|
||||
rm -f "dnscrypt-osxclient-${VERSION}.dmg"
|
||||
mkdir dnscrypt-pkg
|
||||
mv DNSCrypt.mpkg dnscrypt-pkg
|
||||
mv DNSCrypt.pkg dnscrypt-pkg
|
||||
hdiutil create "dnscrypt-osxclient-${VERSION}.dmg" -srcfolder dnscrypt-pkg
|
||||
|
||||
mv dnscrypt-pkg/DNSCrypt.mpkg .
|
||||
mv dnscrypt-pkg/DNSCrypt.pkg .
|
||||
rm -fr dnscrypt-pkg
|
||||
rm -fr DNSCrypt-unsigned.mpkg
|
||||
rm -fr DNSCrypt-unsigned.pkg
|
||||
|
||||
minisign -S -m "dnscrypt-osxclient-${VERSION}.dmg" \
|
||||
-p ../../minisign.pub -s ../../minisign.key \
|
||||
-t "dnscrypt-osxclient-${VERSION}.dmg"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2011-2014 OpenDNS, Inc.
|
||||
* Copyright (c) 2014 AlterStep
|
||||
* Copyright (c) 2014-2015 AlterStep
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
0946B0C813F47F53008277C6 /* PreferencePanes.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0946B0C713F47F53008277C6 /* PreferencePanes.framework */; };
|
||||
0946B0D213F47F53008277C6 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 0946B0D013F47F53008277C6 /* InfoPlist.strings */; };
|
||||
0946B0D613F47F53008277C6 /* DNSCrypt.m in Sources */ = {isa = PBXBuildFile; fileRef = 0946B0D513F47F53008277C6 /* DNSCrypt.m */; };
|
||||
0946B0D813F47F53008277C6 /* DNSCrypt.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 0946B0D713F47F53008277C6 /* DNSCrypt.tiff */; };
|
||||
0946B0DB13F47F53008277C6 /* DNSCrypt.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0946B0D913F47F53008277C6 /* DNSCrypt.xib */; };
|
||||
0946B0E413F48065008277C6 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0946B0E313F48065008277C6 /* Security.framework */; };
|
||||
09A13ABC145F2D8700B227A4 /* ajax-loader.gif in Resources */ = {isa = PBXBuildFile; fileRef = 09A13ABB145F2D8700B227A4 /* ajax-loader.gif */; };
|
||||
@@ -41,7 +40,6 @@
|
||||
0946B0D313F47F53008277C6 /* DNSCrypt-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "DNSCrypt-Prefix.pch"; sourceTree = "<group>"; };
|
||||
0946B0D413F47F53008277C6 /* DNSCrypt.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DNSCrypt.h; sourceTree = "<group>"; };
|
||||
0946B0D513F47F53008277C6 /* DNSCrypt.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DNSCrypt.m; sourceTree = "<group>"; };
|
||||
0946B0D713F47F53008277C6 /* DNSCrypt.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = DNSCrypt.tiff; sourceTree = "<group>"; };
|
||||
0946B0DA13F47F53008277C6 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/DNSCrypt.xib; sourceTree = "<group>"; };
|
||||
0946B0E113F48056008277C6 /* SecurityFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SecurityFoundation.framework; path = System/Library/Frameworks/SecurityFoundation.framework; sourceTree = SDKROOT; };
|
||||
0946B0E313F48065008277C6 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
|
||||
@@ -121,7 +119,6 @@
|
||||
0946B0D413F47F53008277C6 /* DNSCrypt.h */,
|
||||
0946B0D513F47F53008277C6 /* DNSCrypt.m */,
|
||||
0946B0D913F47F53008277C6 /* DNSCrypt.xib */,
|
||||
0946B0D713F47F53008277C6 /* DNSCrypt.tiff */,
|
||||
4B89D982147CA39200872F60 /* dnscrypt_256.png */,
|
||||
09B1686F1906062E003FDBCC /* CHCSVParser */,
|
||||
09AD019F15D2483500638DCE /* html */,
|
||||
@@ -204,7 +201,7 @@
|
||||
0946B0B713F47F52008277C6 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0510;
|
||||
LastUpgradeCheck = 0700;
|
||||
};
|
||||
buildConfigurationList = 0946B0BA13F47F52008277C6 /* Build configuration list for PBXProject "DNSCrypt" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
@@ -229,7 +226,6 @@
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
0946B0D213F47F53008277C6 /* InfoPlist.strings in Resources */,
|
||||
0946B0D813F47F53008277C6 /* DNSCrypt.tiff in Resources */,
|
||||
0946B0DB13F47F53008277C6 /* DNSCrypt.xib in Resources */,
|
||||
4BABEA28144F5A7B006AEF34 /* led_green.png in Resources */,
|
||||
4BABEA29144F5A7B006AEF34 /* led_yellow.png in Resources */,
|
||||
@@ -292,9 +288,9 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
|
||||
CLANG_ENABLE_OBJC_ARC = NO;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||
@@ -320,7 +316,6 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
|
||||
CLANG_ENABLE_OBJC_ARC = NO;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
@@ -340,19 +335,19 @@
|
||||
0946B0DF13F47F53008277C6 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"$(SRCROOT)\"",
|
||||
);
|
||||
GCC_ENABLE_OBJC_GC = no;
|
||||
GCC_ENABLE_OBJC_GC = unsupported;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "DNSCrypt/DNSCrypt-Prefix.pch";
|
||||
GCC_VERSION = "";
|
||||
INFOPLIST_FILE = "DNSCrypt/DNSCrypt-Info.plist";
|
||||
INSTALL_PATH = "$(HOME)/Library/PreferencePanes";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.github.dnscrypt-osxclient.${PRODUCT_NAME:rfc1034identifier}";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
WRAPPER_EXTENSION = prefPane;
|
||||
};
|
||||
@@ -361,19 +356,19 @@
|
||||
0946B0E013F47F53008277C6 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"$(SRCROOT)\"",
|
||||
);
|
||||
GCC_ENABLE_OBJC_GC = no;
|
||||
GCC_ENABLE_OBJC_GC = unsupported;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "DNSCrypt/DNSCrypt-Prefix.pch";
|
||||
GCC_VERSION = "";
|
||||
INFOPLIST_FILE = "DNSCrypt/DNSCrypt-Info.plist";
|
||||
INSTALL_PATH = "$(HOME)/Library/PreferencePanes";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.github.dnscrypt-osxclient.${PRODUCT_NAME:rfc1034identifier}";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
WRAPPER_EXTENSION = prefPane;
|
||||
};
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.github.dnscrypt-osxclient.${PRODUCT_NAME:rfc1034identifier}</string>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
@@ -17,11 +17,11 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0.2</string>
|
||||
<string>1.0.12</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0.2</string>
|
||||
<string>1.0.12</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>BSD</string>
|
||||
<key>NSMainNibFile</key>
|
||||
|
||||
@@ -3,12 +3,13 @@
|
||||
#import <WebKit/WebKit.h>
|
||||
#import "CHCSVParser/CHCSVParser.h"
|
||||
|
||||
#define kDNSCRYPT_PACKAGE_VERSION @"1.0.2"
|
||||
#define kDNSCRYPT_PACKAGE_VERSION @"1.0.12"
|
||||
|
||||
#define kDNSCRYPT_PREFPANE_APP_PATH @"/Library/PreferencePanes/DNSCrypt.prefPane"
|
||||
#define kDNSCRYPT_USR_BASE_DIR kDNSCRYPT_PREFPANE_APP_PATH @"/Contents/Resources/usr"
|
||||
#define kDNSCRIPT_BIN_BASE_DIR kDNSCRYPT_USR_BASE_DIR @"/bin"
|
||||
#define kDNSCRIPT_SCRIPTS_BASE_DIR kDNSCRYPT_USR_BASE_DIR @"/scripts"
|
||||
#define kDNSCRYPT_BIN_BASE_DIR kDNSCRYPT_USR_BASE_DIR @"/bin"
|
||||
#define kDNSCRYPT_SHARE_BASE_DIR kDNSCRYPT_USR_BASE_DIR @"/share"
|
||||
#define kDNSCRYPT_SCRIPTS_BASE_DIR kDNSCRYPT_USR_BASE_DIR @"/scripts"
|
||||
#define kDNSCRYPT_VAR_BASE_DIR @"/Library/Application Support/DNSCrypt"
|
||||
#define kDNSCRYPT_CONTROL_DIR kDNSCRYPT_VAR_BASE_DIR @"/control"
|
||||
|
||||
@@ -19,7 +20,7 @@
|
||||
|
||||
#define kBUNDLE_IDENTIFIER @"com.github.dnscrypt-osxclient.DNSCrypt"
|
||||
|
||||
#define kRESOLVERS_LIST_FILE @"/usr/local/share/dnscrypt-proxy/dnscrypt-resolvers.csv"
|
||||
#define kRESOLVERS_LIST_FILE kDNSCRYPT_SHARE_BASE_DIR @"/dnscrypt-proxy/dnscrypt-resolvers.csv"
|
||||
|
||||
#define kREFRESH_DELAY 2.0
|
||||
#define kCHECKBOXES_AFTER_CHANGE_DELAY 8.0
|
||||
@@ -38,6 +39,7 @@ typedef enum {
|
||||
|
||||
NSButton *_dnscryptButton;
|
||||
NSButton *_fallbackButton;
|
||||
NSButton *_disableIPv6Button;
|
||||
|
||||
NSTextField *_currentResolverTextField;
|
||||
NSImageView *_statusImageView;
|
||||
@@ -59,6 +61,7 @@ typedef enum {
|
||||
|
||||
@property (nonatomic, strong) IBOutlet NSButton *dnscryptButton;
|
||||
@property (nonatomic, strong) IBOutlet NSButton *fallbackButton;
|
||||
@property (nonatomic, strong) IBOutlet NSButton *disableIPv6Button;
|
||||
|
||||
@property (nonatomic, strong) IBOutlet NSTextField *currentResolverTextField;
|
||||
@property (nonatomic, strong) IBOutlet NSImageView *statusImageView;
|
||||
@@ -84,6 +87,7 @@ typedef enum {
|
||||
|
||||
- (IBAction)dnscryptButtonPressed:(NSButton *)sender;
|
||||
- (IBAction)fallbackButtonPressed:(NSButton *)sender;
|
||||
- (IBAction)disableIPv6ButtonPressed:(NSButton *)sender;
|
||||
|
||||
- (IBAction)providerLinkPushed:(NSButton *)sender;
|
||||
- (IBAction)uninstallPushed:(NSButton *)sender;
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
@synthesize exceptionsTextField = _exceptionsTextField;
|
||||
@synthesize dnscryptButton = _dnscryptButton;
|
||||
@synthesize fallbackButton = _fallbackButton;
|
||||
@synthesize disableIPv6Button = _disableIPv6Button;
|
||||
@synthesize statusImageView = _statusImageView;
|
||||
@synthesize statusText = _statusText;
|
||||
@synthesize currentResolverTextField = _currentResolverTextField;
|
||||
@@ -28,6 +29,8 @@ NSArray *resolversList;
|
||||
{
|
||||
[_dnscryptButton setEnabled: enabled];
|
||||
[_fallbackButton setEnabled: enabled];
|
||||
[_disableIPv6Button setEnabled: enabled];
|
||||
[_resolverNamesButton setEnabled: enabled];
|
||||
}
|
||||
|
||||
- (NSString *) fromCommand: (NSString *) launchPath withArguments: (NSArray *) arguments
|
||||
@@ -55,18 +58,23 @@ NSArray *resolversList;
|
||||
|
||||
_dnscryptButton.state = 0;
|
||||
_fallbackButton.state = 0;
|
||||
_disableIPv6Button.state = 0;
|
||||
|
||||
res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./get-dnscrypt-status.sh", nil]];
|
||||
res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-f", @"-c", @"cd '" kDNSCRYPT_SCRIPTS_BASE_DIR @"' && exec ./get-dnscrypt-status.sh", nil]];
|
||||
if ([res isEqualToString: @"yes"]) {
|
||||
[_dnscryptButton setState: 1];
|
||||
}
|
||||
res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./get-fallback-status.sh", nil]];
|
||||
res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-f", @"-c", @"cd '" kDNSCRYPT_SCRIPTS_BASE_DIR @"' && exec ./get-fallback-status.sh", nil]];
|
||||
if ([res isEqualToString: @"yes"]) {
|
||||
[_fallbackButton setState: 1];
|
||||
}
|
||||
res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./get-static-resolvers.sh", nil]];
|
||||
res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-f", @"-c", @"cd '" kDNSCRYPT_SCRIPTS_BASE_DIR @"' && exec ./get-aaaa-blocking-status.sh", nil]];
|
||||
if ([res isEqualToString: @"yes"]) {
|
||||
[_disableIPv6Button setState: 1];
|
||||
}
|
||||
res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-f", @"-c", @"cd '" kDNSCRYPT_SCRIPTS_BASE_DIR @"' && exec ./get-static-resolvers.sh", nil]];
|
||||
[_staticResolversTextField setStringValue: res];
|
||||
res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./get-query-logging-status.sh", nil]];
|
||||
res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-f", @"-c", @"cd '" kDNSCRYPT_SCRIPTS_BASE_DIR @"' && exec ./get-query-logging-status.sh", nil]];
|
||||
if ([res isEqualToString: @"yes"]) {
|
||||
[_queryLoggingButton setState: 1];
|
||||
}
|
||||
@@ -90,7 +98,7 @@ NSArray *resolversList;
|
||||
NSUInteger rows_count = [resolversList count];
|
||||
NSUInteger i;
|
||||
[_resolverNamesButton addItemWithTitle: NSLocalizedString(@"Please select a resolver", @"A resolver hasn't been selected yet")];
|
||||
res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./get-dnscrypt-resolver-name.sh", nil]];
|
||||
res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-f", @"-c", @"cd '" kDNSCRYPT_SCRIPTS_BASE_DIR @"' && exec ./get-dnscrypt-resolver-name.sh", nil]];
|
||||
for (i = 1U; i < rows_count; i++) {
|
||||
NSArray *row = [resolversList objectAtIndex: i];
|
||||
NSString *name;
|
||||
@@ -129,7 +137,7 @@ NSArray *resolversList;
|
||||
|
||||
- (BOOL) updateStatusWithCurrentConfig
|
||||
{
|
||||
NSString *stateDescription = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./get-current-resolvers.sh | ./get-resolvers-description.sh", nil]];
|
||||
NSString *stateDescription = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-f", @"-c", @"cd '" kDNSCRYPT_SCRIPTS_BASE_DIR @"' && ./get-current-resolvers.sh | ./get-resolvers-description.sh", nil]];
|
||||
if ([stateDescription isEqualToString: @"DNSCrypt"]) {
|
||||
currentState = kDNS_CONFIGURATION_LOCALHOST;
|
||||
} else if ([stateDescription isEqualToString: @"None"]) {
|
||||
@@ -141,10 +149,10 @@ NSArray *resolversList;
|
||||
}
|
||||
[self updateLedStatus];
|
||||
|
||||
NSString *currentResolvers = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./get-current-resolvers.sh | ./get-upstream-resolvers.sh", nil]];
|
||||
NSString *currentResolvers = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-f", @"-c", @"cd '" kDNSCRYPT_SCRIPTS_BASE_DIR @"' && ./get-current-resolvers.sh | ./get-upstream-resolvers.sh", nil]];
|
||||
_currentResolverTextField.stringValue = currentResolvers;
|
||||
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./gui-pop-conf-change.sh prefpane", nil]];
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-f", @"-c", @"cd '" kDNSCRYPT_SCRIPTS_BASE_DIR @"' && exec ./gui-pop-conf-change.sh prefpane", nil]];
|
||||
if ([res isEqualToString: @"yes"]) {
|
||||
[self initState];
|
||||
}
|
||||
@@ -167,7 +175,7 @@ NSArray *resolversList;
|
||||
_statusImageView.image = [[NSImage alloc] initWithContentsOfFile: [bundle pathForImageResource: @"ajax-loader.gif"]];
|
||||
_currentResolverTextField.stringValue = @"";
|
||||
|
||||
[self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./gui-push-conf-change.sh menubar", nil]];
|
||||
[self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-f", @"-c", @"cd '" kDNSCRYPT_SCRIPTS_BASE_DIR @"' && exec ./gui-push-conf-change.sh menubar", nil]];
|
||||
|
||||
[NSObject cancelPreviousPerformRequestsWithTarget: self selector: @selector(periodicallyUpdateStatusWithCurrentConfig) object: nil];
|
||||
[NSObject cancelPreviousPerformRequestsWithTarget: self selector: @selector(waitForUpdate) object: nil];
|
||||
@@ -176,28 +184,42 @@ NSArray *resolversList;
|
||||
|
||||
- (BOOL) setDNSCryptOn {
|
||||
[self showSpinners];
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-to-dnscrypt.sh", nil]];
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-f", @"-c", @"cd '" kDNSCRYPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-to-dnscrypt.sh", nil]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (BOOL) setDNSCryptOff {
|
||||
[self showSpinners];
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-to-dhcp.sh", nil]];
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-f", @"-c", @"cd '" kDNSCRYPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-to-dhcp.sh", nil]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (BOOL) setFallbackOn {
|
||||
[self showSpinners];
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-fallback-on.sh", nil]];
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-f", @"-c", @"cd '" kDNSCRYPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-fallback-on.sh", nil]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (BOOL) setFallbackOff {
|
||||
[self showSpinners];
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-fallback-off.sh", nil]];
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-f", @"-c", @"cd '" kDNSCRYPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-fallback-off.sh", nil]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (BOOL) setDisableIPv6On {
|
||||
[self showSpinners];
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-f", @"-c", @"cd '" kDNSCRYPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-aaaa-blocking-on.sh", nil]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (BOOL) setDisableIPv6Off {
|
||||
[self showSpinners];
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-f", @"-c", @"cd '" kDNSCRYPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-aaaa-blocking-off.sh", nil]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
@@ -220,11 +242,20 @@ NSArray *resolversList;
|
||||
}
|
||||
}
|
||||
|
||||
- (IBAction)disableIPv6ButtonPressed:(NSButton *)sender
|
||||
{
|
||||
if (sender.state != 0) {
|
||||
[self setDisableIPv6On];
|
||||
} else {
|
||||
[self setDisableIPv6Off];
|
||||
}
|
||||
}
|
||||
|
||||
- (void) waitForUpdate {
|
||||
NSString *res;
|
||||
static unsigned int tries;
|
||||
|
||||
res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./get-tickets-count.sh", nil]];
|
||||
res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-f", @"-c", @"cd '" kDNSCRYPT_SCRIPTS_BASE_DIR @"' && exec ./get-tickets-count.sh", nil]];
|
||||
if (res.length <= 0 || [res isEqualToString: @"0"] || tries > kMAX_TRIES_AFTER_CHANGE) {
|
||||
tries = 0U;
|
||||
[self periodicallyUpdateStatusWithCurrentConfig];
|
||||
@@ -257,7 +288,7 @@ NSArray *resolversList;
|
||||
NSArray *row = [resolversList objectAtIndex: i];
|
||||
[self updateResolverInfo: row];
|
||||
setenv("RESOLVER_NAME", [[row objectAtIndex: 0] UTF8String], 1);
|
||||
[self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./set-dnscrypt-resolver-name.sh \"$RESOLVER_NAME\"", nil]];
|
||||
[self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-f", @"-c", @"cd '" kDNSCRYPT_SCRIPTS_BASE_DIR @"' && exec ./set-dnscrypt-resolver-name.sh \"$RESOLVER_NAME\"", nil]];
|
||||
}
|
||||
|
||||
- (void) mainViewDidLoad
|
||||
@@ -319,7 +350,7 @@ NSArray *resolversList;
|
||||
}
|
||||
|
||||
- (IBAction)uninstallPushed:(NSButton *)sender {
|
||||
[self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_BIN_BASE_DIR @"' && /usr/bin/open ./Uninstall.app", nil]];
|
||||
[self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-f", @"-c", @"cd '" kDNSCRYPT_BIN_BASE_DIR @"' && /usr/bin/open ./Uninstall.app", nil]];
|
||||
}
|
||||
|
||||
- (IBAction)staticResolversTextFieldChanged:(NSTextField *)sender {
|
||||
@@ -328,19 +359,19 @@ NSArray *resolversList;
|
||||
staticResolvers = [[staticResolvers componentsSeparatedByCharactersInSet: charset] componentsJoinedByString: @" "];
|
||||
sender.stringValue = staticResolvers;
|
||||
setenv("STATIC_RESOLVERS", [staticResolvers UTF8String], 1);
|
||||
[self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./set-static-resolvers.sh \"$STATIC_RESOLVERS\"", nil]];
|
||||
[self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-f", @"-c", @"cd '" kDNSCRYPT_SCRIPTS_BASE_DIR @"' && exec ./set-static-resolvers.sh \"$STATIC_RESOLVERS\"", nil]];
|
||||
}
|
||||
|
||||
- (BOOL) setQueryLoggingOn {
|
||||
[self showSpinners];
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-query-logging-on.sh", nil]];
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-f", @"-c", @"cd '" kDNSCRYPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-query-logging-on.sh", nil]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (BOOL) setQueryLoggingOff {
|
||||
[self showSpinners];
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-query-logging-off.sh", nil]];
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-f", @"-c", @"cd '" kDNSCRYPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-query-logging-off.sh", nil]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
@@ -354,12 +385,12 @@ NSArray *resolversList;
|
||||
}
|
||||
|
||||
- (IBAction)viewLogButtonPushed:(NSButton *)sender {
|
||||
[self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"open /Applications/Utilities/Console.app " kDNSCRYPT_QUERY_LOG_FILE " || open " kDNSCRYPT_QUERY_LOG_FILE, nil]];
|
||||
[self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-f", @"-c", @"open /Applications/Utilities/Console.app " kDNSCRYPT_QUERY_LOG_FILE " || open " kDNSCRYPT_QUERY_LOG_FILE, nil]];
|
||||
}
|
||||
|
||||
- (BOOL) updateBlacklistIPs {
|
||||
[self showSpinners];
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./update-blacklist-ips.sh", nil]];
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-f", @"-c", @"cd '" kDNSCRYPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./update-blacklist-ips.sh", nil]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
@@ -374,7 +405,7 @@ NSArray *resolversList;
|
||||
|
||||
- (BOOL) updateBlacklistDomains {
|
||||
[self showSpinners];
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./update-blacklist-domains.sh", nil]];
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-f", @"-c", @"cd '" kDNSCRYPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./update-blacklist-domains.sh", nil]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
@@ -389,7 +420,7 @@ NSArray *resolversList;
|
||||
|
||||
- (BOOL) updateExceptions {
|
||||
[self showSpinners];
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./update-exceptions.sh", nil]];
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-f", @"-c", @"cd '" kDNSCRYPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./update-exceptions.sh", nil]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 96 KiB |
@@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="5056" systemVersion="13D45a" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="8191" systemVersion="15B17c" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment version="1070" defaultVersion="1060" identifier="macosx"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="5056"/>
|
||||
<plugIn identifier="com.apple.WebKitIBPlugin" version="5056"/>
|
||||
<deployment version="1070" identifier="macosx"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="8191"/>
|
||||
<plugIn identifier="com.apple.WebKitIBPlugin" version="8191"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<customObject id="-2" userLabel="File's Owner" customClass="DNSCrypt">
|
||||
@@ -15,6 +15,7 @@
|
||||
<outlet property="blacklistIPsTextField" destination="402" id="444"/>
|
||||
<outlet property="currentResolverTextField" destination="174" id="296"/>
|
||||
<outlet property="descriptionText" destination="2aF-7O-SkX" id="nM9-H2-22g"/>
|
||||
<outlet property="disableIPv6Button" destination="ESJ-Kf-yNj" id="xFL-L3-vLp"/>
|
||||
<outlet property="dnscryptButton" destination="179" id="363"/>
|
||||
<outlet property="exceptionsTextField" destination="406" id="452"/>
|
||||
<outlet property="fallbackButton" destination="281" id="365"/>
|
||||
@@ -33,8 +34,8 @@
|
||||
</connections>
|
||||
</customObject>
|
||||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||
<customObject id="-3" userLabel="Application"/>
|
||||
<window title="<< do not localize >>" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" deferred="NO" oneShot="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="default" id="12" userLabel="PrefPane">
|
||||
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||
<window title="<< do not localize >>" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" deferred="NO" oneShot="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="default" id="12" userLabel="PrefPane">
|
||||
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES"/>
|
||||
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
|
||||
<rect key="contentRect" x="176" y="715" width="589" height="375"/>
|
||||
@@ -47,6 +48,7 @@
|
||||
<tabView initialItem="100" id="99">
|
||||
<rect key="frame" x="13" y="10" width="563" height="359"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<animations/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<tabViewItems>
|
||||
<tabViewItem label="General" identifier="1" id="100">
|
||||
@@ -57,6 +59,7 @@
|
||||
<button toolTip="Use OpenDNS resolvers with the DNSCrypt protocol" id="179">
|
||||
<rect key="frame" x="15" y="234" width="204" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<buttonCell key="cell" type="check" title="Enable DNSCrypt" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="180">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="systemBold" size="14"/>
|
||||
@@ -67,9 +70,10 @@
|
||||
</connections>
|
||||
</button>
|
||||
<button id="281">
|
||||
<rect key="frame" x="15" y="126" width="239" height="54"/>
|
||||
<rect key="frame" x="15" y="164" width="239" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<string key="toolTip">Only check this box if you often have to connect to public WiFi hotspots and you don't want to manually disable DNSCrypt in order to pass a captive portal.</string>
|
||||
<animations/>
|
||||
<buttonCell key="cell" type="check" title="Automatically disable if blocked" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="282">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system" size="14"/>
|
||||
@@ -82,6 +86,7 @@
|
||||
<textField verticalHuggingPriority="750" id="162">
|
||||
<rect key="frame" x="14" y="96" width="173" height="19"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Current DNS settings:" id="163">
|
||||
<font key="font" metaFont="system" size="16"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
@@ -89,10 +94,11 @@
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" id="Wkj-kT-maK">
|
||||
<rect key="frame" x="278" y="208" width="173" height="19"/>
|
||||
<rect key="frame" x="278" y="208" width="70" height="19"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Location:" id="GO7-P1-scE">
|
||||
<font key="font" metaFont="system" size="14"/>
|
||||
<font key="font" metaFont="titleBar"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
@@ -100,24 +106,17 @@
|
||||
<textField verticalHuggingPriority="750" id="174">
|
||||
<rect key="frame" x="14" y="-3" width="240" height="83"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="left" title="..." placeholderString="" id="175">
|
||||
<font key="font" size="14" name="Monaco"/>
|
||||
<color key="textColor" white="0.2046370968" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" id="e9H-pq-zb6">
|
||||
<rect key="frame" x="345" y="200" width="200" height="27"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="left" placeholderString="" id="q83-P7-DNW">
|
||||
<font key="font" size="14" name="Monaco"/>
|
||||
<color key="textColor" white="0.2046370968" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" id="rnd-WE-K61">
|
||||
<rect key="frame" x="278" y="46" width="261" height="150"/>
|
||||
<rect key="frame" x="278" y="46" width="261" height="122"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="left" placeholderString="" id="2aF-7O-SkX">
|
||||
<font key="font" size="14" name="Monaco"/>
|
||||
<color key="textColor" white="0.2046370968" alpha="1" colorSpace="calibratedWhite"/>
|
||||
@@ -127,6 +126,7 @@
|
||||
<textField verticalHuggingPriority="750" id="274">
|
||||
<rect key="frame" x="55" y="283" width="219" height="19"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="left" title="..." placeholderString="" id="275">
|
||||
<font key="font" size="16" name="Monaco"/>
|
||||
<color key="textColor" white="0.2046370968" alpha="1" colorSpace="calibratedWhite"/>
|
||||
@@ -136,11 +136,13 @@
|
||||
<imageView id="270">
|
||||
<rect key="frame" x="17" y="277" width="32" height="32"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<animations/>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" animates="YES" imageAlignment="topLeft" imageScaling="proportionallyDown" image="ajax-loader" id="271"/>
|
||||
</imageView>
|
||||
<box autoresizesSubviews="NO" horizontalHuggingPriority="750" title="Box" boxType="separator" titlePosition="noTitle" id="276">
|
||||
<box horizontalHuggingPriority="750" title="Box" boxType="separator" titlePosition="noTitle" id="276">
|
||||
<rect key="frame" x="270" y="2" width="4" height="300"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<color key="borderColor" white="0.0" alpha="0.41999999999999998" colorSpace="calibratedWhite"/>
|
||||
<color key="fillColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<font key="titleFont" metaFont="system"/>
|
||||
@@ -148,6 +150,7 @@
|
||||
<button verticalHuggingPriority="750" id="323">
|
||||
<rect key="frame" x="274" y="10" width="269" height="32"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<buttonCell key="cell" type="push" title="http://www.dnscrypt.org" alternateTitle="Browse the OpenDNS web site" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="324">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="cellTitle"/>
|
||||
@@ -156,9 +159,10 @@
|
||||
<action selector="providerLinkPushed:" target="-2" id="HYc-qW-k00"/>
|
||||
</connections>
|
||||
</button>
|
||||
<box autoresizesSubviews="NO" verticalHuggingPriority="750" title="Box" boxType="separator" titlePosition="noTitle" id="345">
|
||||
<box verticalHuggingPriority="750" title="Box" boxType="separator" titlePosition="noTitle" id="345">
|
||||
<rect key="frame" x="17" y="193" width="240" height="5"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<color key="borderColor" white="0.0" alpha="0.41999999999999998" colorSpace="calibratedWhite"/>
|
||||
<color key="fillColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<font key="titleFont" metaFont="system"/>
|
||||
@@ -166,6 +170,7 @@
|
||||
<textField verticalHuggingPriority="750" id="UQr-Gd-nzd">
|
||||
<rect key="frame" x="324" y="268" width="183" height="19"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="DNSCrypt name server:" id="ctO-Mw-4JZ">
|
||||
<font key="font" metaFont="system" size="16"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
@@ -175,6 +180,7 @@
|
||||
<popUpButton toolTip="Select the resolver to use" verticalHuggingPriority="750" id="yY6-5S-StG">
|
||||
<rect key="frame" x="286" y="232" width="260" height="26"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<popUpButtonCell key="cell" type="push" title="None selected" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="zMy-SG-d4L" id="LPZ-wM-tAR">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
@@ -191,7 +197,31 @@
|
||||
<action selector="resolversNamesPopupButtonPressed:" target="-2" id="fEP-TP-PCO"/>
|
||||
</connections>
|
||||
</popUpButton>
|
||||
<button toolTip="Do not try to resolve IPv6 records" id="ESJ-Kf-yNj">
|
||||
<rect key="frame" x="15" y="133" width="252" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<buttonCell key="cell" type="check" title="Disable IPv6 to reduce IPv4 latency" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="cCj-X4-U6n">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system" size="14"/>
|
||||
</buttonCell>
|
||||
<accessibility description="Fallback to insecure DNS"/>
|
||||
<connections>
|
||||
<action selector="disableIPv6ButtonPressed:" target="-2" id="s7R-gl-0Fy"/>
|
||||
</connections>
|
||||
</button>
|
||||
<textField verticalHuggingPriority="750" id="e9H-pq-zb6">
|
||||
<rect key="frame" x="278" y="182" width="267" height="27"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" alignment="left" placeholderString="-" id="q83-P7-DNW">
|
||||
<font key="font" size="12" name="Monaco"/>
|
||||
<color key="textColor" white="0.2046370968" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
</subviews>
|
||||
<animations/>
|
||||
</view>
|
||||
</tabViewItem>
|
||||
<tabViewItem label="Advanced" identifier="2" id="388">
|
||||
@@ -202,6 +232,7 @@
|
||||
<textField verticalHuggingPriority="750" id="390">
|
||||
<rect key="frame" x="5" y="236" width="406" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="When not using DNSCrypt, use the following static DNS servers:" id="391">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
@@ -211,6 +242,7 @@
|
||||
<textField verticalHuggingPriority="750" id="392">
|
||||
<rect key="frame" x="8" y="206" width="526" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" toolTip="Leave empty to use DHCP-provided servers" placeholderString="Space-separated list of IP addresses or leave blank for DHCP" drawsBackground="YES" usesSingleLineMode="YES" id="393">
|
||||
<font key="font" size="13" name="Courier"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
@@ -227,6 +259,7 @@
|
||||
<button id="398">
|
||||
<rect key="frame" x="7" y="281" width="126" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<buttonCell key="cell" type="check" title="Log DNS queries" bezelStyle="regularSquare" imagePosition="left" inset="2" id="399">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
@@ -239,6 +272,7 @@
|
||||
<button verticalHuggingPriority="750" id="400">
|
||||
<rect key="frame" x="161" y="273" width="94" height="32"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<buttonCell key="cell" type="push" title="View log" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="401">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
@@ -251,6 +285,7 @@
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" id="402">
|
||||
<rect key="frame" x="10" y="7" width="169" height="141"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="403">
|
||||
<font key="font" size="11" name="Courier"/>
|
||||
<string key="placeholderString">IP addresses (IPv4/IPv6) to block.
208.67.0.255
192.0.43.10
|
||||
@@ -268,6 +303,7 @@
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" id="404">
|
||||
<rect key="frame" x="188" y="7" width="169" height="141"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="405">
|
||||
<font key="font" size="11" name="Courier"/>
|
||||
<string key="placeholderString">Domain names to block.
|
||||
@@ -287,6 +323,7 @@ ads.*
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" id="406">
|
||||
<rect key="frame" x="366" y="7" width="169" height="141"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" placeholderString="Domain names to resolve through the default resolvers instead of DNSCrypt.
localdomain
mycompany.example.net" drawsBackground="YES" id="407">
|
||||
<font key="font" size="11" name="Courier"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
@@ -302,6 +339,7 @@ ads.*
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" setsMaxLayoutWidthAtFirstLayout="YES" id="408">
|
||||
<rect key="frame" x="7" y="156" width="175" height="34"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Block replies containing any of these IP addresses:" id="409">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
@@ -311,6 +349,7 @@ ads.*
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" setsMaxLayoutWidthAtFirstLayout="YES" id="410">
|
||||
<rect key="frame" x="186" y="156" width="175" height="34"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Block queries for the following domain names:" id="411">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
@@ -320,6 +359,7 @@ ads.*
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" setsMaxLayoutWidthAtFirstLayout="YES" id="412">
|
||||
<rect key="frame" x="363" y="156" width="175" height="34"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Bypass DNSCrypt to resolve these domains:" id="413">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
@@ -329,6 +369,7 @@ ads.*
|
||||
<button horizontalHuggingPriority="750" verticalHuggingPriority="750" id="416">
|
||||
<rect key="frame" x="503" y="277" width="25" height="25"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<buttonCell key="cell" type="help" bezelStyle="helpButton" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="417">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
@@ -340,15 +381,17 @@ ads.*
|
||||
<textField verticalHuggingPriority="750" id="423">
|
||||
<rect key="frame" x="467" y="284" width="33" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Help" id="424">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<box autoresizesSubviews="NO" verticalHuggingPriority="750" title="Box" boxType="separator" titlePosition="noTitle" id="425">
|
||||
<box verticalHuggingPriority="750" title="Box" boxType="separator" titlePosition="noTitle" id="425">
|
||||
<rect key="frame" x="9" y="265" width="526" height="5"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<color key="borderColor" white="0.0" alpha="0.41999999999999998" colorSpace="calibratedWhite"/>
|
||||
<color key="fillColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<font key="titleFont" metaFont="system"/>
|
||||
@@ -356,10 +399,12 @@ ads.*
|
||||
<webView hidden="YES" maintainsBackForwardList="NO" id="449">
|
||||
<rect key="frame" x="3" y="-3" width="536" height="278"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<animations/>
|
||||
<webPreferences key="preferences" identifier="helpWebView" defaultFontSize="12" defaultFixedFontSize="12" minimumFontSize="2" plugInsEnabled="NO" javaEnabled="NO" javaScriptEnabled="NO" javaScriptCanOpenWindowsAutomatically="NO" loadsImagesAutomatically="NO" allowsAnimatedImages="NO" allowsAnimatedImageLooping="NO"/>
|
||||
<accessibility description="Static DNS resolvers"/>
|
||||
</webView>
|
||||
</subviews>
|
||||
<animations/>
|
||||
</view>
|
||||
</tabViewItem>
|
||||
<tabViewItem label="About" identifier="3" id="356">
|
||||
@@ -370,6 +415,7 @@ ads.*
|
||||
<webView maintainsBackForwardList="NO" id="358">
|
||||
<rect key="frame" x="17" y="31" width="509" height="279"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<animations/>
|
||||
<webPreferences key="preferences" defaultFontSize="12" defaultFixedFontSize="12" plugInsEnabled="NO" javaEnabled="NO" javaScriptCanOpenWindowsAutomatically="NO" loadsImagesAutomatically="NO" allowsAnimatedImages="NO" allowsAnimatedImageLooping="NO">
|
||||
<nil key="identifier"/>
|
||||
</webPreferences>
|
||||
@@ -377,6 +423,7 @@ ads.*
|
||||
<button verticalHuggingPriority="750" id="385">
|
||||
<rect key="frame" x="437" y="-5" width="95" height="32"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<buttonCell key="cell" type="push" title="Uninstall" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="386">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
@@ -386,6 +433,7 @@ ads.*
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<animations/>
|
||||
</view>
|
||||
</tabViewItem>
|
||||
<tabViewItem label="Release Notes" identifier="4" id="349">
|
||||
@@ -396,16 +444,19 @@ ads.*
|
||||
<webView maintainsBackForwardList="NO" id="354">
|
||||
<rect key="frame" x="17" y="17" width="509" height="293"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<animations/>
|
||||
<webPreferences key="preferences" defaultFontSize="12" defaultFixedFontSize="12" plugInsEnabled="NO" javaEnabled="NO" javaScriptCanOpenWindowsAutomatically="NO" loadsImagesAutomatically="NO" allowsAnimatedImages="NO" allowsAnimatedImageLooping="NO">
|
||||
<nil key="identifier"/>
|
||||
</webPreferences>
|
||||
</webView>
|
||||
</subviews>
|
||||
<animations/>
|
||||
</view>
|
||||
</tabViewItem>
|
||||
</tabViewItems>
|
||||
</tabView>
|
||||
</subviews>
|
||||
<animations/>
|
||||
</view>
|
||||
</window>
|
||||
<customObject id="263"/>
|
||||
|
||||
@@ -3,14 +3,13 @@
|
||||
%head
|
||||
%meta{charset: "utf-8"}
|
||||
%title About DNSCrypt-OSXClient
|
||||
%style{type: "text/css"}
|
||||
:sass
|
||||
body
|
||||
font:
|
||||
family: arial, helvetica, sans-serif
|
||||
margin: 0
|
||||
h1
|
||||
margin: 0
|
||||
:sass
|
||||
body
|
||||
font:
|
||||
family: arial, helvetica, sans-serif
|
||||
margin: 0
|
||||
h1
|
||||
margin: 0
|
||||
%body
|
||||
%h1 About DNSCrypt-OSXClient
|
||||
%p
|
||||
@@ -36,3 +35,14 @@
|
||||
still be useful against passive attackers and in order to bypass
|
||||
DNS censorship. Don't enable it unless you are frequently
|
||||
roaming and you don't want to manually disable/enable DNSCrypt.
|
||||
%li
|
||||
Using Little Snitch? There are a few rules you need to establish,
|
||||
which Little Snitch should prompt for when trying to
|
||||
activate this application:
|
||||
%ol
|
||||
%li Allow any outgoing connection for system processes (dnscrypt-proxy)
|
||||
%li Allow any incoming connection for system process (dnscrypt-proxy)
|
||||
%li Allow any outgoing connection for system processes (dig)
|
||||
%li Allow outgoing TCP connections to port 80 (http) of www.apple.com for system process (curl)
|
||||
%li For automatic updates, allow outgoing TCP connections to port 80 (http) of updates.dnscrypt.org and download.dnscrypt.org, as well as to port 443 (https) of github.com and download.dnscrypt.org for system process (curl)
|
||||
(Thanks to @cavemandaveman and @TraderStf)
|
||||
|
||||
@@ -3,15 +3,13 @@
|
||||
<head>
|
||||
<meta charset='utf-8'>
|
||||
<title>About DNSCrypt-OSXClient</title>
|
||||
<style type='text/css'>
|
||||
<style>
|
||||
body {
|
||||
font-family: arial, helvetica, sans-serif;
|
||||
margin: 0; }
|
||||
|
||||
h1 {
|
||||
margin: 0; }
|
||||
</style>
|
||||
<style>
|
||||
body {
|
||||
font-family: arial, helvetica, sans-serif;
|
||||
margin: 0; }
|
||||
|
||||
h1 {
|
||||
margin: 0; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -42,6 +40,19 @@
|
||||
DNS censorship. Don't enable it unless you are frequently
|
||||
roaming and you don't want to manually disable/enable DNSCrypt.
|
||||
</li>
|
||||
<li>
|
||||
Using Little Snitch? There are a few rules you need to establish,
|
||||
which Little Snitch should prompt for when trying to
|
||||
activate this application:
|
||||
<ol>
|
||||
<li>Allow any outgoing connection for system processes (dnscrypt-proxy)</li>
|
||||
<li>Allow any incoming connection for system process (dnscrypt-proxy)</li>
|
||||
<li>Allow any outgoing connection for system processes (dig)</li>
|
||||
<li>Allow outgoing TCP connections to port 80 (http) of www.apple.com for system process (curl)</li>
|
||||
<li>For automatic updates, allow outgoing TCP connections to port 80 (http) of updates.dnscrypt.org and download.dnscrypt.org, as well as to port 443 (https) of github.com and download.dnscrypt.org for system process (curl)</li>
|
||||
</ol>
|
||||
(Thanks to @cavemandaveman and @TraderStf)
|
||||
</li>
|
||||
</ul>
|
||||
</p>
|
||||
</body>
|
||||
|
||||
@@ -3,16 +3,15 @@
|
||||
%head
|
||||
%meta{charset: "utf-8"}
|
||||
%title Help (advanced settings)
|
||||
%style{type: "text/css"}
|
||||
:sass
|
||||
html
|
||||
background: #e4e4e4
|
||||
body
|
||||
font:
|
||||
family: arial, helvetica, sans-serif
|
||||
margin: 1em
|
||||
h1
|
||||
margin: 0
|
||||
:sass
|
||||
html
|
||||
background: #e4e4e4
|
||||
body
|
||||
font:
|
||||
family: arial, helvetica, sans-serif
|
||||
margin: 1em
|
||||
h1
|
||||
margin: 0
|
||||
%body
|
||||
%h1 Help (advanced settings)
|
||||
%section
|
||||
@@ -24,11 +23,11 @@
|
||||
Separate them with spaces.
|
||||
%section
|
||||
%h2 Log DNS queries
|
||||
%p
|
||||
%p
|
||||
As a tool designed to protect your privacy, the DNSCrypt proxy does
|
||||
not log anything about your DNS queries. Nothing about them will be
|
||||
saved to disk ever, and log messages are intentionally kept as generic
|
||||
as possible.
|
||||
as possible.
|
||||
%p
|
||||
However, you still may want to look at the DNS queries sent by
|
||||
your system. This can be useful in order to spot suspicious
|
||||
@@ -102,5 +101,4 @@
|
||||
thing about specific resolvers that have to be used for specific
|
||||
domains.
|
||||
%p
|
||||
Use actual apps, or even a command like ping(8).
|
||||
|
||||
Use actual apps, or even a command such as ping(8).
|
||||
|
||||
@@ -3,18 +3,16 @@
|
||||
<head>
|
||||
<meta charset='utf-8'>
|
||||
<title>Help (advanced settings)</title>
|
||||
<style type='text/css'>
|
||||
<style>
|
||||
html {
|
||||
background: #e4e4e4; }
|
||||
|
||||
body {
|
||||
font-family: arial, helvetica, sans-serif;
|
||||
margin: 1em; }
|
||||
|
||||
h1 {
|
||||
margin: 0; }
|
||||
</style>
|
||||
<style>
|
||||
html {
|
||||
background: #e4e4e4; }
|
||||
|
||||
body {
|
||||
font-family: arial, helvetica, sans-serif;
|
||||
margin: 1em; }
|
||||
|
||||
h1 {
|
||||
margin: 0; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -132,7 +130,7 @@
|
||||
domains.
|
||||
</p>
|
||||
<p>
|
||||
Use actual apps, or even a command like ping(8).
|
||||
Use actual apps, or even a command such as ping(8).
|
||||
</p>
|
||||
</section>
|
||||
</body>
|
||||
|
||||
@@ -3,24 +3,110 @@
|
||||
%head
|
||||
%meta{charset: "utf-8"}
|
||||
%title Release notes for DNSCrypt-OSXClient by AlterStep
|
||||
%style{type: "text/css"}
|
||||
:sass
|
||||
body
|
||||
font:
|
||||
family: arial, helvetica, sans-serif
|
||||
margin: 0
|
||||
h1, h2
|
||||
margin: 0
|
||||
h1
|
||||
border-bottom: 1px solid grey
|
||||
article
|
||||
padding-left: 1em
|
||||
time
|
||||
font:
|
||||
style: italic
|
||||
:sass
|
||||
body
|
||||
font:
|
||||
family: arial, helvetica, sans-serif
|
||||
margin: 0
|
||||
h1, h2
|
||||
margin: 0
|
||||
h1
|
||||
border-bottom: 1px solid grey
|
||||
article
|
||||
padding-left: 1em
|
||||
time
|
||||
font:
|
||||
style: italic
|
||||
%body
|
||||
%h1 Release Notes for DNSCrypt-OSXclient by AlterStep
|
||||
|
||||
%article
|
||||
%h2 Version 1.0.12 by AlterStep
|
||||
%time Sun, Jul 31 2016
|
||||
%p
|
||||
Compatibility with OSX 10.12
|
||||
%p
|
||||
dnscrypt-proxy 1.7.0
|
||||
%p
|
||||
libsodium 1.0.9
|
||||
%p
|
||||
Fixed a regression in the automatic updater for the resolvers list
|
||||
|
||||
%article
|
||||
%h2 Version 1.0.11 by AlterStep
|
||||
%time Thu, Mar 3 2016
|
||||
%p
|
||||
Compatibility with OSX 10.11
|
||||
%p
|
||||
dnscrypt-proxy 1.6.1
|
||||
%p
|
||||
libsodium 1.0.8
|
||||
|
||||
%article
|
||||
%h2 Version 1.0.10 by AlterStep
|
||||
%time Tue, 23 Jul 2015
|
||||
%p
|
||||
Compatibility with OSX 10.11 beta 4
|
||||
%p
|
||||
dnscrypt-proxy 1.6.0
|
||||
|
||||
%article
|
||||
%h2 Version 1.0.9 by AlterStep
|
||||
%time Tue, 12 Jul 2015
|
||||
%p
|
||||
Fixed an issue with libsodium not being found by minisign-verify
|
||||
|
||||
%article
|
||||
%h2 Version 1.0.8 by AlterStep
|
||||
%time Tue, 12 Jul 2015
|
||||
%p
|
||||
New versions are automatically downloaded
|
||||
|
||||
%article
|
||||
%h2 Version 1.0.7 by AlterStep
|
||||
%time Tue, 1 Jul 2015
|
||||
%p
|
||||
Fixed a bug in the automatic updater for the resolvers list
|
||||
|
||||
%article
|
||||
%h2 Version 1.0.6 by AlterStep
|
||||
%time Tue, 10 Jun 2015
|
||||
%p
|
||||
Updated DNSCrypt proxy to version 1.5.0
|
||||
%p
|
||||
Updated libsodium to 1.0.3-minimal
|
||||
%p
|
||||
The list of available resolvers is automatically updated
|
||||
%p
|
||||
Improved privacy: ephemeral keys have been turned on
|
||||
%p
|
||||
Improved privacy: if no resolvers have been configured, a new one
|
||||
is randomly chosen after each reboot
|
||||
|
||||
%article
|
||||
%h2 Version 1.0.5 by AlterStep
|
||||
%time Tue, 06 Jan 2015
|
||||
%p
|
||||
Updated DNSCrypt proxy to version 1.4.3
|
||||
%p
|
||||
Updated libsodium to 1.0.1-minimal
|
||||
|
||||
%article
|
||||
%h2 Version 1.0.4 by AlterStep
|
||||
%time Thu, 19 Sep 2014
|
||||
%p
|
||||
Updated DNSCrypt proxy to version 1.4.1
|
||||
%p
|
||||
Updated libsodium to 0.7.0-minimal
|
||||
|
||||
%article
|
||||
%h2 Version 1.0.3 by AlterStep
|
||||
%time Thu, 18 Jun 2014
|
||||
%p
|
||||
Runs on OSX 10.8 (Mountain Lion), 10.9 (Mavericks) and 10.10 (Yosemite)
|
||||
%p
|
||||
New set of icons, contributed by Aaron VonderHaar
|
||||
|
||||
%article
|
||||
%h2 Version 1.0.2 by AlterStep
|
||||
%time Thu, 05 Jun 2014
|
||||
|
||||
@@ -3,28 +3,136 @@
|
||||
<head>
|
||||
<meta charset='utf-8'>
|
||||
<title>Release notes for DNSCrypt-OSXClient by AlterStep</title>
|
||||
<style type='text/css'>
|
||||
<style>
|
||||
body {
|
||||
font-family: arial, helvetica, sans-serif;
|
||||
margin: 0; }
|
||||
|
||||
h1, h2 {
|
||||
margin: 0; }
|
||||
|
||||
h1 {
|
||||
border-bottom: 1px solid grey; }
|
||||
|
||||
article {
|
||||
padding-left: 1em; }
|
||||
|
||||
time {
|
||||
font-style: italic; }
|
||||
</style>
|
||||
<style>
|
||||
body {
|
||||
font-family: arial, helvetica, sans-serif;
|
||||
margin: 0; }
|
||||
|
||||
h1, h2 {
|
||||
margin: 0; }
|
||||
|
||||
h1 {
|
||||
border-bottom: 1px solid grey; }
|
||||
|
||||
article {
|
||||
padding-left: 1em; }
|
||||
|
||||
time {
|
||||
font-style: italic; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Release Notes for DNSCrypt-OSXclient by AlterStep</h1>
|
||||
<article>
|
||||
<h2>Version 1.0.12 by AlterStep</h2>
|
||||
<time>Sun, Jul 31 2016</time>
|
||||
<p>
|
||||
Compatibility with OSX 10.12
|
||||
</p>
|
||||
<p>
|
||||
dnscrypt-proxy 1.7.0
|
||||
</p>
|
||||
<p>
|
||||
libsodium 1.0.9
|
||||
</p>
|
||||
<p>
|
||||
Fixed a regression in the automatic updater for the resolvers list
|
||||
</p>
|
||||
</article>
|
||||
<article>
|
||||
<h2>Version 1.0.11 by AlterStep</h2>
|
||||
<time>Thu, Mar 3 2016</time>
|
||||
<p>
|
||||
Compatibility with OSX 10.11
|
||||
</p>
|
||||
<p>
|
||||
dnscrypt-proxy 1.6.1
|
||||
</p>
|
||||
<p>
|
||||
libsodium 1.0.8
|
||||
</p>
|
||||
</article>
|
||||
<article>
|
||||
<h2>Version 1.0.10 by AlterStep</h2>
|
||||
<time>Tue, 23 Jul 2015</time>
|
||||
<p>
|
||||
Compatibility with OSX 10.11 beta 4
|
||||
</p>
|
||||
<p>
|
||||
dnscrypt-proxy 1.6.0
|
||||
</p>
|
||||
</article>
|
||||
<article>
|
||||
<h2>Version 1.0.9 by AlterStep</h2>
|
||||
<time>Tue, 12 Jul 2015</time>
|
||||
<p>
|
||||
Fixed an issue with libsodium not being found by minisign-verify
|
||||
</p>
|
||||
</article>
|
||||
<article>
|
||||
<h2>Version 1.0.8 by AlterStep</h2>
|
||||
<time>Tue, 12 Jul 2015</time>
|
||||
<p>
|
||||
New versions are automatically downloaded
|
||||
</p>
|
||||
</article>
|
||||
<article>
|
||||
<h2>Version 1.0.7 by AlterStep</h2>
|
||||
<time>Tue, 1 Jul 2015</time>
|
||||
<p>
|
||||
Fixed a bug in the automatic updater for the resolvers list
|
||||
</p>
|
||||
</article>
|
||||
<article>
|
||||
<h2>Version 1.0.6 by AlterStep</h2>
|
||||
<time>Tue, 10 Jun 2015</time>
|
||||
<p>
|
||||
Updated DNSCrypt proxy to version 1.5.0
|
||||
</p>
|
||||
<p>
|
||||
Updated libsodium to 1.0.3-minimal
|
||||
</p>
|
||||
<p>
|
||||
The list of available resolvers is automatically updated
|
||||
</p>
|
||||
<p>
|
||||
Improved privacy: ephemeral keys have been turned on
|
||||
</p>
|
||||
<p>
|
||||
Improved privacy: if no resolvers have been configured, a new one
|
||||
is randomly chosen after each reboot
|
||||
</p>
|
||||
</article>
|
||||
<article>
|
||||
<h2>Version 1.0.5 by AlterStep</h2>
|
||||
<time>Tue, 06 Jan 2015</time>
|
||||
<p>
|
||||
Updated DNSCrypt proxy to version 1.4.3
|
||||
</p>
|
||||
<p>
|
||||
Updated libsodium to 1.0.1-minimal
|
||||
</p>
|
||||
</article>
|
||||
<article>
|
||||
<h2>Version 1.0.4 by AlterStep</h2>
|
||||
<time>Thu, 19 Sep 2014</time>
|
||||
<p>
|
||||
Updated DNSCrypt proxy to version 1.4.1
|
||||
</p>
|
||||
<p>
|
||||
Updated libsodium to 0.7.0-minimal
|
||||
</p>
|
||||
</article>
|
||||
<article>
|
||||
<h2>Version 1.0.3 by AlterStep</h2>
|
||||
<time>Thu, 18 Jun 2014</time>
|
||||
<p>
|
||||
Runs on OSX 10.8 (Mountain Lion), 10.9 (Mavericks) and 10.10 (Yosemite)
|
||||
</p>
|
||||
<p>
|
||||
New set of icons, contributed by Aaron VonderHaar
|
||||
</p>
|
||||
</article>
|
||||
<article>
|
||||
<h2>Version 1.0.2 by AlterStep</h2>
|
||||
<time>Thu, 05 Jun 2014</time>
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
/usr/local/bin/alarmer
|
||||
@@ -1 +0,0 @@
|
||||
/usr/local/sbin/dnscrypt-proxy
|
||||
@@ -1 +0,0 @@
|
||||
/usr/local/bin/hostip
|
||||
@@ -1 +0,0 @@
|
||||
libsodium.10.dylib
|
||||
@@ -4,6 +4,8 @@
|
||||
|
||||
rm -f "$QUERY_LOG_FILE"
|
||||
rm -f "$DEBUG_LOG_FILE"
|
||||
find -x "$RESOLVERS_LIST_STATE" -type f -mtime +1 -exec rm -f {} \; 2>/dev/null
|
||||
find -x "$APP_UPDATES_STATE" -type f -mtime +1 -exec rm -f {} \; 2>/dev/null
|
||||
|
||||
./clear-fw.sh
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ try_resolution() {
|
||||
}
|
||||
|
||||
try_http_query() {
|
||||
exec alarmer 5 curl -L --max-redirs 5 -4 -m 5 \
|
||||
exec alarmer 5 curl -L --max-redirs 5 -4 -m 5 --connect-timeout 5 -s \
|
||||
http://www.apple.com 2>/dev/null | \
|
||||
fgrep -c Apple > /dev/null 2>&1
|
||||
}
|
||||
|
||||
@@ -8,8 +8,8 @@ exec 2>&1
|
||||
SOCKETFILTERFW='/usr/libexec/ApplicationFirewall/socketfilterfw'
|
||||
[ -x "$SOCKETFILTERFW" ] || exit 0
|
||||
|
||||
"$SOCKETFILTERFW" --add /usr/local/sbin/dnscrypt-proxy
|
||||
"$SOCKETFILTERFW" --unblockapp /usr/local/sbin/dnscrypt-proxy
|
||||
"$SOCKETFILTERFW" --add "${DNSCRYPT_USR_BASE_DIR}/sbin/dnscrypt-proxy"
|
||||
"$SOCKETFILTERFW" --unblockapp "${DNSCRYPT_USR_BASE_DIR}/sbin/dnscrypt-proxy"
|
||||
|
||||
"$SOCKETFILTERFW" --add /usr/local/bin/hostip
|
||||
"$SOCKETFILTERFW" --unblockapp /usr/local/bin/hostip
|
||||
"$SOCKETFILTERFW" --add "${DNSCRYPT_USR_BASE_DIR}/bin/hostip"
|
||||
"$SOCKETFILTERFW" --unblockapp "${DNSCRYPT_USR_BASE_DIR}/bin/hostip"
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
|
||||
CURRENT_VERSION=5
|
||||
|
||||
DNSCRYPT_USR_BASE_DIR='/Library/PreferencePanes/DNSCrypt.prefPane/Contents/Resources/usr'
|
||||
DNSCRYPT_VAR_BASE_DIR='/Library/Application Support/DNSCrypt'
|
||||
DNSCRYPT_LOG_BASE_DIR='/var/log'
|
||||
@@ -23,6 +26,7 @@ DEBUG_ENABLED_FILE="${CONTROL_DIR}/debug.enabled"
|
||||
PLUGINS_ENABLED_FILE="${CONTROL_DIR}/plugins.enabled"
|
||||
QUERY_LOGGING_FILE="${CONTROL_DIR}/plugin-query-logging.enabled"
|
||||
BLOCKING_FILE="${CONTROL_DIR}/plugin-blocking.enabled"
|
||||
AAAA_BLOCKING_FILE="${CONTROL_DIR}/plugin-aaaa-blocking.enabled"
|
||||
|
||||
QUERY_LOG_FILE="${DNSCRYPT_LOG_BASE_DIR}/dnscrypt-query.log"
|
||||
DEBUG_LOG_FILE="${DNSCRYPT_LOG_BASE_DIR}/dnscrypt-osxclient-debug.log"
|
||||
@@ -35,7 +39,15 @@ BLACKLIST_DOMAINS_TMP_FILE="${BLACKLIST_DOMAINS_FILE}.tmp"
|
||||
EXCEPTIONS_FILE="${CONTROL_DIR}/exceptions"
|
||||
EXCEPTIONS_TMP_FILE="${EXCEPTIONS_FILE}.tmp"
|
||||
|
||||
DEFAULT_RESOLVER_NAME='opendns'
|
||||
APP_UPDATES_BASE_URL="http://updates.dnscrypt.org/updates/dnscrypt-osx-client"
|
||||
APP_UPDATES_DIR="${DNSCRYPT_VAR_BASE_DIR}/updates"
|
||||
APP_UPDATES_PUBLIC_KEY="RWRvw8aArS/yEI3In0/zQSb9+qfWonLxjjEYG17cXt6zct6GLKtEvUfk"
|
||||
APP_UPDATES_STATE="${APP_UPDATES_DIR}/app-updated"
|
||||
|
||||
RESOLVERS_UPDATES_BASE_URL="http://updates.dnscrypt.org/dnscrypt-proxy"
|
||||
RESOLVERS_LIST_BASE_DIR="${DNSCRYPT_USR_BASE_DIR}/share/dnscrypt-proxy"
|
||||
RESOLVERS_LIST_PUBLIC_KEY="RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3"
|
||||
RESOLVERS_LIST_STATE="${STATES_DIR}/resolvers-updated"
|
||||
|
||||
INTERFACE_UNBOUND="127.0.0.53"
|
||||
INTERFACE_UNBOUND_MASK="24"
|
||||
@@ -45,12 +57,10 @@ INTERFACE_PROBES="127.0.0.55"
|
||||
INTERFACE_PROBES_MASK="24"
|
||||
|
||||
DOMAINS_EXCEPTIONS='
|
||||
freebox.fr fritz.box intranet lan localdomain nowtv.com private routerlogin.net l
|
||||
belkin corp domain example home host invalid lan local localdomain test freebox.fr fritz.box nowtv.com routerlogin.net l onion
|
||||
'
|
||||
|
||||
DISABLE_IPV6='no'
|
||||
|
||||
export PATH="${DNSCRYPT_USR_BASE_DIR}/bin:${DNSCRYPT_USR_BASE_DIR}/scripts:$PATH"
|
||||
export PATH="${DNSCRYPT_USR_BASE_DIR}/sbin:${DNSCRYPT_USR_BASE_DIR}/bin:${DNSCRYPT_USR_BASE_DIR}/scripts:$PATH"
|
||||
|
||||
init_interfaces() {
|
||||
/sbin/ifconfig lo0 alias ${INTERFACE_UNBOUND}/${INTERFACE_UNBOUND_MASK}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
#! /bin/sh
|
||||
|
||||
. ./common.inc
|
||||
|
||||
if [ -e "$AAAA_BLOCKING_FILE" ]; then
|
||||
echo 'yes'
|
||||
else
|
||||
echo 'no'
|
||||
fi
|
||||
@@ -4,5 +4,5 @@
|
||||
|
||||
[ -r "$DNSCRYPT_RESOLVER_NAME_FILE" ] && \
|
||||
sed 's/[^a-zA-Z0-9.-]/_/g' < "$DNSCRYPT_RESOLVER_NAME_FILE" && exit 0
|
||||
echo "$DEFAULT_RESOLVER_NAME"
|
||||
exit 0
|
||||
|
||||
exec ./get-random-resolver.sh
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
#! /bin/sh
|
||||
|
||||
. ./common.inc
|
||||
|
||||
(read header; fgrep -v :: | cut -d, -f1 | egrep -v '^\s*$') \
|
||||
< "${RESOLVERS_LIST_BASE_DIR}/dnscrypt-resolvers.csv" | \
|
||||
perl -MList::Util=shuffle -e 'print shuffle(<STDIN>);' | \
|
||||
head -n1
|
||||
@@ -15,6 +15,9 @@ fi
|
||||
mkdir -m 755 -p "$TICKETS_DIR" || exit 1
|
||||
chown -R "${wanted_uid}:0" "$TICKETS_DIR"
|
||||
|
||||
mkdir -m 755 -p "$APP_UPDATES_DIR" || exit 1
|
||||
chown -R "${wanted_uid}:0" "$APP_UPDATES_DIR"
|
||||
|
||||
eval $(stat -s "$CONTROL_DIR") || exit 1
|
||||
if [ $? != 0 ]; then
|
||||
mkdir -m 755 -p "$CONTROL_DIR" || exit 1
|
||||
|
||||
@@ -41,9 +41,15 @@ try_resolver() {
|
||||
case "$line" in
|
||||
*Proxying\ from\ *)
|
||||
logger_debug "Proxy for [$description] is up"
|
||||
|
||||
# This doesn't send anything to Apple, and any reliable domain name can be used --
|
||||
# The following line sends a common query to the chosen DNSCrypt resolver to
|
||||
# check that it responds and can be used instead of leaving the mac without
|
||||
# a working DNS configuration.
|
||||
answers=$(exec dig +time=1 +short +tries=2 -p $priority \
|
||||
@"$INTERFACE_PROBES" www.apple.com. 2> /dev/null | \
|
||||
egrep -ic '^[0-9.:]+$')
|
||||
|
||||
[ -r "$pid_file" ] && kill $(cat -- "$pid_file")
|
||||
if [ $answers -gt 0 ]; then
|
||||
logger_debug "Proxy for [$description] can be used"
|
||||
@@ -74,18 +80,6 @@ get_plugin_args() {
|
||||
logger_debug "dnscrypt-proxy should be (re)started, stopping previous instance if needed"
|
||||
./stop-dnscrypt-proxy.sh
|
||||
|
||||
ipv6_supported="no"
|
||||
if [ x"$DISABLE_IPV6" = "xno" ]; then
|
||||
logger_debug "Testing IPv6 connectivity"
|
||||
ping6 -c 1 2620:0:ccc::2 > /dev/null 2>&1
|
||||
if [ $? = 0 ]; then
|
||||
ipv6_supported="yes"
|
||||
logger_debug "IPv6 connectivity detected"
|
||||
else
|
||||
logger_debug "IPv6 connectivity is not available"
|
||||
fi
|
||||
fi
|
||||
|
||||
wait_pids=""
|
||||
|
||||
try_resolver 5004 "${RESOLVER_NAME} using DNSCrypt over UDP" \
|
||||
@@ -97,9 +91,13 @@ try_resolver 5005 "${RESOLVER_NAME} using DNSCrypt over TCP" \
|
||||
wait_pids="$wait_pids $!"
|
||||
|
||||
for pid in $wait_pids; do
|
||||
wait $pid
|
||||
wait
|
||||
best_file=$(ls "$RES_DIR" | head -n 1)
|
||||
[ x"$best_file" != "x" ] && break
|
||||
if [ ! -e "$DNSCRYPT_FILE" ]; then
|
||||
logger_debug "Aborted by user"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
if [ x"$best_file" = "x" ]; then
|
||||
@@ -111,14 +109,12 @@ plugins_args=''
|
||||
if [ -r "${DNSCRYPT_PROXY_PLUGINS_BASE_FILE}s.enabled" ]; then
|
||||
plugin_args=$(get_plugin_args)
|
||||
fi
|
||||
[ "$ipv6_supported" = "no" ] && \
|
||||
plugin_args="${plugin_args} --plugin=libdcplugin_example_ldns_aaaa_blocking.la"
|
||||
|
||||
best_args=$(cat "${RES_DIR}/${best_file}")
|
||||
|
||||
logger_debug "Starting dnscrypt-proxy $best_args"
|
||||
eval dnscrypt-proxy $best_args --local-address="$INTERFACE_PROXY" \
|
||||
--resolver-name="$RESOLVER_NAME" \
|
||||
--resolver-name="$RESOLVER_NAME" --ephemeral-keys \
|
||||
--pidfile="$PROXY_PID_FILE" --user=daemon --daemonize $plugin_args
|
||||
|
||||
if [ $? != 0 ]; then
|
||||
@@ -156,3 +152,7 @@ logger_debug "Current configuration doesn't seem to hijack all DNS queries"
|
||||
|
||||
mv "${DESCRIPTIONS_DIR}/${best_file}" \
|
||||
"${STATES_DIR}/dnscrypt-proxy-description" 2>/dev/null || exit 0
|
||||
|
||||
[ -e "$RESOLVERS_LIST_STATE" ] && exit 0
|
||||
touch "$RESOLVERS_LIST_STATE"
|
||||
exec ./update-resolvers-list.sh
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#! /bin/sh
|
||||
|
||||
. ./common.inc
|
||||
|
||||
rm -f "$AAAA_BLOCKING_FILE"
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
#! /bin/sh
|
||||
|
||||
. ./common.inc
|
||||
|
||||
echo "libdcplugin_example_ldns_aaaa_blocking.la" > "$AAAA_BLOCKING_FILE"
|
||||
|
||||
touch "$PLUGINS_ENABLED_FILE"
|
||||
@@ -2,8 +2,9 @@
|
||||
|
||||
. ./common.inc
|
||||
|
||||
PAUSE_MAX=10
|
||||
PAUSE_INCREMENT=0.1
|
||||
PAUSE_MAX=50
|
||||
PAUSE_UNIT=0.1
|
||||
PAUSE_INCREMENT=1
|
||||
|
||||
[ ! -e "$DNSCRYPT_FILE" ] && exit 0
|
||||
|
||||
@@ -21,18 +22,23 @@ while [ -e "$DNSCRYPT_FILE" ]; do
|
||||
./switch-to-dhcp.sh
|
||||
fi
|
||||
fi
|
||||
if [ $pause -lt $PAUSE_MAX ]; then
|
||||
pause=$((pause + $PAUSE_INCREMENT))
|
||||
[ $pause -lt $PAUSE_MAX ] && pause=$((pause + 1))
|
||||
pause_counter=0
|
||||
while [ -e "$DNSCRYPT_FILE" -a $pause_counter -lt $pause ]; do
|
||||
sleep $PAUSE_UNIT
|
||||
pause_counter=$((pause_counter + 1))
|
||||
done
|
||||
[ ! -e "$DNSCRYPT_FILE" ] && break
|
||||
if [ -e "$FALLBACK_FILE" ]; then
|
||||
logger_debug "Checking if the router hijacks HTTP queries"
|
||||
if ./check-hijacking.sh; then
|
||||
logger_debug "The router doesn't hijack HTTP queries"
|
||||
else
|
||||
logger_debug "The router hijacks HTTP queries - DNSCrypt is likely to be blocked"
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
sleep $pause
|
||||
logger_debug "Checking if the router hijacks HTTP queries"
|
||||
if ./check-hijacking.sh; then
|
||||
logger_debug "The router doesn't hijack HTTP queries"
|
||||
else
|
||||
logger_debug "The router hijacks HTTP queries - DNSCrypt is likely to be blocked"
|
||||
continue
|
||||
fi
|
||||
./start-dnscrypt-proxy.sh
|
||||
./start-dnscrypt-proxy.sh || continue
|
||||
./check-local-dns.sh || continue
|
||||
./set-dns.sh "$INTERFACE_PROXY"
|
||||
if [ $? != 0 ]; then
|
||||
|
||||
@@ -8,7 +8,7 @@ if [ ! -s "$BLACKLIST_DOMAINS_TMP_FILE" ]; then
|
||||
fi
|
||||
|
||||
tr -s '[:blank:]' '\n' < "$BLACKLIST_DOMAINS_TMP_FILE" | \
|
||||
egrep -vi '^(apple[.]com|resolver1[.]opendns[.]com)$' > \
|
||||
egrep -vi '^(apple[.]com)$' > \
|
||||
"${BLACKLIST_DOMAINS_TMP_FILE}~" &&
|
||||
mv "${BLACKLIST_DOMAINS_TMP_FILE}~" "$BLACKLIST_DOMAINS_FILE"
|
||||
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
#! /bin/sh
|
||||
|
||||
. ./common.inc
|
||||
|
||||
DNSCRYPT_LIB_BASE_DIR="${DNSCRYPT_USR_BASE_DIR}/lib"
|
||||
export DYLD_LIBRARY_PATH="${DNSCRYPT_LIB_BASE_DIR}:${DYLD_LIBRARY_PATH}"
|
||||
|
||||
TARGET_DIR=~/Desktop
|
||||
|
||||
[ -e "$APP_UPDATES_STATE" ] && exit 0
|
||||
touch "$APP_UPDATES_STATE" || exit 1
|
||||
|
||||
[ -d "$TARGET_DIR" ] || exit 1
|
||||
mkdir -p "$APP_UPDATES_DIR" || exit 1
|
||||
|
||||
curl -L --max-redirs 5 -4 -m 30 --connect-timeout 30 -s \
|
||||
"${APP_UPDATES_BASE_URL}/versions.txt" > "${APP_UPDATES_DIR}/versions.txt" || exit 1
|
||||
|
||||
CURRENT_HASH=$(shasum -a 512 "${APP_UPDATES_DIR}/versions.txt")
|
||||
OLD_HASH=$(cat "${APP_UPDATES_DIR}/versions_hash" 2> /dev/null)
|
||||
[ "x$CURRENT_HASH" = "x$OLD_HASH" ] && exit 0
|
||||
|
||||
curl -L --max-redirs 5 -4 -m 30 --connect-timeout 30 -s \
|
||||
"${APP_UPDATES_BASE_URL}/versions.txt.minisig" > "${APP_UPDATES_DIR}/versions.txt.minisig" || exit 1
|
||||
|
||||
minisign-verify -q -V -P "$APP_UPDATES_PUBLIC_KEY" -m "${APP_UPDATES_DIR}/versions.txt" || exit 1
|
||||
rm -f "${APP_UPDATES_DIR}/versions.txt.minisig"
|
||||
|
||||
OS_VERSION=$(sw_vers -productVersion | sed 's/[^0-9.]$//' | cut -d. -f1-2) || exit 0
|
||||
AVAILABLE=$(egrep "^${OS_VERSION} " "${APP_UPDATES_DIR}/versions.txt") || exit 0
|
||||
rm -f "${APP_UPDATES_DIR}/versions.txt"
|
||||
AVAILABLE_VERSION=$(echo "$AVAILABLE" | cut -d' ' -f2 | sed 's/[^0-9]//g')
|
||||
DOWNLOAD_URL=$(echo "$AVAILABLE" | cut -d' ' -f3 | sed 's/ //g')
|
||||
DOWNLOADED_FILE="${TARGET_DIR}/dnscrypt-update-${AVAILABLE_VERSION}.dmg"
|
||||
[ -f "$DOWNLOADED_FILE" ] && exit 0
|
||||
[ -z "$AVAILABLE_VERSION" -o -z "$DOWNLOAD_URL" ] && exit 1
|
||||
[ "$AVAILABLE_VERSION" -gt "$CURRENT_VERSION" ] || exit 0
|
||||
SIG_DOWNLOAD_URL="${DOWNLOAD_URL}.minisig"
|
||||
|
||||
curl -L --max-redirs 5 -4 -m 30 --connect-timeout 30 -s \
|
||||
"$SIG_DOWNLOAD_URL" > "${APP_UPDATES_DIR}/update.tmp.minisig" || exit 1
|
||||
|
||||
curl -L --max-redirs 5 -4 -m 300 --connect-timeout 30 -s --compress \
|
||||
"$DOWNLOAD_URL" > "${APP_UPDATES_DIR}/update.tmp" || exit 1
|
||||
|
||||
minisign-verify -q -V -P "$APP_UPDATES_PUBLIC_KEY" -m "${APP_UPDATES_DIR}/update.tmp" || exit 1
|
||||
rm -f "${APP_UPDATES_DIR}/update.tmp.minisig"
|
||||
|
||||
mv -f "${APP_UPDATES_DIR}/update.tmp" "$DOWNLOADED_FILE" || exit 1
|
||||
echo "$CURRENT_HASH" > "${APP_UPDATES_DIR}/versions_hash"
|
||||
|
||||
osascript -e "display notification \"A new version of DNSCrypt has been downloaded and saved on your desktop. Install it whenever you want!\" with title \"A new version of DNSCrypt is available!\" sound name \"Hero\""
|
||||
@@ -0,0 +1,22 @@
|
||||
#! /bin/sh
|
||||
|
||||
. ./common.inc
|
||||
|
||||
DNSCRYPT_LIB_BASE_DIR="${DNSCRYPT_USR_BASE_DIR}/lib"
|
||||
export DYLD_LIBRARY_PATH="${DNSCRYPT_LIB_BASE_DIR}:${DYLD_LIBRARY_PATH}"
|
||||
|
||||
logger_debug "Checking if updates to the resolvers list are available"
|
||||
|
||||
curl -L --max-redirs 5 -4 -m 30 --connect-timeout 30 -s \
|
||||
"${RESOLVERS_UPDATES_BASE_URL}/dnscrypt-resolvers.csv" > \
|
||||
"${RESOLVERS_LIST_BASE_DIR}/dnscrypt-resolvers.csv.tmp" &&
|
||||
curl -L --max-redirs 5 -4 -m 30 --connect-timeout 30 -s \
|
||||
"${RESOLVERS_UPDATES_BASE_URL}/dnscrypt-resolvers.csv.minisig" > \
|
||||
"${RESOLVERS_LIST_BASE_DIR}/dnscrypt-resolvers.csv.minisig" &&
|
||||
minisign-verify -Vm ${RESOLVERS_LIST_BASE_DIR}/dnscrypt-resolvers.csv.tmp \
|
||||
-x "${RESOLVERS_LIST_BASE_DIR}/dnscrypt-resolvers.csv.minisig" \
|
||||
-P "$RESOLVERS_LIST_PUBLIC_KEY" -q &&
|
||||
mv -f ${RESOLVERS_LIST_BASE_DIR}/dnscrypt-resolvers.csv.tmp \
|
||||
${RESOLVERS_LIST_BASE_DIR}/dnscrypt-resolvers.csv
|
||||
|
||||
logger_debug "Resolvers list is up to date"
|
||||
@@ -0,0 +1,42 @@
|
||||
#! /bin/sh
|
||||
|
||||
mkdir -p extra/usr/bin
|
||||
cp /Library/PreferencePanes/DNSCrypt.prefPane/Contents/Resources/usr/bin/hostip \
|
||||
extra/usr/bin/
|
||||
|
||||
mkdir -p extra/usr/sbin
|
||||
cp /Library/PreferencePanes/DNSCrypt.prefPane/Contents/Resources/usr/sbin/dnscrypt-proxy \
|
||||
extra/usr/sbin/
|
||||
|
||||
mkdir -p extra/usr/lib
|
||||
|
||||
cp /opt/ldns/lib/libldns.1.dylib \
|
||||
extra/usr/lib/
|
||||
( cd extra/usr/lib &&
|
||||
rm -f libldns.dylib &&
|
||||
ln -fs libldns.1.dylib libldns.dylib )
|
||||
|
||||
if [ -f /usr/local/lib/libsodium.18.dylib ]; then
|
||||
echo '*** /usr/local/lib/libsodium.{dylib,la} found'
|
||||
echo '*** Compile dnscrypt-proxy without them to get a static build'
|
||||
sleep 10
|
||||
fi
|
||||
|
||||
cp /usr/local/lib/libsodium.18.dylib \
|
||||
extra/usr/lib/
|
||||
( cd extra/usr/lib &&
|
||||
rm -f libsodium.dylib &&
|
||||
ln -fs libsodium.18.dylib libsodium.dylib )
|
||||
|
||||
mkdir -p extra/usr/lib/dnscrypt-proxy
|
||||
|
||||
cp /Library/PreferencePanes/DNSCrypt.prefPane/Contents/Resources/usr/lib/dnscrypt-proxy/* \
|
||||
extra/usr/lib/dnscrypt-proxy/
|
||||
|
||||
mkdir -p extra/usr/share/dnscrypt-proxy
|
||||
|
||||
cp /Library/PreferencePanes/DNSCrypt.prefPane/Contents/Resources/usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv \
|
||||
extra/usr/share/dnscrypt-proxy/
|
||||
|
||||
cp /Library/PreferencePanes/DNSCrypt.prefPane/Contents/Resources/usr/share/dnscrypt-proxy/minisign.pub \
|
||||
extra/usr/share/dnscrypt-proxy/
|
||||
@@ -1,17 +1,13 @@
|
||||
OSX client for managing the DNSCrypt Proxy
|
||||
==========================================
|
||||
|
||||
The purpose of this application is to allow the user to have a better
|
||||
experience controlling the DNSCrypt Proxy on OSX.
|
||||
The purpose of this application is to allow the user to have a better experience controlling the DNSCrypt Proxy on OSX.
|
||||
|
||||
[Download dnscrypt-osxclient-1.0.1.zip](https://github.com/alterstep/dnscrypt-osxclient/releases/download/1.0.1/dnscrypt-osxclient-1.0.1.zip)
|
||||
for OSX 10.8 (Mountain Lion) and OSX 10.9 (Mavericks).
|
||||
[Download dnscrypt-osxclient.dmg](https://github.com/alterstep/dnscrypt-osxclient/releases/latest)
|
||||
for OSX 10.8 (Mountain Lion), OSX 10.9 (Mavericks), OSX 10.10 (Yosemite) and OSX 10.11 (El Capitan).
|
||||
|
||||
Compatible with:
|
||||
* CloudNS
|
||||
* d0wn
|
||||
* DNSCrypt.eu
|
||||
* okTurtles
|
||||
* OpenDNS
|
||||
* OpenNIC
|
||||
* Soltysiak
|
||||
Compatible with all the DNS servers with DNSCrypt enabled.
|
||||
|
||||
Packages are signed with [Minisign](https://jedisct1.github.io/minisign/) and can be verified with:
|
||||
|
||||
minisign -V -P RWRvw8aArS/yEI3In0/zQSb9+qfWonLxjjEYG17cXt6zct6GLKtEvUfk -m dnscrypt-osxclient-*.dmg
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
My PGP public key, to verify the releases:
|
||||
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG v1
|
||||
|
||||
mQENBFV3cvYBCACmUwWPeGbnzEsBzdsq+15a9td4RjuJsUEAxhCkXAp36Hn0lVJB
|
||||
Bz1Mcjqoo3Im6S/ec6EEQQrLuZBvuL4LnSWaIa+6HfPQiEr3mD/kyKp371jvrKkl
|
||||
lIRqa4fZWKoasRhLBqo4lTUsrR3wblbmnFRjTNMBB3ltfi8VMmr//KEHJx8hkgpQ
|
||||
udJoBF5fZ8RQZsFjbqxncE2/pwYmOE+rO7hEkULx6KnkxqUkpxjnPkAmf+7G3bpS
|
||||
K+l4ZIakOFwRELvqU9pX6T4mx5/GpMv5F+gJGjRHOMUeSQLhzLTKihBpHa1OnMGC
|
||||
zD0fB24Msn+0g2rsReccuFo9qLkCc3IvaGAHABEBAAG0CkFsdGVyIFN0ZXCJATgE
|
||||
EwECACIFAlV3cvYCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEGm4VoCb
|
||||
8nqtAEEH/A31A04X51I6gEiEsd1Il310GWF/SD1r9G2B64zAenlfQo8yY1qeCRZi
|
||||
Sh5TGVpXmnv4IK+BbuAZLxr5X8fs5UtX+otrgGbiS9cJSsIhffHyeCiRZyNgcPuQ
|
||||
ZCRLjNx9zt3as/TZUBKEudzOiCRvTFGm7mZHgmV1NTY62qy/lDl+fNWK9nBea0/W
|
||||
Tvv3rDNyL6ic4aoEeYBbFsHzdcEFpVtLEeOpB2n8z8aA/7yvXKSQNf5nkFwytPmd
|
||||
5gIMons58jwDjiWpkTxhzHYpwegMkqkEpizA82lHNt2q/IeLxNFeIkUIOPTsij7K
|
||||
RitethBvVU5bhRCgur6V/6qy8kJX92G5AQ0EVXdy9gEIAL4qJzGDAl28z50vob6D
|
||||
h2Ime9nIZohm0Fw4jk/bae2LQPnv/VMcCjleJ0VOZfjs3X4FYzv5gCKMz+Jcn1Q2
|
||||
6kOqct/AO8XWBXXrlAd3z6Kf19IkrWtjeG9G2nN047R0l1xLj9+VAWhTK29aDkt8
|
||||
oLUMZBkQXmYcK+caQfrc2KR1Ok0JQ4qGa4hRqnnTTODZJ56iHIx0c68BWl0DlU69
|
||||
t4E+7KreiPxH43dx6mmC3DXfZcOMJnKXJelf2gCQfO0j1wHLen+7uT4/YY1jMKec
|
||||
jhDgTTFJR26iMw+XdoWjJWThBwlZ+0CqoHDEYBEs3dSgtipaMNS69NR7bzUzrPUl
|
||||
1vMAEQEAAYkBHwQYAQIACQUCVXdy9gIbDAAKCRBpuFaAm/J6raWYB/9YalFKgnnu
|
||||
a3r3tcGkPnYgGDf8s1upG5kgcaROXmhuWq6CCsk3WyvGRGLnafMXi6mE+rBDKgij
|
||||
GSJ+C+kgvXgGU1QRl9XL0hJLT9O0QrHt6TAfqJsDY1kHR0M8WaYj0RTr+3OAyJhg
|
||||
kM1oEvabhrCbPNVxznCAMmT9z5U1i1NYqacjAQfnR8nHr3C6oHnj/gaQQOTO3xJg
|
||||
rBMymDhBVoWMkoaoXYNqJNpgCuAAhmmUM1AtMA+RkWeSIzCUD+1GhO5VQyjtsdHZ
|
||||
aC08CMLzjpG+VI+LgaU2pHUwwCLNEiA701AwSg4RMRj2ARjKWtOh6tqIN1UgTp1N
|
||||
tg4DrEN2CFSW
|
||||
=TN6d
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
@@ -0,0 +1,2 @@
|
||||
untrusted comment: alterstep minisign public key 10F22FAD80C6C36F
|
||||
RWRvw8aArS/yEI3In0/zQSb9+qfWonLxjjEYG17cXt6zct6GLKtEvUfk
|
||||
@@ -0,0 +1,5 @@
|
||||
10.8 5 https://github.com/alterstep/dnscrypt-osxclient/releases/download/1.0.12/dnscrypt-osxclient-1.0.12.dmg
|
||||
10.9 5 https://github.com/alterstep/dnscrypt-osxclient/releases/download/1.0.12/dnscrypt-osxclient-1.0.12.dmg
|
||||
10.10 5 https://github.com/alterstep/dnscrypt-osxclient/releases/download/1.0.12/dnscrypt-osxclient-1.0.12.dmg
|
||||
10.11 5 https://github.com/alterstep/dnscrypt-osxclient/releases/download/1.0.12/dnscrypt-osxclient-1.0.12.dmg
|
||||
10.12 5 https://github.com/alterstep/dnscrypt-osxclient/releases/download/1.0.12/dnscrypt-osxclient-1.0.12.dmg
|
||||
@@ -0,0 +1,4 @@
|
||||
untrusted comment: signature from minisign secret key
|
||||
RWRvw8aArS/yEJ4dpKMNawnmT9zOyXUpQ74mVAjMsxG3VygtaF+6k7YPoire23Tqdk0lcolS16ngIg9dCJPXuNuWUFFwIzqKIQ4=
|
||||
trusted comment: timestamp:1469970056 file:versions.txt
|
||||
Sp5RYaUW/tOqKM2Lq2w1Qb1QyH9VTCBG0vwB5VatktYhnXLawYVIQ0eUoDSPhSwiDzxMGNUtPaHoQT0stumjAg==
|
||||