Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
024ed9d287 | ||
|
|
cbe7f394ee | ||
|
|
b83a2f514c | ||
|
|
362c2043eb | ||
|
|
6602c4ab5d | ||
|
|
c4c4748352 | ||
|
|
7ed00f4a7a | ||
|
|
8aa0f90f16 | ||
|
|
07c8f437b4 | ||
|
|
07900f384b | ||
|
|
ebfd2eead8 | ||
|
|
43bc6e81d4 | ||
|
|
263d24c5e6 | ||
|
|
a664db7d22 | ||
|
|
bf7c7534cf | ||
|
|
9234cd2362 | ||
|
|
85277fd597 | ||
|
|
1ddd8d28d6 | ||
|
|
8ab74b6406 | ||
|
|
bf0d5a0eb5 | ||
|
|
6285a75499 | ||
|
|
9ee80347f5 | ||
|
|
63e6052caf | ||
|
|
2647aadad8 | ||
|
|
6020eb8505 | ||
|
|
d5f551de8a | ||
|
|
1c8e2e4fa1 | ||
|
|
093ab54300 | ||
|
|
d15252db40 | ||
|
|
50dc9a9382 | ||
|
|
75d3983289 | ||
|
|
24227488db | ||
|
|
cbfa42cb3a | ||
|
|
2f6ab604fc | ||
|
|
7bea3fbc63 | ||
|
|
a790696cdc | ||
|
|
e9ef33c652 | ||
|
|
0bc15a0b7d | ||
|
|
4ee0bee8bf | ||
|
|
1953182435 | ||
|
|
dfb93446e6 | ||
|
|
982c9de99f | ||
|
|
26c4efbfd8 | ||
|
|
3b6db0ef37 | ||
|
|
5e16b57247 | ||
|
|
92a8b0b097 | ||
|
|
fde1ebff46 | ||
|
|
1dc4493321 | ||
|
|
7b6f59025e | ||
|
|
9193375610 | ||
|
|
ce39c0b767 | ||
|
|
1a40da6a28 | ||
|
|
c5037615fb | ||
|
|
f1b8f2bfa6 | ||
|
|
22cbc2809b | ||
|
|
08e745dc2b | ||
|
|
1369f07a58 | ||
|
|
7a2e79b04e | ||
|
|
8048d73038 | ||
|
|
f9728ffd45 | ||
|
|
9ffa57ba8d | ||
|
|
6fb79a786d | ||
|
|
74c860fdfb | ||
|
|
3234989005 | ||
|
|
7b976aaa33 | ||
|
|
11969f98da | ||
|
|
951b3df6a9 | ||
|
|
0388eb87d8 | ||
|
|
582c1eb9a7 | ||
|
|
b5578e94e1 | ||
|
|
3782b2851b | ||
|
|
901537f8d5 | ||
|
|
b8c538e4aa | ||
|
|
f16b2c2717 | ||
|
|
578362d2f3 | ||
|
|
8786d2df3a | ||
|
|
8ef1d62cbd | ||
|
|
052febc509 | ||
|
|
e889c387e1 | ||
|
|
97350f2207 | ||
|
|
55cd65f0ad | ||
|
|
9f10b681dc | ||
|
|
df1e23bef7 | ||
|
|
f5678bdd45 | ||
|
|
507a09aa47 | ||
|
|
c381885f6a | ||
|
|
4112c0c19a | ||
|
|
796b767e47 |
@@ -60,19 +60,19 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
|
||||
_opendnsMenuItem.state = 0;
|
||||
_fallbackMenuItem.state = 0;
|
||||
|
||||
res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./get-dnscrypt-status.sh", nil]];
|
||||
res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./get-dnscrypt-status.sh", nil]];
|
||||
if ([res isEqualToString: @"yes"]) {
|
||||
[_dnscryptMenuItem setState: 1];
|
||||
}
|
||||
res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./get-familyshield-status.sh", nil]];
|
||||
res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./get-familyshield-status.sh", nil]];
|
||||
if ([res isEqualToString: @"yes"]) {
|
||||
[_familyShieldMenuItem setState: 1];
|
||||
}
|
||||
res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./get-insecure-opendns-status.sh", nil]];
|
||||
res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./get-insecure-opendns-status.sh", nil]];
|
||||
if ([res isEqualToString: @"yes"]) {
|
||||
[_opendnsMenuItem setState: 1];
|
||||
}
|
||||
res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./get-fallback-status.sh", nil]];
|
||||
res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./get-fallback-status.sh", nil]];
|
||||
if ([res isEqualToString: @"yes"]) {
|
||||
[_fallbackMenuItem setState: 1];
|
||||
}
|
||||
@@ -119,7 +119,7 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
|
||||
|
||||
- (BOOL) updateStatusWithCurrentConfig
|
||||
{
|
||||
NSString *stateDescription = [self fromCommand: @"/bin/ksh" 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: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./get-current-resolvers.sh | ./get-resolvers-description.sh", nil]];
|
||||
if ([stateDescription isEqualToString: @"FamilyShield"]) {
|
||||
currentState = kDNS_CONFIGURATION_OPENDNS;
|
||||
} else if ([stateDescription isEqualToString: @"DNSCrypt"]) {
|
||||
@@ -136,11 +136,11 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
|
||||
}
|
||||
[self updateLedStatus];
|
||||
|
||||
NSString *currentResolvers = [self fromCommand: @"/bin/ksh" 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: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./get-current-resolvers.sh | ./get-upstream-resolvers.sh", nil]];
|
||||
_statusConfigurationMenuItem.title = stateDescription;
|
||||
_statusResolversMenuItem.title = currentResolvers;
|
||||
|
||||
NSString *res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./gui-pop-conf-change.sh menubar", nil]];
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./gui-pop-conf-change.sh menubar", nil]];
|
||||
if ([res isEqualToString: @"yes"]) {
|
||||
[self initState];
|
||||
}
|
||||
@@ -159,7 +159,7 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
|
||||
NSString *res;
|
||||
static unsigned int tries;
|
||||
|
||||
res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./get-tickets-count.sh", nil]];
|
||||
res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_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];
|
||||
@@ -179,7 +179,7 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
|
||||
_statusItem.image = led;
|
||||
[led release];
|
||||
|
||||
[self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./gui-push-conf-change.sh prefpane", nil]];
|
||||
[self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./gui-push-conf-change.sh prefpane", nil]];
|
||||
|
||||
[NSObject cancelPreviousPerformRequestsWithTarget: self selector: @selector(periodicallyUpdateStatusWithCurrentConfig) object: nil];
|
||||
[NSObject cancelPreviousPerformRequestsWithTarget: self selector: @selector(waitForUpdate) object: nil];
|
||||
@@ -223,56 +223,56 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
|
||||
|
||||
- (BOOL) setDNSCryptOn {
|
||||
[self showSpinners];
|
||||
NSString *res = [self fromCommand: @"/bin/ksh" 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: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-to-dnscrypt.sh", nil]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (BOOL) setDNSCryptOff {
|
||||
[self showSpinners];
|
||||
NSString *res = [self fromCommand: @"/bin/ksh" 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: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-to-dhcp.sh", nil]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (BOOL) setFamilyShieldOn {
|
||||
[self showSpinners];
|
||||
NSString *res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-familyshield-on.sh", nil]];
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-familyshield-on.sh", nil]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (BOOL) setFamilyShieldOff {
|
||||
[self showSpinners];
|
||||
NSString *res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-familyshield-off.sh", nil]];
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-familyshield-off.sh", nil]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (BOOL) setInsecureOpenDNSOn {
|
||||
[self showSpinners];
|
||||
NSString *res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-insecure-opendns-on.sh", nil]];
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-insecure-opendns-on.sh", nil]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (BOOL) setInsecureOpenDNSOff {
|
||||
[self showSpinners];
|
||||
NSString *res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-insecure-opendns-off.sh", nil]];
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-insecure-opendns-off.sh", nil]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (BOOL) setFallbackOn {
|
||||
[self showSpinners];
|
||||
NSString *res = [self fromCommand: @"/bin/ksh" 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: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-fallback-on.sh", nil]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (BOOL) setFallbackOff {
|
||||
[self showSpinners];
|
||||
NSString *res = [self fromCommand: @"/bin/ksh" 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: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-fallback-off.sh", nil]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -17,11 +17,11 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>0.16 (beta)</string>
|
||||
<string>0.19 (beta)</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>0.16</string>
|
||||
<string>0.19</string>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
<string>public.app-category.utilities</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
|
||||
+652
@@ -0,0 +1,652 @@
|
||||
<?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>
|
||||
Executable
+7
@@ -0,0 +1,7 @@
|
||||
#! /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) &
|
||||
@@ -441,6 +441,200 @@
|
||||
<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_forward_after_nxdomain.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_forward_after_nxdomain.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>
|
||||
@@ -634,7 +828,7 @@
|
||||
<key>USE_HFS+_COMPRESSION</key>
|
||||
<true/>
|
||||
<key>VERSION</key>
|
||||
<string>1.1.0.2</string>
|
||||
<string>1.2.0</string>
|
||||
</dict>
|
||||
<key>UUID</key>
|
||||
<string>7F7D70AB-F7A2-4027-8304-3063C7B9532F</string>
|
||||
@@ -1241,7 +1435,7 @@
|
||||
<key>USE_HFS+_COMPRESSION</key>
|
||||
<true/>
|
||||
<key>VERSION</key>
|
||||
<string>0.16</string>
|
||||
<string>0.19</string>
|
||||
</dict>
|
||||
<key>TYPE</key>
|
||||
<integer>0</integer>
|
||||
@@ -1734,7 +1928,7 @@
|
||||
<key>USE_HFS+_COMPRESSION</key>
|
||||
<true/>
|
||||
<key>VERSION</key>
|
||||
<string>0.16</string>
|
||||
<string>0.19</string>
|
||||
</dict>
|
||||
<key>TYPE</key>
|
||||
<integer>0</integer>
|
||||
|
||||
@@ -7,8 +7,14 @@ exec 2>/dev/null
|
||||
/bin/mkdir -p '/Library/Application Support/DNSCrypt/probes'
|
||||
/bin/mkdir -p '/Library/Application Support/DNSCrypt/states'
|
||||
/bin/mkdir -p '/Library/Application Support/DNSCrypt/tickets'
|
||||
/usr/sbin/chown -R 0:0 '/Library/Application Support/DNSCrypt'
|
||||
/bin/chmod 755 '/Library/Application Support/DNSCrypt'
|
||||
/bin/chmod 755 '/usr/local/bin/hostip'
|
||||
/bin/chmod 755 '/usr/local/sbin/dnscrypt-proxy'
|
||||
/bin/chmod -R 755 '/usr/local/lib/dnscrypt-proxy'
|
||||
/usr/sbin/chown -R 0:0 '/Library/Application Support/DNSCrypt'
|
||||
/usr/sbin/chown 0:0 '/usr/local/bin/hostip'
|
||||
/usr/sbin/chown 0:0 '/usr/local/lib/dnscrypt-proxy'
|
||||
/usr/sbin/chown -R 0:0 '/usr/local/sbin/dnscrypt-proxy'
|
||||
|
||||
eval $(/usr/bin/stat -s '/dev/console')
|
||||
if [ $? != 0 ]; then
|
||||
@@ -19,6 +25,9 @@ if [ $? != 0 ]; then
|
||||
'/Library/Application Support/DNSCrypt/tickets'
|
||||
fi
|
||||
|
||||
rm -f '/Library/Application Support/DNSCrypt/control/plugin-parental-controls.enabled'
|
||||
rm -f '/Library/Application Support/DNSCrypt/control/plugin-lockin.enabled'
|
||||
|
||||
for service in com.opendns.osx.DNSCryptAfterboot \
|
||||
com.opendns.osx.DNSCryptConsoleChange \
|
||||
com.opendns.osx.DNSCryptControlChange \
|
||||
|
||||
@@ -1,26 +1,31 @@
|
||||
#! /bin/sh
|
||||
|
||||
VERSION='0.16'
|
||||
VERSION='0.19'
|
||||
|
||||
cd build || exit 1
|
||||
[ -d DNSCrypt.mpkg ] || exit 1
|
||||
|
||||
(
|
||||
cd DNSCrypt.mpkg/Contents/Packages || exit 1
|
||||
|
||||
for pkg in *pkg; do
|
||||
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
|
||||
rm -fr DNSCrypt-OSX.mpkg DNSCrypt-unsigned.mpkg
|
||||
productsign --sign 'Developer ID Application' DNSCrypt.mpkg DNSCrypt-OSX.mpkg
|
||||
zip -9 -r "dnscrypt-osx-client-${VERSION}.zip" DNSCrypt-OSX.mpkg
|
||||
mv DNSCrypt.mpkg DNSCrypt-unsigned.mpkg
|
||||
mv DNSCrypt-OSX.mpkg DNSCrypt.mpkg
|
||||
zip -9 -r "dnscrypt-osx-client-${VERSION}.zip" DNSCrypt.mpkg
|
||||
rm -fr dnscrypt-pkg
|
||||
rm -f "dnscrypt-osx-client-${VERSION}.dmg"
|
||||
mkdir dnscrypt-pkg
|
||||
mv DNSCrypt-OSX.mpkg dnscrypt-pkg
|
||||
mv DNSCrypt.mpkg dnscrypt-pkg
|
||||
hdiutil create "dnscrypt-osx-client-${VERSION}.dmg" -srcfolder dnscrypt-pkg
|
||||
|
||||
mv dnscrypt-pkg/DNSCrypt-OSX.mpkg .
|
||||
mv dnscrypt-pkg/DNSCrypt.mpkg .
|
||||
rm -fr dnscrypt-pkg
|
||||
rm -fr DNSCrypt-unsigned.mpkg
|
||||
|
||||
@@ -17,11 +17,11 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>0.16</string>
|
||||
<string>0.19</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>0.16</string>
|
||||
<string>0.19</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>Copyright © 2011-2012 OpenDNS Inc. All rights reserved.</string>
|
||||
<key>NSMainNibFile</key>
|
||||
|
||||
@@ -9,15 +9,21 @@
|
||||
#import <PreferencePanes/PreferencePanes.h>
|
||||
#import <WebKit/WebKit.h>
|
||||
|
||||
#define kDNSCRYPT_PACKAGE_VERSION @"0.16"
|
||||
#define kDNSCRYPT_PACKAGE_VERSION @"0.19"
|
||||
|
||||
#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_VAR_BASE_DIR @"/Library/Application Support/DNSCrypt"
|
||||
#define kDNSCRYPT_CONTROL_DIR kDNSCRYPT_VAR_BASE_DIR @"/control"
|
||||
|
||||
#define kOPENDNS_URL @"http://www.opendns.com"
|
||||
#define kDNSCRYPT_QUERY_LOG_FILE @"/var/log/dnscrypt-query.log"
|
||||
#define kDNSCRYPT_BLACKLIST_IPS_TMP_FILE kDNSCRYPT_CONTROL_DIR @"/blacklist-ips.tmp"
|
||||
#define kDNSCRYPT_BLACKLIST_DOMAINS_TMP_FILE kDNSCRYPT_CONTROL_DIR @"/blacklist-domains.tmp"
|
||||
#define kDNSCRYPT_EXCEPTIONS_TMP_FILE kDNSCRYPT_CONTROL_DIR @"/exceptions.tmp"
|
||||
|
||||
#define kOPENDNS_URL @"https://www.opendns.com/welcome/"
|
||||
|
||||
#define kBUNDLE_IDENTIFIER @"com.opendns.osx.DNSCrypt"
|
||||
|
||||
@@ -48,6 +54,13 @@ typedef enum {
|
||||
@property (nonatomic, retain) IBOutlet WebView *releaseNotesWebView;
|
||||
@property (nonatomic, retain) IBOutlet WebView *feedbackWebView;
|
||||
@property (nonatomic, retain) IBOutlet WebView *aboutWebView;
|
||||
@property (nonatomic, retain) IBOutlet NSTextFieldCell *staticResolversTextField;
|
||||
@property (nonatomic, retain) IBOutlet NSTextField *blacklistIPsTextField;
|
||||
@property (nonatomic, retain) IBOutlet NSTextField *blacklistDomainsTextField;
|
||||
@property (nonatomic, retain) IBOutlet NSTextField *exceptionsTextField;
|
||||
@property (nonatomic, retain) IBOutlet WebView *helpWebView;
|
||||
@property (nonatomic, retain) IBOutlet NSButton *viewLogButton;
|
||||
@property (nonatomic, retain) IBOutlet NSButton *queryLoggingButton;
|
||||
|
||||
- (void) mainViewDidLoad;
|
||||
|
||||
@@ -57,5 +70,13 @@ typedef enum {
|
||||
- (IBAction)fallbackButtonPressed:(NSButton *)sender;
|
||||
|
||||
- (IBAction)openDNSLinkPushed:(NSButton *)sender;
|
||||
- (IBAction)uninstallPushed:(NSButton *)sender;
|
||||
- (IBAction)staticResolversTextFieldChanged:(NSTextField *)sender;
|
||||
- (IBAction)queryLoggingButtonPressed:(NSButtonCell *)sender;
|
||||
- (IBAction)viewLogButtonPushed:(NSButton *)sender;
|
||||
- (IBAction)blacklistIPsUpdated:(NSTextField *)sender;
|
||||
- (IBAction)blacklistDomainsUpdated:(NSTextField *)sender;
|
||||
- (IBAction)exceptionsUpdated:(NSTextField *)sender;
|
||||
- (IBAction)helpButtonPressed:(NSButton *)sender;
|
||||
|
||||
@end
|
||||
|
||||
@@ -12,12 +12,17 @@
|
||||
@synthesize tabView = _tabView;
|
||||
@synthesize aboutTabViewItem = _aboutTabViewItem;
|
||||
@synthesize releaseNotesTabViewItem = _releaseNotesTabViewItem;
|
||||
|
||||
@synthesize previewNotesWebView = _previewNotesWebView;
|
||||
@synthesize releaseNotesWebView = _releaseNotesWebView;
|
||||
@synthesize feedbackWebView = _feedbackWebView;
|
||||
@synthesize aboutWebView = _aboutWebView;
|
||||
|
||||
@synthesize staticResolversTextField = _staticResolversTextField;
|
||||
@synthesize blacklistIPsTextField = _blacklistIPsTextField;
|
||||
@synthesize blacklistDomainsTextField = _blacklistDomainsTextField;
|
||||
@synthesize helpWebView = _helpWebView;
|
||||
@synthesize viewLogButton = _viewLogButton;
|
||||
@synthesize queryLoggingButton = _queryLoggingButton;
|
||||
@synthesize exceptionsTextField = _exceptionsTextField;
|
||||
@synthesize dnscryptButton = _dnscryptButton;
|
||||
@synthesize opendnsButton = _opendnsButton;
|
||||
@synthesize fallbackButton = _fallbackButton;
|
||||
@@ -66,22 +71,41 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
|
||||
_opendnsButton.state = 0;
|
||||
_fallbackButton.state = 0;
|
||||
|
||||
res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./get-dnscrypt-status.sh", nil]];
|
||||
res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./get-dnscrypt-status.sh", nil]];
|
||||
if ([res isEqualToString: @"yes"]) {
|
||||
[_dnscryptButton setState: 1];
|
||||
}
|
||||
res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./get-familyshield-status.sh", nil]];
|
||||
res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./get-familyshield-status.sh", nil]];
|
||||
if ([res isEqualToString: @"yes"]) {
|
||||
[_familyShieldButton setState: 1];
|
||||
}
|
||||
res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./get-insecure-opendns-status.sh", nil]];
|
||||
res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./get-insecure-opendns-status.sh", nil]];
|
||||
if ([res isEqualToString: @"yes"]) {
|
||||
[_opendnsButton setState: 1];
|
||||
}
|
||||
res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./get-fallback-status.sh", nil]];
|
||||
res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_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]];
|
||||
[_staticResolversTextField setStringValue: res];
|
||||
res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./get-query-logging-status.sh", nil]];
|
||||
if ([res isEqualToString: @"yes"]) {
|
||||
[_queryLoggingButton setState: 1];
|
||||
}
|
||||
NSString *fileContent;
|
||||
fileContent = [NSString stringWithContentsOfFile: kDNSCRYPT_BLACKLIST_IPS_TMP_FILE encoding:NSUTF8StringEncoding error: nil];
|
||||
if (fileContent != nil) {
|
||||
[_blacklistIPsTextField setStringValue: fileContent];
|
||||
}
|
||||
fileContent = [NSString stringWithContentsOfFile: kDNSCRYPT_BLACKLIST_DOMAINS_TMP_FILE encoding:NSUTF8StringEncoding error: nil];
|
||||
if (fileContent != nil) {
|
||||
[_blacklistDomainsTextField setStringValue: fileContent];
|
||||
}
|
||||
fileContent = [NSString stringWithContentsOfFile: kDNSCRYPT_EXCEPTIONS_TMP_FILE encoding:NSUTF8StringEncoding error: nil];
|
||||
if (fileContent != nil) {
|
||||
[_exceptionsTextField setStringValue: fileContent];
|
||||
}
|
||||
}
|
||||
|
||||
- (void) updateLedStatus
|
||||
@@ -111,7 +135,7 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
|
||||
|
||||
- (BOOL) updateStatusWithCurrentConfig
|
||||
{
|
||||
NSString *stateDescription = [self fromCommand: @"/bin/ksh" 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: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./get-current-resolvers.sh | ./get-resolvers-description.sh", nil]];
|
||||
if ([stateDescription isEqualToString: @"FamilyShield"]) {
|
||||
currentState = kDNS_CONFIGURATION_OPENDNS;
|
||||
} else if ([stateDescription isEqualToString: @"DNSCrypt"]) {
|
||||
@@ -128,10 +152,10 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
|
||||
}
|
||||
[self updateLedStatus];
|
||||
|
||||
NSString *currentResolvers = [self fromCommand: @"/bin/ksh" 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: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./get-current-resolvers.sh | ./get-upstream-resolvers.sh", nil]];
|
||||
_currentResolverTextField.stringValue = currentResolvers;
|
||||
|
||||
NSString *res = [self fromCommand: @"/bin/ksh" 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: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./gui-pop-conf-change.sh prefpane", nil]];
|
||||
if ([res isEqualToString: @"yes"]) {
|
||||
[self initState];
|
||||
}
|
||||
@@ -154,7 +178,7 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
|
||||
_statusImageView.image = [[[NSImage alloc] initWithContentsOfFile: [bundle pathForImageResource: @"ajax-loader.gif"]] autorelease];
|
||||
_currentResolverTextField.stringValue = @"";
|
||||
|
||||
[self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./gui-push-conf-change.sh menubar", nil]];
|
||||
[self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_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];
|
||||
@@ -163,56 +187,56 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
|
||||
|
||||
- (BOOL) setDNSCryptOn {
|
||||
[self showSpinners];
|
||||
NSString *res = [self fromCommand: @"/bin/ksh" 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: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-to-dnscrypt.sh", nil]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (BOOL) setDNSCryptOff {
|
||||
[self showSpinners];
|
||||
NSString *res = [self fromCommand: @"/bin/ksh" 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: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-to-dhcp.sh", nil]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (BOOL) setFamilyShieldOn {
|
||||
[self showSpinners];
|
||||
NSString *res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-familyshield-on.sh", nil]];
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-familyshield-on.sh", nil]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (BOOL) setFamilyShieldOff {
|
||||
[self showSpinners];
|
||||
NSString *res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-familyshield-off.sh", nil]];
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-familyshield-off.sh", nil]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (BOOL) setInsecureOpenDNSOn {
|
||||
[self showSpinners];
|
||||
NSString *res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-insecure-opendns-on.sh", nil]];
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-insecure-opendns-on.sh", nil]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (BOOL) setInsecureOpenDNSOff {
|
||||
[self showSpinners];
|
||||
NSString *res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-insecure-opendns-off.sh", nil]];
|
||||
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-insecure-opendns-off.sh", nil]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (BOOL) setFallbackOn {
|
||||
[self showSpinners];
|
||||
NSString *res = [self fromCommand: @"/bin/ksh" 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: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-fallback-on.sh", nil]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (BOOL) setFallbackOff {
|
||||
[self showSpinners];
|
||||
NSString *res = [self fromCommand: @"/bin/ksh" 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: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-fallback-off.sh", nil]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
@@ -257,7 +281,7 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
|
||||
NSString *res;
|
||||
static unsigned int tries;
|
||||
|
||||
res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./get-tickets-count.sh", nil]];
|
||||
res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_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];
|
||||
@@ -268,6 +292,18 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
|
||||
[self performSelector: @selector(waitForUpdate) withObject: self afterDelay:kREFRESH_DELAY];
|
||||
}
|
||||
|
||||
- (void) webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame {
|
||||
if (sender != _feedbackWebView) {
|
||||
return;
|
||||
}
|
||||
NSString *res;
|
||||
res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"/usr/local/sbin/dnscrypt-proxy --version | head -n 1", nil]];
|
||||
NSCharacterSet *charset = [NSCharacterSet characterSetWithCharactersInString: @"\r\n<>'"];
|
||||
res = [[res componentsSeparatedByCharactersInSet: charset] componentsJoinedByString: @" "];
|
||||
NSString *script = [NSString stringWithFormat: @"document.querySelector('textarea[name=feedback]').value='\\n\\n\\n--\\nOpenDNS user interface for OSX " kDNSCRYPT_PACKAGE_VERSION "\\n%@'", res];
|
||||
[sender stringByEvaluatingJavaScriptFromString: script];
|
||||
}
|
||||
|
||||
- (void) mainViewDidLoad
|
||||
{
|
||||
currentState = kDNS_CONFIGURATION_UNKNOWN;
|
||||
@@ -299,6 +335,7 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
|
||||
[_feedbackWebView setDrawsBackground:false];
|
||||
[_feedbackWebView setShouldUpdateWhileOffscreen:true];
|
||||
[_feedbackWebView setUIDelegate:self];
|
||||
[_feedbackWebView setFrameLoadDelegate: self];
|
||||
NSString *feedbackURLText = @"http://dnscrypt.opendns.com/feedback.php";
|
||||
[[_feedbackWebView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:feedbackURLText]]];
|
||||
|
||||
@@ -328,6 +365,17 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
|
||||
} else {
|
||||
[[_aboutWebView mainFrame] loadRequest:[NSURLRequest requestWithURL: aboutURL]];
|
||||
}
|
||||
|
||||
[_helpWebView setDrawsBackground:false];
|
||||
[_helpWebView setShouldUpdateWhileOffscreen:false];
|
||||
[_helpWebView setUIDelegate:self];
|
||||
NSURL *helpURL;
|
||||
NSString *helpURLPath = [[NSBundle bundleForClass: [self class]] pathForResource: @"help" ofType: @"html" inDirectory: @"html"];
|
||||
if (! helpURLPath || ! (helpURL = [NSURL fileURLWithPath: helpURLPath])) {
|
||||
assert(0);
|
||||
} else {
|
||||
[[_helpWebView mainFrame] loadRequest:[NSURLRequest requestWithURL: helpURL]];
|
||||
}
|
||||
}
|
||||
|
||||
- (NSArray *)webView:(WebView *)sender contextMenuItemsForElement:(NSDictionary *)element
|
||||
@@ -342,5 +390,104 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
|
||||
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString: kOPENDNS_URL]];
|
||||
}
|
||||
|
||||
- (IBAction)uninstallPushed:(NSButton *)sender {
|
||||
[self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_BIN_BASE_DIR @"' && /usr/bin/open ./Uninstall.app", nil]];
|
||||
}
|
||||
|
||||
- (IBAction)staticResolversTextFieldChanged:(NSTextField *)sender {
|
||||
NSString *staticResolvers = sender.stringValue;
|
||||
NSCharacterSet *charset = [[NSCharacterSet characterSetWithCharactersInString: @"0123456789abcdefABCDEF:. "] invertedSet];
|
||||
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\"", staticResolvers, 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]];
|
||||
(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]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (IBAction)queryLoggingButtonPressed:(NSButtonCell *)sender {
|
||||
if (sender.state != 0) {
|
||||
[self setQueryLoggingOn];
|
||||
} else {
|
||||
[self setQueryLoggingOff];
|
||||
}
|
||||
}
|
||||
|
||||
- (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]];
|
||||
}
|
||||
|
||||
- (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]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (IBAction)blacklistIPsUpdated:(NSTextField *)sender {
|
||||
NSString *content = sender.stringValue;
|
||||
if ([content writeToFile: kDNSCRYPT_BLACKLIST_IPS_TMP_FILE atomically: YES encoding: NSUTF8StringEncoding error: nil] != YES) {
|
||||
return;
|
||||
}
|
||||
[self updateBlacklistIPs];
|
||||
}
|
||||
|
||||
- (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]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (IBAction)blacklistDomainsUpdated:(NSTextField *)sender {
|
||||
NSString *content = sender.stringValue;
|
||||
if ([content writeToFile: kDNSCRYPT_BLACKLIST_DOMAINS_TMP_FILE atomically: YES encoding: NSUTF8StringEncoding error: nil] != YES) {
|
||||
return;
|
||||
}
|
||||
[self updateBlacklistDomains];
|
||||
}
|
||||
|
||||
- (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]];
|
||||
(void) res;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (IBAction)exceptionsUpdated:(NSTextField *)sender {
|
||||
NSString *content = sender.stringValue;
|
||||
if ([content writeToFile: kDNSCRYPT_EXCEPTIONS_TMP_FILE atomically: YES encoding: NSUTF8StringEncoding error: nil] != YES) {
|
||||
return;
|
||||
}
|
||||
[self updateExceptions];
|
||||
}
|
||||
|
||||
- (IBAction)helpButtonPressed:(NSButton *)sender {
|
||||
if (_helpWebView.isHidden) {
|
||||
[_helpWebView.window makeFirstResponder: nil];
|
||||
[_helpWebView setHidden: NO];
|
||||
[_helpWebView setAlphaValue: 0.0];
|
||||
[_helpWebView.animator setAlphaValue: 1.0];
|
||||
[_helpWebView setDrawsBackground: TRUE];
|
||||
[_viewLogButton setHidden: YES];
|
||||
[_queryLoggingButton setHidden: YES];
|
||||
} else {
|
||||
[_helpWebView.window makeFirstResponder: nil];
|
||||
[_helpWebView setHidden: YES];
|
||||
[_queryLoggingButton setHidden: NO];
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,109 @@
|
||||
!!! 5
|
||||
%html{lang: "en"}
|
||||
%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
|
||||
%body
|
||||
%h1 Help(advanced settings)
|
||||
%section
|
||||
%h2 Static DNS servers
|
||||
%p
|
||||
If you are not using DHCP and want a statically configured set
|
||||
of default DNS resolvers, enter their IP addresses in this box.
|
||||
%p
|
||||
Separate them with spaces.
|
||||
%section
|
||||
%h2 Log DNS queries
|
||||
%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.
|
||||
%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
|
||||
activity and to refine your domain blacklists and whitelists.
|
||||
%p
|
||||
Checking the "Log DNS queries" box dumps all DNS queries sent
|
||||
by your computer to a file named /var/log/dnscrypt-query.log
|
||||
%p
|
||||
The "View log" button opens it with the log viewer application
|
||||
so that you can watch it in real time.
|
||||
%section
|
||||
%h2 IP addresses blocking
|
||||
%p
|
||||
A response to a query containing at least one IP address
|
||||
listed here will be blocked.
|
||||
%p
|
||||
This make it easy to block spam sources, hosting services and content
|
||||
providers using a lot of different domain names for a single service.
|
||||
%p
|
||||
This can also be useful in order to block DNS rebinding
|
||||
attacks, even for non-private network spaces.
|
||||
%p
|
||||
IP addresses can be IPv4 and IPv6 addresses, and must be
|
||||
separated with spaces.
|
||||
%section
|
||||
%h2 Names blocking
|
||||
%p
|
||||
This is a list of domain names to be blocked.
|
||||
%p
|
||||
It doesn't affect your OpenDNS network settings. This is a
|
||||
local blacklist, applied in addition to your OpenDNS settings.
|
||||
%p
|
||||
"example.com" will only match this specific name, not
|
||||
"www.example.com".
|
||||
%p
|
||||
But wildcards are also supported. "*.example.com" will match
|
||||
any name ending with ".example.com" whereas "ads.*" will match
|
||||
any name beginning with "ads."
|
||||
%p
|
||||
Wildcards can also perform substring matching. "*xxx*" will
|
||||
match any name containing the string "xxx".
|
||||
%p
|
||||
Patterns to be blocked should be separated with spaces, and
|
||||
the blocking takes effect immediately after you hit the Return
|
||||
key. Flushing your DNS cache is not required.
|
||||
%p
|
||||
This feature is only enabled when using DNSCrypt.
|
||||
%section
|
||||
%h2 Exceptions - bypassing OpenDNS for some specific names
|
||||
%p
|
||||
Some domain names should not be resolved by a third-party DNS
|
||||
resolver, that may not know about them.
|
||||
%p
|
||||
This includes local domain names provided by home routers
|
||||
(like "routerlogin.net"), local domain names provided by
|
||||
operating systems and applications (like ".local" or ".lan"),
|
||||
local domain names served by appliances like st-top boxes, and
|
||||
internal domains used in corporate networks.
|
||||
%p
|
||||
Domains listed here will bypass DNSCrypt in order to be sent
|
||||
to the default resolvers.
|
||||
%p
|
||||
Do
|
||||
%strong not
|
||||
use a tool like hostip(8), drill(1), unbound-host(1), dig(1) or host(1)
|
||||
in order to check that an exception rule works.
|
||||
%p
|
||||
These tools use their own resolution mechanisms that have nothing
|
||||
to do with how others apps on your system are resolving names.
|
||||
%p
|
||||
They don't use the OSX-specific stub resolver, they don't use
|
||||
the system-wide DNS cache, they have bugs and limitations that the OS
|
||||
doesn't have (and the opposite is also true), and they don't know a
|
||||
thing about specific resolvers that have to be used for specific
|
||||
domains.
|
||||
%p
|
||||
Use actual apps, or even a command like ping(8).
|
||||
|
||||
@@ -0,0 +1,141 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang='en'>
|
||||
<head>
|
||||
<meta charset='utf-8' />
|
||||
<title>Help (advanced settings)</title>
|
||||
<style type='text/css'>
|
||||
html {
|
||||
background: #e4e4e4; }
|
||||
|
||||
body {
|
||||
font-family: arial, helvetica, sans-serif;
|
||||
margin: 1em; }
|
||||
|
||||
h1 {
|
||||
margin: 0; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Help(advanced settings)</h1>
|
||||
<section>
|
||||
<h2>Static DNS servers</h2>
|
||||
<p>
|
||||
If you are not using DHCP and want a statically configured set
|
||||
of default DNS resolvers, enter their IP addresses in this box.
|
||||
</p>
|
||||
<p>
|
||||
Separate them with spaces.
|
||||
</p>
|
||||
</section>
|
||||
<section>
|
||||
<h2>Log DNS queries</h2>
|
||||
<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.
|
||||
</p>
|
||||
<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
|
||||
activity and to refine your domain blacklists and whitelists.
|
||||
</p>
|
||||
<p>
|
||||
Checking the "Log DNS queries" box dumps all DNS queries sent
|
||||
by your computer to a file named /var/log/dnscrypt-query.log
|
||||
</p>
|
||||
<p>
|
||||
The "View log" button opens it with the log viewer application
|
||||
so that you can watch it in real time.
|
||||
</p>
|
||||
</section>
|
||||
<section>
|
||||
<h2>IP addresses blocking</h2>
|
||||
<p>
|
||||
A response to a query containing at least one IP address
|
||||
listed here will be blocked.
|
||||
</p>
|
||||
<p>
|
||||
This make it easy to block spam sources, hosting services and content
|
||||
providers using a lot of different domain names for a single service.
|
||||
</p>
|
||||
<p>
|
||||
This can also be useful in order to block DNS rebinding
|
||||
attacks, even for non-private network spaces.
|
||||
</p>
|
||||
<p>
|
||||
IP addresses can be IPv4 and IPv6 addresses, and must be
|
||||
separated with spaces.
|
||||
</p>
|
||||
</section>
|
||||
<section>
|
||||
<h2>Names blocking</h2>
|
||||
<p>
|
||||
This is a list of domain names to be blocked.
|
||||
</p>
|
||||
<p>
|
||||
It doesn't affect your OpenDNS network settings. This is a
|
||||
local blacklist, applied in addition to your OpenDNS settings.
|
||||
</p>
|
||||
<p>
|
||||
"example.com" will only match this specific name, not
|
||||
"www.example.com".
|
||||
</p>
|
||||
<p>
|
||||
But wildcards are also supported. "*.example.com" will match
|
||||
any name ending with ".example.com" whereas "ads.*" will match
|
||||
any name beginning with "ads."
|
||||
</p>
|
||||
<p>
|
||||
Wildcards can also perform substring matching. "*xxx*" will
|
||||
match any name containing the string "xxx".
|
||||
</p>
|
||||
<p>
|
||||
Patterns to be blocked should be separated with spaces, and
|
||||
the blocking takes effect immediately after you hit the Return
|
||||
key. Flushing your DNS cache is not required.
|
||||
</p>
|
||||
<p>
|
||||
This feature is only enabled when using DNSCrypt.
|
||||
</p>
|
||||
</section>
|
||||
<section>
|
||||
<h2>Exceptions - bypassing OpenDNS for some specific names</h2>
|
||||
<p>
|
||||
Some domain names should not be resolved by a third-party DNS
|
||||
resolver, that may not know about them.
|
||||
</p>
|
||||
<p>
|
||||
This includes local domain names provided by home routers
|
||||
(like "routerlogin.net"), local domain names provided by
|
||||
operating systems and applications (like ".local" or ".lan"),
|
||||
local domain names served by appliances like st-top boxes, and
|
||||
internal domains used in corporate networks.
|
||||
</p>
|
||||
<p>
|
||||
Domains listed here will bypass DNSCrypt in order to be sent
|
||||
to the default resolvers.
|
||||
</p>
|
||||
<p>
|
||||
Do
|
||||
<strong>not</strong>
|
||||
use a tool like hostip(8), drill(1), unbound-host(1), dig(1) or host(1)
|
||||
in order to check that an exception rule works.
|
||||
</p>
|
||||
<p>
|
||||
These tools use their own resolution mechanisms that have nothing
|
||||
to do with how others apps on your system are resolving names.
|
||||
</p>
|
||||
<p>
|
||||
They don't use the OSX-specific stub resolver, they don't use
|
||||
the system-wide DNS cache, they have bugs and limitations that the OS
|
||||
doesn't have (and the opposite is also true), and they don't know a
|
||||
thing about specific resolvers that have to be used for specific
|
||||
domains.
|
||||
</p>
|
||||
<p>
|
||||
Use actual apps, or even a command like ping(8).
|
||||
</p>
|
||||
</section>
|
||||
</body>
|
||||
</html>
|
||||
@@ -21,6 +21,51 @@
|
||||
%body
|
||||
%h1 Release Notes for the user interface
|
||||
|
||||
%article
|
||||
%h2 Version 0.19
|
||||
%time Wed, 10 Oct 2012
|
||||
%ul
|
||||
%li dnscrypt-proxy has been updated to version 1.2.0.
|
||||
%li Detection of IPv6 connectivity is now faster and more reliable.
|
||||
%li
|
||||
AAAA queries are filtered out on networks with no IPv6
|
||||
connectivity in order to significantly reduce latency.
|
||||
%article
|
||||
%h2 Version 0.18
|
||||
%time Wed, 3 Oct 2012
|
||||
%ul
|
||||
%li
|
||||
freebox.fr has been added to the default list of domains
|
||||
for which DNSCrypt should be bypassed.
|
||||
%li
|
||||
If a static resolvers set has been specified, this will now be
|
||||
used for exceptions instead of DHCP-provided servers.
|
||||
%li
|
||||
Minor cosmetic fixes and documentation improvements have been
|
||||
made.
|
||||
|
||||
%article
|
||||
%h2 Version 0.17
|
||||
%time Fri, 28 Sep 2012
|
||||
%ul
|
||||
%li dnscrypt-proxy has been updated to 1.1.0-final.
|
||||
%li The uninstaller is now bundled with the preference pane.
|
||||
%li
|
||||
Static default DNS resolvers can now be used instead of
|
||||
having them provided by a DHCP server.
|
||||
%li
|
||||
Logging: outgoing queries can now be logged and displayed in
|
||||
real time.
|
||||
%li
|
||||
IP-based blocking: DNS responses containing IP addresses
|
||||
present in a user-defined set of addresses can be blocked.
|
||||
%li
|
||||
Pattern-based name blocking: block domain names matching
|
||||
suffixes, prefixes and substrings.
|
||||
%li
|
||||
A list of exceptions that should bypass DNSCrypt and be
|
||||
resolved by a local server can be now specified.
|
||||
|
||||
%article
|
||||
%h2 Version 0.16 released!
|
||||
%time Wed, 19 Sep 2012
|
||||
@@ -38,7 +83,7 @@
|
||||
|
||||
%article
|
||||
%h2 Version 0.15 released!
|
||||
%time Wed, 07 Sep 2012
|
||||
%time Fri, 07 Sep 2012
|
||||
%ul
|
||||
%li dnscrypt-proxy has been updated to 1.1.0-RC1
|
||||
%li
|
||||
|
||||
@@ -23,6 +23,64 @@
|
||||
</head>
|
||||
<body>
|
||||
<h1>Release Notes for the user interface</h1>
|
||||
<article>
|
||||
<h2>Version 0.19</h2>
|
||||
<time>Wed, 10 Oct 2012</time>
|
||||
<ul>
|
||||
<li>dnscrypt-proxy has been updated to version 1.2.0.</li>
|
||||
<li>Detection of IPv6 connectivity is now faster and more reliable.</li>
|
||||
<li>
|
||||
AAAA queries are filtered out on networks with no IPv6
|
||||
connectivity in order to significantly reduce latency.
|
||||
</li>
|
||||
</ul>
|
||||
</article>
|
||||
<article>
|
||||
<h2>Version 0.18</h2>
|
||||
<time>Wed, 3 Oct 2012</time>
|
||||
<ul>
|
||||
<li>
|
||||
freebox.fr has been added to the default list of domains
|
||||
for which DNSCrypt should be bypassed.
|
||||
</li>
|
||||
<li>
|
||||
If a static resolvers set has been specified, this will now be
|
||||
used for exceptions instead of DHCP-provided servers.
|
||||
</li>
|
||||
<li>
|
||||
Minor cosmetic fixes and documentation improvements have been
|
||||
made.
|
||||
</li>
|
||||
</ul>
|
||||
</article>
|
||||
<article>
|
||||
<h2>Version 0.17</h2>
|
||||
<time>Fri, 28 Sep 2012</time>
|
||||
<ul>
|
||||
<li>dnscrypt-proxy has been updated to 1.1.0-final.</li>
|
||||
<li>The uninstaller is now bundled with the preference pane.</li>
|
||||
<li>
|
||||
Static default DNS resolvers can now be used instead of
|
||||
having them provided by a DHCP server.
|
||||
</li>
|
||||
<li>
|
||||
Logging: outgoing queries can now be logged and displayed in
|
||||
real time.
|
||||
</li>
|
||||
<li>
|
||||
IP-based blocking: DNS responses containing IP addresses
|
||||
present in a user-defined set of addresses can be blocked.
|
||||
</li>
|
||||
<li>
|
||||
Pattern-based name blocking: block domain names matching
|
||||
suffixes, prefixes and substrings.
|
||||
</li>
|
||||
<li>
|
||||
A list of exceptions that should bypass DNSCrypt and be
|
||||
resolved by a local server can be now specified.
|
||||
</li>
|
||||
</ul>
|
||||
</article>
|
||||
<article>
|
||||
<h2>Version 0.16 released!</h2>
|
||||
<time>Wed, 19 Sep 2012</time>
|
||||
@@ -43,7 +101,7 @@
|
||||
</article>
|
||||
<article>
|
||||
<h2>Version 0.15 released!</h2>
|
||||
<time>Wed, 07 Sep 2012</time>
|
||||
<time>Fri, 07 Sep 2012</time>
|
||||
<ul>
|
||||
<li>dnscrypt-proxy has been updated to 1.1.0-RC1</li>
|
||||
<li>
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
<?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>CFBundleAllowMixedLocalizations</key>
|
||||
<true/>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>applet</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>applet</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.apple.ScriptEditor.id.Uninstall</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>Uninstall</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>aplt</string>
|
||||
<key>LSMinimumSystemVersionByArchitecture</key>
|
||||
<dict>
|
||||
<key>x86_64</key>
|
||||
<string>10.6</string>
|
||||
</dict>
|
||||
<key>LSRequiresCarbon</key>
|
||||
<true/>
|
||||
<key>WindowState</key>
|
||||
<dict>
|
||||
<key>dividerCollapsed</key>
|
||||
<false/>
|
||||
<key>eventLogLevel</key>
|
||||
<integer>-1</integer>
|
||||
<key>name</key>
|
||||
<string>ScriptWindowState</string>
|
||||
<key>positionOfDivider</key>
|
||||
<real>333</real>
|
||||
<key>savedFrame</key>
|
||||
<string>68 149 602 597 0 0 1366 746 </string>
|
||||
<key>selectedTabView</key>
|
||||
<string>result</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
BIN
Binary file not shown.
@@ -0,0 +1 @@
|
||||
APPLaplt
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
|
After Width: | Height: | Size: 362 B |
+4
@@ -0,0 +1,4 @@
|
||||
{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
|
||||
{\fonttbl}
|
||||
{\colortbl;\red255\green255\blue255;}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
#! /bin/sh
|
||||
|
||||
exec /usr/local/bin/alarmer $*
|
||||
@@ -0,0 +1 @@
|
||||
/usr/local/bin/alarmer
|
||||
@@ -1,3 +0,0 @@
|
||||
#! /bin/sh
|
||||
|
||||
exec /usr/local/sbin/dnscrypt-proxy $*
|
||||
@@ -0,0 +1 @@
|
||||
/usr/local/sbin/dnscrypt-proxy
|
||||
@@ -1,3 +0,0 @@
|
||||
#! /bin/sh
|
||||
|
||||
exec /usr/local/bin/hostip $*
|
||||
@@ -0,0 +1 @@
|
||||
/usr/local/bin/hostip
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
libldns.1.dylib
|
||||
@@ -2,4 +2,8 @@
|
||||
|
||||
. ./common.inc
|
||||
|
||||
rm -f "$QUERY_LOG_FILE"
|
||||
|
||||
./clear-fw.sh
|
||||
|
||||
exec ./handle-control-change.sh --boot
|
||||
|
||||
@@ -8,7 +8,8 @@ try_resolution() {
|
||||
}
|
||||
|
||||
try_http_query() {
|
||||
exec alarmer 5 curl -m 5 http://www.opendns.com 2>/dev/null | \
|
||||
exec alarmer 5 curl -L --max-redirs 5 -4 -m 5 \
|
||||
http://guide.opendns.com/main 2>/dev/null | \
|
||||
fgrep -ic OpenDNS > /dev/null 2>&1
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
#! /bin/sh
|
||||
|
||||
. ./common.inc
|
||||
|
||||
exec >/dev/null
|
||||
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 /usr/local/bin/hostip
|
||||
"$SOCKETFILTERFW" --unblockapp /usr/local/bin/hostip
|
||||
@@ -15,10 +15,21 @@ FAMILYSHIELD_FILE="${CONTROL_DIR}/familyshield"
|
||||
INSECURE_OPENDNS_FILE="${CONTROL_DIR}/insecure-opendns"
|
||||
FALLBACK_FILE="${CONTROL_DIR}/fallback"
|
||||
HANDLERS_LOCK_FILE="/var/run/dnscrypt-handlers.lock"
|
||||
DOMAINS_EXCEPTIONS_FILE="${CONTROL_DIR}/domains-exceptions"
|
||||
DNSCRYPT_PROXY_PLUGINS_FILE="${CONTROL_DIR}/plugins"
|
||||
DNSCRYPT_PROXY_PLUGINS_BASE_FILE="${CONTROL_DIR}/plugin"
|
||||
STATIC_RESOLVERS_FILE="${CONTROL_DIR}/static-resolvers"
|
||||
|
||||
PLUGINS_ENABLED_FILE="${CONTROL_DIR}/plugins.enabled"
|
||||
QUERY_LOGGING_FILE="${CONTROL_DIR}/plugin-query-logging.enabled"
|
||||
BLOCKING_FILE="${CONTROL_DIR}/plugin-blocking.enabled"
|
||||
|
||||
QUERY_LOG_FILE="/var/log/dnscrypt-query.log"
|
||||
BLACKLIST_IPS_FILE="${CONTROL_DIR}/blacklist-ips"
|
||||
BLACKLIST_IPS_TMP_FILE="${BLACKLIST_IPS_FILE}.tmp"
|
||||
BLACKLIST_DOMAINS_FILE="${CONTROL_DIR}/blacklist-domains"
|
||||
BLACKLIST_DOMAINS_TMP_FILE="${BLACKLIST_DOMAINS_FILE}.tmp"
|
||||
EXCEPTIONS_FILE="${CONTROL_DIR}/exceptions"
|
||||
EXCEPTIONS_TMP_FILE="${EXCEPTIONS_FILE}.tmp"
|
||||
|
||||
INTERFACE_UNBOUND="127.0.0.53"
|
||||
INTERFACE_UNBOUND_MASK="24"
|
||||
INTERFACE_PROXY="127.0.0.54"
|
||||
@@ -27,7 +38,7 @@ INTERFACE_PROBES="127.0.0.55"
|
||||
INTERFACE_PROBES_MASK="24"
|
||||
|
||||
DOMAINS_EXCEPTIONS='
|
||||
fritz.box intranet lan localdomain nowtv.com private routerlogin.net
|
||||
freebox.fr fritz.box intranet lan localdomain nowtv.com private routerlogin.net
|
||||
'
|
||||
|
||||
export PATH="${DNSCRYPT_USR_BASE_DIR}/bin:${DNSCRYPT_USR_BASE_DIR}/scripts:$PATH"
|
||||
|
||||
@@ -4,8 +4,8 @@ RESOLVER_DIR='/etc/resolver'
|
||||
|
||||
. ./common.inc
|
||||
|
||||
[ -r "$DOMAINS_EXCEPTIONS_FILE" ] &&
|
||||
DOMAINS_EXCEPTIONS="$(cat "$DOMAINS_EXCEPTIONS_FILE") $DOMAINS_EXCEPTIONS"
|
||||
[ -r "$EXCEPTIONS_FILE" ] &&
|
||||
DOMAINS_EXCEPTIONS="$(cat "$EXCEPTIONS_FILE") $DOMAINS_EXCEPTIONS"
|
||||
|
||||
get_gw() {
|
||||
route -n get default | while read line; do
|
||||
@@ -22,13 +22,32 @@ get_dhcp_dns() {
|
||||
cat "${STATES_DIR}/dhcp-dns" 2> /dev/null
|
||||
}
|
||||
|
||||
name_servers=$(get_dhcp_dns || get_gw)
|
||||
remove_old_exceptions() {
|
||||
local found
|
||||
|
||||
find -x "$RESOLVER_DIR" -type f -print | {
|
||||
while read file; do
|
||||
found='no'
|
||||
for domain in $DOMAINS_EXCEPTIONS; do
|
||||
[ "$file" = "${RESOLVER_DIR}/${domain}" ] && found='yes' && break
|
||||
done
|
||||
[ "$found" = 'no' ] || continue
|
||||
fgrep -ci 'automatically generated by the dnscrypt user interface' \
|
||||
$file > /dev/null 2>&1 || continue
|
||||
rm -f "$file"
|
||||
done
|
||||
}
|
||||
}
|
||||
|
||||
name_servers=$(./get-static-resolvers.sh || get_dhcp_dns || get_gw)
|
||||
[ x"$name_servers" = 'x' ] && exit 0
|
||||
|
||||
default_domain=$(./get-current-default-domain.sh)
|
||||
|
||||
mkdir -p "$RESOLVER_DIR" || exit 1
|
||||
|
||||
remove_old_exceptions
|
||||
|
||||
name_server="$gw"
|
||||
for domain in $DOMAINS_EXCEPTIONS; do
|
||||
if [ x"$default_domain" != 'x' ]; then
|
||||
|
||||
@@ -4,8 +4,8 @@ RESOLVER_DIR='/etc/resolver'
|
||||
|
||||
. ./common.inc
|
||||
|
||||
[ -r "$DOMAINS_EXCEPTIONS_FILE" ] &&
|
||||
DOMAINS_EXCEPTIONS="$(cat "$DOMAINS_EXCEPTIONS_FILE") $DOMAINS_EXCEPTIONS"
|
||||
[ -r "$EXCEPTIONS_FILE" ] &&
|
||||
DOMAINS_EXCEPTIONS="$(cat "$EXCEPTIONS_FILE") $DOMAINS_EXCEPTIONS"
|
||||
|
||||
for domain in $DOMAINS_EXCEPTIONS; do
|
||||
rm -f "${RESOLVER_DIR}/${domain}"
|
||||
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
#! /bin/sh
|
||||
|
||||
. ./common.inc
|
||||
|
||||
if [ -e "$QUERY_LOGGING_FILE" ]; then
|
||||
echo 'yes'
|
||||
else
|
||||
echo 'no'
|
||||
fi
|
||||
@@ -0,0 +1,7 @@
|
||||
#! /bin/sh
|
||||
|
||||
. ./common.inc
|
||||
|
||||
[ -r "$STATIC_RESOLVERS_FILE" ] && cat "$STATIC_RESOLVERS_FILE" && exit 0
|
||||
exit 1
|
||||
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
#! /bin/sh
|
||||
|
||||
. ./common.inc
|
||||
|
||||
args="$*"
|
||||
|
||||
[ $# -lt 1 ] && exit 1
|
||||
|
||||
servers=''
|
||||
for server in $args; do
|
||||
servers="${servers} ${server}"
|
||||
done
|
||||
if [ "$servers" = "" ]; then
|
||||
rm -f "$STATIC_RESOLVERS_FILE"
|
||||
else
|
||||
echo "$servers" | sed 's/^ *//;s/ *$//' > "$STATIC_RESOLVERS_FILE"
|
||||
fi
|
||||
@@ -2,6 +2,9 @@
|
||||
|
||||
. ./common.inc
|
||||
|
||||
DNSCRYPT_LIB_BASE_DIR="${DNSCRYPT_USR_BASE_DIR}/lib"
|
||||
export DYLD_LIBRARY_PATH="${DNSCRYPT_LIB_BASE_DIR}:${DYLD_LIBRARY_PATH}"
|
||||
|
||||
init_interfaces
|
||||
|
||||
mkdir -p -- "$DNSCRYPT_VAR_BASE_DIR" || exit 1
|
||||
@@ -19,10 +22,6 @@ mkdir -p -- "$DESCRIPTIONS_DIR" || exit 1
|
||||
PID_DIR="${PROBES_BASE_DIR}/pids" || exit 1
|
||||
mkdir -p -- "$PID_DIR" || exit 1
|
||||
|
||||
DNSCRYPT_PROXY_PLUGINS=""
|
||||
[ -r "$DNSCRYPT_PROXY_PLUGINS_FILE" ] &&
|
||||
DNSCRYPT_PROXY_PLUGINS="$(cat "$DNSCRYPT_PROXY_PLUGINS_FILE")"
|
||||
|
||||
try_resolver() {
|
||||
local priority="$1"
|
||||
shift
|
||||
@@ -51,10 +50,24 @@ try_resolver() {
|
||||
done
|
||||
}
|
||||
|
||||
get_plugin_args() {
|
||||
cat "$DNSCRYPT_PROXY_PLUGINS_BASE_FILE"[s-]*.enabled | { \
|
||||
local plugin_args=''
|
||||
local quoted_line
|
||||
|
||||
while read line; do
|
||||
case "$line" in
|
||||
libdcplugin_*) plugin_args="${plugin_args} --plugin=${line}" ;;
|
||||
esac
|
||||
done
|
||||
echo "$plugin_args"
|
||||
}
|
||||
}
|
||||
|
||||
./stop-dnscrypt-proxy.sh
|
||||
|
||||
ping6 -c 1 2620:0:ccc::2 > /dev/null 2>&1
|
||||
ipv6_supported="no"
|
||||
ping6 -c 1 2620:0:ccc::2 > /dev/null 2>&1
|
||||
[ $? = 0 ] && ipv6_supported="yes"
|
||||
|
||||
familyshield_wanted="no"
|
||||
@@ -84,7 +97,7 @@ if [ x"$ipv6_supported" = "xyes" ]; then
|
||||
wait_pids="$wait_pids $!"
|
||||
try_resolver 5002 'OpenDNS IPv6 using DNSCrypt on TCP port 443' \
|
||||
"--resolver-address=[2620:0:ccc::2]:443 --tcp-only" &
|
||||
wait_pids="$wait_pids $!"
|
||||
wait_pids="$wait_pids $!"
|
||||
try_resolver 5003 'OpenDNS IPv6 using DNSCrypt on TCP port 53' \
|
||||
"--resolver-address=[2620:0:ccc::2]:53 --tcp-only" &
|
||||
wait_pids="$wait_pids $!"
|
||||
@@ -94,13 +107,13 @@ try_resolver 5004 'OpenDNS using DNSCrypt on UDP port 443' \
|
||||
wait_pids="$wait_pids $!"
|
||||
try_resolver 5005 'OpenDNS using DNSCrypt on UDP port 53' \
|
||||
"--resolver-address=208.67.220.220:53" &
|
||||
wait_pids="$wait_pids $!"
|
||||
wait_pids="$wait_pids $!"
|
||||
try_resolver 5006 'OpenDNS using DNSCrypt on TCP port 443' \
|
||||
"--resolver-address=208.67.220.220:443 --tcp-only" &
|
||||
wait_pids="$wait_pids $!"
|
||||
wait_pids="$wait_pids $!"
|
||||
try_resolver 5007 'OpenDNS using DNSCrypt on TCP port 53' \
|
||||
"--resolver-address=208.67.220.220:53 --tcp-only" &
|
||||
wait_pids="$wait_pids $!"
|
||||
wait_pids="$wait_pids $!"
|
||||
|
||||
for pid in $wait_pids; do
|
||||
wait $pid
|
||||
@@ -111,11 +124,14 @@ done
|
||||
[ x"$best_file" = "x" ] && exit 1
|
||||
|
||||
plugins_args=''
|
||||
for plugin in $DNSCRYPT_PROXY_PLUGINS; do
|
||||
plugin_args="${plugin_args} --plugin=${plugin}"
|
||||
done
|
||||
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}")
|
||||
|
||||
eval dnscrypt-proxy $best_args --local-address="$INTERFACE_PROXY" \
|
||||
--pidfile="$PROXY_PID_FILE" --user=daemon --daemonize $plugin_args
|
||||
|
||||
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
#! /bin/sh
|
||||
|
||||
. ./common.inc
|
||||
|
||||
exec rm -f "$BLOCKING_FILE"
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
#! /bin/sh
|
||||
|
||||
. ./common.inc
|
||||
|
||||
plugin_args=''
|
||||
|
||||
[ -s "$BLACKLIST_IPS_FILE" ] && \
|
||||
plugin_args="${plugin_args},--ips='${BLACKLIST_IPS_FILE}'"
|
||||
|
||||
[ -s "$BLACKLIST_DOMAINS_FILE" ] && \
|
||||
plugin_args="${plugin_args},--domains='${BLACKLIST_DOMAINS_FILE}'"
|
||||
|
||||
[ -z "$plugin_args" ] && exec ./switch-blacklists-off.sh
|
||||
|
||||
echo "libdcplugin_example_ldns_blocking.la${plugin_args}" > \
|
||||
"$BLOCKING_FILE"
|
||||
touch "$PLUGINS_ENABLED_FILE"
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
#! /bin/sh
|
||||
|
||||
. ./common.inc
|
||||
|
||||
rm -f "$QUERY_LOGGING_FILE"
|
||||
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
#! /bin/sh
|
||||
|
||||
. ./common.inc
|
||||
|
||||
echo "libdcplugin_example_logging.la,${QUERY_LOG_FILE}" > \
|
||||
"$QUERY_LOGGING_FILE"
|
||||
|
||||
touch "$PLUGINS_ENABLED_FILE"
|
||||
+2
-2
@@ -12,7 +12,7 @@ PAUSE_INCREMENT=0.1
|
||||
pause=0
|
||||
while [ -e "$DNSCRYPT_FILE" ]; do
|
||||
current_resolvers=$(./get-current-resolvers.sh)
|
||||
if [ "$current_resolvers" = '127.0.0.54' ]; then
|
||||
if [ "$current_resolvers" = "$INTERFACE_PROXY" ]; then
|
||||
if [ ! -e "$PROXY_PID_FILE" ]; then
|
||||
./start-dnscrypt-proxy.sh || ./switch-to-dhcp.sh
|
||||
fi
|
||||
@@ -20,7 +20,7 @@ while [ -e "$DNSCRYPT_FILE" ]; do
|
||||
if [ $pause -lt $PAUSE_MAX ]; then
|
||||
pause=$((pause + $PAUSE_INCREMENT))
|
||||
fi
|
||||
sleep $pause
|
||||
sleep $pause
|
||||
./check-hijacking.sh || continue
|
||||
./start-dnscrypt-proxy.sh || continue
|
||||
./check-local-dns.sh || continue
|
||||
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
#! /bin/sh
|
||||
|
||||
. ./common.inc
|
||||
|
||||
if [ ! -s "$BLACKLIST_DOMAINS_TMP_FILE" ]; then
|
||||
rm -f "$BLACKLIST_DOMAINS_FILE" "$BLACKLIST_DOMAINS_TMP_FILE"
|
||||
exec ./switch-blacklists-on.sh
|
||||
fi
|
||||
|
||||
tr -s '[:blank:]' '\n' < "$BLACKLIST_DOMAINS_TMP_FILE" | \
|
||||
egrep -vi 'opendns[.]com$' > "${BLACKLIST_DOMAINS_TMP_FILE}~" &&
|
||||
mv "${BLACKLIST_DOMAINS_TMP_FILE}~" "$BLACKLIST_DOMAINS_FILE"
|
||||
|
||||
exec ./switch-blacklists-on.sh
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
#! /bin/sh
|
||||
|
||||
. ./common.inc
|
||||
|
||||
if [ ! -s "$BLACKLIST_IPS_TMP_FILE" ]; then
|
||||
rm -f "$BLACKLIST_IPS_FILE" "$BLACKLIST_IPS_TMP_FILE"
|
||||
exec ./switch-blacklists-on.sh
|
||||
fi
|
||||
|
||||
tr -s '[:blank:]' '\n' \
|
||||
< "$BLACKLIST_IPS_TMP_FILE" > "${BLACKLIST_IPS_TMP_FILE}~" &&
|
||||
mv "${BLACKLIST_IPS_TMP_FILE}~" "$BLACKLIST_IPS_FILE"
|
||||
|
||||
exec ./switch-blacklists-on.sh
|
||||
@@ -0,0 +1,12 @@
|
||||
#! /bin/sh
|
||||
|
||||
. ./common.inc
|
||||
|
||||
if [ ! -s "$EXCEPTIONS_TMP_FILE" ]; then
|
||||
rm -f "$EXCEPTIONS_FILE" "$EXCEPTIONS_TMP_FILE"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
tr -s '[:blank:]' '\n' < "$EXCEPTIONS_TMP_FILE" | \
|
||||
egrep -i '^\s*[0-9a-z_.-]+\s*$' > "${EXCEPTIONS_TMP_FILE}~" &&
|
||||
mv "${EXCEPTIONS_TMP_FILE}~" "$EXCEPTIONS_FILE"
|
||||
Binary file not shown.
@@ -0,0 +1,28 @@
|
||||
OpenDNS user interface for DNSCrypt (preview release)
|
||||
=====================================================
|
||||
|
||||
DNS is one of the fundamental building blocks of the Internet. It's
|
||||
used any time you visit a website, send an email, have an IM
|
||||
conversation or do anything else online. While OpenDNS has provided
|
||||
world-class security using DNS for years, the underlying DNS protocol
|
||||
has not been secure enough for our comfort.
|
||||
|
||||
The "last mile" is the portion of your Internet connection between
|
||||
your computer and your ISP.
|
||||
|
||||
DNSCrypt is a way of securing the "last mile" of DNS traffic and
|
||||
resolving an entire class of serious security concerns with the DNS
|
||||
protocol.
|
||||
|
||||
There have been numerous examples of tampering, or man-in-the-middle
|
||||
attacks, and snooping of DNS traffic at the last mile and it
|
||||
represents a serious security risk that we've always wanted to fix.
|
||||
|
||||
In the same way the SSL turns HTTP web traffic into HTTPS encrypted
|
||||
Web traffic, DNSCrypt turns regular DNS traffic into authenticated and
|
||||
encrypted DNS traffic that is secure from eavesdropping and
|
||||
man-in-the-middle attacks.
|
||||
|
||||
It doesn't require any changes to domain names or how they work, it
|
||||
simply provides a method for securely encrypting communication between
|
||||
our customers and our DNS servers in our data centers.
|
||||
Reference in New Issue
Block a user