Add support for the fallback to insecure thing to the menubar thing.
This commit is contained in:
@@ -10,6 +10,9 @@ PROXY_PID_FILE="${DNSCRYPT_PROXY_VAR_BASE_DIR}/dnscrypt-proxy.pid"
|
||||
STATES_DIR="${DNSCRYPT_VAR_BASE_DIR}/states"
|
||||
|
||||
DNSCRYPT_FILE="${CONTROL_DIR}/dnscrypt"
|
||||
FAMILYSHIELD_FILE="${CONTROL_DIR}/familyshield"
|
||||
INSECURE_OPENDNS_FILE="${CONTROL_DIR}/insecure-opendns"
|
||||
FALLBACK_FILE="${CONTROL_DIR}/fallback"
|
||||
|
||||
INTERFACE_UNBOUND="127.0.0.53"
|
||||
INTERFACE_UNBOUND_MASK="24"
|
||||
|
||||
Executable
+9
@@ -0,0 +1,9 @@
|
||||
#! /bin/sh
|
||||
|
||||
. ./common.inc
|
||||
|
||||
if [ -e "$DNSCRYPT_FILE" ]; then
|
||||
echo 'yes'
|
||||
else
|
||||
echo 'no'
|
||||
fi
|
||||
Executable
+9
@@ -0,0 +1,9 @@
|
||||
#! /bin/sh
|
||||
|
||||
. ./common.inc
|
||||
|
||||
if [ -e "$FALLBACK_FILE" ]; then
|
||||
echo 'yes'
|
||||
else
|
||||
echo 'no'
|
||||
fi
|
||||
Executable
+9
@@ -0,0 +1,9 @@
|
||||
#! /bin/sh
|
||||
|
||||
. ./common.inc
|
||||
|
||||
if [ -e "$FAMILYSHIELD_FILE" ]; then
|
||||
echo 'yes'
|
||||
else
|
||||
echo 'no'
|
||||
fi
|
||||
Executable
+9
@@ -0,0 +1,9 @@
|
||||
#! /bin/sh
|
||||
|
||||
. ./common.inc
|
||||
|
||||
if [ -e "$INSECURE_OPENDNS_FILE" ]; then
|
||||
echo 'yes'
|
||||
else
|
||||
echo 'no'
|
||||
fi
|
||||
@@ -2,8 +2,6 @@
|
||||
|
||||
. ./common.inc
|
||||
|
||||
FALLBACK_FILE="${CONTROL_DIR}/fallback"
|
||||
|
||||
[ ! -e "$FALLBACK_FILE" ] && exit 0
|
||||
./check-network-change.sh || exit 0
|
||||
./set-dns-to-dhcp.sh
|
||||
|
||||
@@ -2,7 +2,12 @@
|
||||
|
||||
. ./common.inc
|
||||
|
||||
servers='empty'
|
||||
|
||||
[ -e "$INSECURE_OPENDNS_FILE" ] && servers='208.67.220.220'
|
||||
[ -e "$FAMILYSHIELD_FILE" ] && servers='208.67.220.123'
|
||||
|
||||
exec networksetup -listallnetworkservices 2>/dev/null | \
|
||||
fgrep -v '*' | while read x ; do
|
||||
networksetup -setdnsservers "$x" empty
|
||||
networksetup -setdnsservers "$x" "$servers"
|
||||
done
|
||||
|
||||
@@ -2,8 +2,6 @@
|
||||
|
||||
. ./common.inc
|
||||
|
||||
FAMILYSHIELD_FILE="${CONTROL_DIR}/familyshield"
|
||||
|
||||
init_interfaces
|
||||
|
||||
mkdir -p -- "$DNSCRYPT_VAR_BASE_DIR" || exit 1
|
||||
|
||||
Executable
+5
@@ -0,0 +1,5 @@
|
||||
#! /bin/sh
|
||||
|
||||
. ./common.inc
|
||||
|
||||
rm -f "$FALLBACK_FILE"
|
||||
Executable
+5
@@ -0,0 +1,5 @@
|
||||
#! /bin/sh
|
||||
|
||||
. ./common.inc
|
||||
|
||||
touch "$FALLBACK_FILE"
|
||||
Executable
+5
@@ -0,0 +1,5 @@
|
||||
#! /bin/sh
|
||||
|
||||
. ./common.inc
|
||||
|
||||
rm -f "$FAMILYSHIELD_FILE"
|
||||
Executable
+5
@@ -0,0 +1,5 @@
|
||||
#! /bin/sh
|
||||
|
||||
. ./common.inc
|
||||
|
||||
touch "$FAMILYSHIELD_FILE"
|
||||
Executable
+5
@@ -0,0 +1,5 @@
|
||||
#! /bin/sh
|
||||
|
||||
. ./common.inc
|
||||
|
||||
rm -f "$INSECURE_OPENDNS_FILE"
|
||||
Executable
+5
@@ -0,0 +1,5 @@
|
||||
#! /bin/sh
|
||||
|
||||
. ./common.inc
|
||||
|
||||
touch "$INSECURE_OPENDNS_FILE"
|
||||
@@ -35,10 +35,12 @@ typedef enum {
|
||||
@property (strong) IBOutlet NSMenuItem *familyShieldMenuItem;
|
||||
@property (strong) IBOutlet NSMenuItem *dnscryptMenuItem;
|
||||
@property (strong) IBOutlet NSMenuItem *fallbackMenuItem;
|
||||
@property (strong) IBOutlet NSMenuItem *opendnsMenuItem;
|
||||
|
||||
- (IBAction)preferencesMenuItemPushed:(NSMenuItem *)sender;
|
||||
- (IBAction)dnscryptMenuItemPushed:(NSMenuItem *)sender;
|
||||
- (IBAction)familyShieldMenuItemPushed:(NSMenuItem *)sender;
|
||||
- (IBAction)fallbackMenuItemPushed:(NSMenuItem *)sender;
|
||||
- (IBAction)opendnsMenuItemPushed:(NSMenuItem *)sender;
|
||||
|
||||
@end
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
@synthesize familyShieldMenuItem = _familyShieldMenuItem;
|
||||
@synthesize dnscryptMenuItem = _dnscryptMenuItem;
|
||||
@synthesize fallbackMenuItem = _fallbackMenuItem;
|
||||
@synthesize opendnsMenuItem = _opendnsMenuItem;
|
||||
@synthesize window = _window;
|
||||
@synthesize dnscryptMenu = _dnscryptMenu;
|
||||
@synthesize statusItem = _statusItem;
|
||||
@@ -43,21 +44,32 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
|
||||
|
||||
- (void) initState
|
||||
{
|
||||
NSString *stateDescription = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./get-current-resolvers.sh | ./get-resolvers-description.sh", nil]];
|
||||
NSLog(@"%@", stateDescription);
|
||||
[_dnscryptMenuItem setState: 0];
|
||||
[_familyShieldMenuItem setState: 0];
|
||||
[_fallbackMenuItem setState: 0];
|
||||
if ([stateDescription isEqualToString: @"FamilyShield"]) {
|
||||
[_familyShieldMenuItem setState: 1];
|
||||
} else if ([stateDescription isEqualToString: @"DNSCrypt"]) {
|
||||
NSString *res;
|
||||
|
||||
_dnscryptMenuItem.state = 0;
|
||||
_familyShieldMenuItem.state = 0;
|
||||
_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]];
|
||||
NSLog(@"%@", res);
|
||||
if ([res isEqualToString: @"yes"]) {
|
||||
[_dnscryptMenuItem setState: 1];
|
||||
} else if ([stateDescription isEqualToString: @"OpenDNS"]) {
|
||||
} else if ([stateDescription isEqualToString: @"OpenDNS IPv6"]) {
|
||||
} else if ([stateDescription isEqualToString: @"Localhost"]) {
|
||||
} else if ([stateDescription isEqualToString: @"Localhost IPv6"]) {
|
||||
} else if ([stateDescription isEqualToString: @"None"]) {
|
||||
} else if ([stateDescription isEqualToString: @"Updating"]) {
|
||||
}
|
||||
res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./get-familyshield-status.sh", nil]];
|
||||
NSLog(@"%@", res);
|
||||
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]];
|
||||
NSLog(@"%@", res);
|
||||
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]];
|
||||
NSLog(@"%@", res);
|
||||
if ([res isEqualToString: @"yes"]) {
|
||||
[_fallbackMenuItem setState: 1];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -190,6 +202,48 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (BOOL) setFamilyShieldOn {
|
||||
[self updateLedStatusWaiting];
|
||||
NSString *res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./switch-familyshield-on.sh", nil]];
|
||||
NSLog(@"%@", res);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (BOOL) setFamilyShieldOff {
|
||||
[self updateLedStatusWaiting];
|
||||
NSString *res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./switch-familyshield-off.sh", nil]];
|
||||
NSLog(@"%@", res);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (BOOL) setInsecureOpenDNSOn {
|
||||
[self updateLedStatusWaiting];
|
||||
NSString *res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./switch-insecure-opendns-on.sh", nil]];
|
||||
NSLog(@"%@", res);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (BOOL) setInsecureOpenDNSOff {
|
||||
[self updateLedStatusWaiting];
|
||||
NSString *res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./switch-insecure-opendns-off.sh", nil]];
|
||||
NSLog(@"%@", res);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (BOOL) setFallbackOn {
|
||||
[self updateLedStatusWaiting];
|
||||
NSString *res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./switch-fallback-on.sh", nil]];
|
||||
NSLog(@"%@", res);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (BOOL) setFallbackOff {
|
||||
[self updateLedStatusWaiting];
|
||||
NSString *res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./switch-fallback-off.sh", nil]];
|
||||
NSLog(@"%@", res);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- (IBAction)dnscryptMenuItemPushed:(NSMenuItem *)sender
|
||||
{
|
||||
if (sender.state == 0) {
|
||||
@@ -203,12 +257,35 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
|
||||
|
||||
- (IBAction)familyShieldMenuItemPushed:(NSMenuItem *)sender
|
||||
{
|
||||
if (sender.state == 0) {
|
||||
sender.state = 1;
|
||||
[self setFamilyShieldOn];
|
||||
} else {
|
||||
sender.state = 0;
|
||||
[self setFamilyShieldOff];
|
||||
}
|
||||
}
|
||||
|
||||
- (IBAction)opendnsMenuItemPushed:(NSMenuItem *)sender
|
||||
{
|
||||
if (sender.state == 0) {
|
||||
sender.state = 1;
|
||||
[self setInsecureOpenDNSOn];
|
||||
} else {
|
||||
sender.state = 0;
|
||||
[self setInsecureOpenDNSOff];
|
||||
}
|
||||
}
|
||||
|
||||
- (IBAction)fallbackMenuItemPushed:(NSMenuItem *)sender
|
||||
{
|
||||
|
||||
if (sender.state == 0) {
|
||||
sender.state = 1;
|
||||
[self setFallbackOn];
|
||||
} else {
|
||||
sender.state = 0;
|
||||
[self setFallbackOff];
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -53,9 +53,18 @@
|
||||
<string key="NSResourceName">NSMenuMixedState</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMenuItem" id="512564254">
|
||||
<reference key="NSMenu" ref="705716806"/>
|
||||
<string key="NSTitle">Fallback to insecure</string>
|
||||
<string key="NSKeyEquiv">x</string>
|
||||
<int key="NSKeyEquivModMask">1048576</int>
|
||||
<int key="NSMnemonicLoc">2147483647</int>
|
||||
<reference key="NSOnImage" ref="720710128"/>
|
||||
<reference key="NSMixedImage" ref="1029721002"/>
|
||||
</object>
|
||||
<object class="NSMenuItem" id="947483772">
|
||||
<reference key="NSMenu" ref="705716806"/>
|
||||
<string key="NSTitle">Enable FamilyShield</string>
|
||||
<string key="NSTitle">Always use FamilyShield</string>
|
||||
<string key="NSKeyEquiv">f</string>
|
||||
<int key="NSKeyEquivModMask">1048576</int>
|
||||
<int key="NSMnemonicLoc">2147483647</int>
|
||||
@@ -64,8 +73,8 @@
|
||||
</object>
|
||||
<object class="NSMenuItem" id="31983378">
|
||||
<reference key="NSMenu" ref="705716806"/>
|
||||
<string key="NSTitle">Fallback to insecure</string>
|
||||
<string key="NSKeyEquiv">x</string>
|
||||
<string key="NSTitle">Always use OpenDNS</string>
|
||||
<string key="NSKeyEquiv">o</string>
|
||||
<int key="NSKeyEquivModMask">1048576</int>
|
||||
<int key="NSMnemonicLoc">2147483647</int>
|
||||
<reference key="NSOnImage" ref="720710128"/>
|
||||
@@ -285,14 +294,6 @@
|
||||
</object>
|
||||
<int key="connectionID">578</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBOutletConnection" key="connection">
|
||||
<string key="label">fallbackMenuItem</string>
|
||||
<reference key="source" ref="976324537"/>
|
||||
<reference key="destination" ref="31983378"/>
|
||||
</object>
|
||||
<int key="connectionID">579</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">dnscryptMenuItemPushed:</string>
|
||||
@@ -313,9 +314,25 @@
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">fallbackMenuItemPushed:</string>
|
||||
<reference key="source" ref="976324537"/>
|
||||
<reference key="destination" ref="512564254"/>
|
||||
</object>
|
||||
<int key="connectionID">584</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBOutletConnection" key="connection">
|
||||
<string key="label">opendnsMenuItem</string>
|
||||
<reference key="source" ref="976324537"/>
|
||||
<reference key="destination" ref="31983378"/>
|
||||
</object>
|
||||
<int key="connectionID">582</int>
|
||||
<int key="connectionID">587</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">opendnsMenuItemPushed:</string>
|
||||
<reference key="source" ref="976324537"/>
|
||||
<reference key="destination" ref="31983378"/>
|
||||
</object>
|
||||
<int key="connectionID">588</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBActionConnection" key="connection">
|
||||
@@ -378,6 +395,7 @@
|
||||
<reference ref="947483772"/>
|
||||
<reference ref="31983378"/>
|
||||
<reference ref="392357407"/>
|
||||
<reference ref="512564254"/>
|
||||
</array>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
@@ -471,6 +489,11 @@
|
||||
<reference key="object" ref="392357407"/>
|
||||
<reference key="parent" ref="705716806"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">583</int>
|
||||
<reference key="object" ref="512564254"/>
|
||||
<reference key="parent" ref="705716806"/>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||
@@ -497,12 +520,13 @@
|
||||
<string key="572.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="574.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="576.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="583.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
||||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">582</int>
|
||||
<int key="maxID">588</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
@@ -513,6 +537,7 @@
|
||||
<string key="dnscryptMenuItemPushed:">NSMenuItem</string>
|
||||
<string key="fallbackMenuItemPushed:">NSMenuItem</string>
|
||||
<string key="familyShieldMenuItemPushed:">NSMenuItem</string>
|
||||
<string key="opendnsMenuItemPushed:">NSMenuItem</string>
|
||||
<string key="preferencesMenuItemPushed:">NSMenuItem</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="actionInfosByName">
|
||||
@@ -528,6 +553,10 @@
|
||||
<string key="name">familyShieldMenuItemPushed:</string>
|
||||
<string key="candidateClassName">NSMenuItem</string>
|
||||
</object>
|
||||
<object class="IBActionInfo" key="opendnsMenuItemPushed:">
|
||||
<string key="name">opendnsMenuItemPushed:</string>
|
||||
<string key="candidateClassName">NSMenuItem</string>
|
||||
</object>
|
||||
<object class="IBActionInfo" key="preferencesMenuItemPushed:">
|
||||
<string key="name">preferencesMenuItemPushed:</string>
|
||||
<string key="candidateClassName">NSMenuItem</string>
|
||||
@@ -538,6 +567,7 @@
|
||||
<string key="dnscryptMenuItem">NSMenuItem</string>
|
||||
<string key="fallbackMenuItem">NSMenuItem</string>
|
||||
<string key="familyShieldMenuItem">NSMenuItem</string>
|
||||
<string key="opendnsMenuItem">NSMenuItem</string>
|
||||
<string key="statusConfigurationMenuItem">NSMenuItem</string>
|
||||
<string key="statusResolversMenuItem">NSMenuItem</string>
|
||||
<string key="versionMenuItem">NSMenuItem</string>
|
||||
@@ -560,6 +590,10 @@
|
||||
<string key="name">familyShieldMenuItem</string>
|
||||
<string key="candidateClassName">NSMenuItem</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="opendnsMenuItem">
|
||||
<string key="name">opendnsMenuItem</string>
|
||||
<string key="candidateClassName">NSMenuItem</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="statusConfigurationMenuItem">
|
||||
<string key="name">statusConfigurationMenuItem</string>
|
||||
<string key="candidateClassName">NSMenuItem</string>
|
||||
|
||||
Reference in New Issue
Block a user