Add support for the fallback to insecure thing to the menubar thing.

This commit is contained in:
Frank Denis
2012-07-31 21:06:45 -07:00
parent 5c9a393c49
commit 33e9218884
17 changed files with 216 additions and 33 deletions
+3
View File
@@ -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"
+9
View File
@@ -0,0 +1,9 @@
#! /bin/sh
. ./common.inc
if [ -e "$DNSCRYPT_FILE" ]; then
echo 'yes'
else
echo 'no'
fi
+9
View File
@@ -0,0 +1,9 @@
#! /bin/sh
. ./common.inc
if [ -e "$FALLBACK_FILE" ]; then
echo 'yes'
else
echo 'no'
fi
+9
View File
@@ -0,0 +1,9 @@
#! /bin/sh
. ./common.inc
if [ -e "$FAMILYSHIELD_FILE" ]; then
echo 'yes'
else
echo 'no'
fi
+9
View File
@@ -0,0 +1,9 @@
#! /bin/sh
. ./common.inc
if [ -e "$INSECURE_OPENDNS_FILE" ]; then
echo 'yes'
else
echo 'no'
fi
-2
View File
@@ -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
+6 -1
View File
@@ -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
View File
@@ -2,8 +2,6 @@
. ./common.inc
FAMILYSHIELD_FILE="${CONTROL_DIR}/familyshield"
init_interfaces
mkdir -p -- "$DNSCRYPT_VAR_BASE_DIR" || exit 1
+5
View File
@@ -0,0 +1,5 @@
#! /bin/sh
. ./common.inc
rm -f "$FALLBACK_FILE"
+5
View File
@@ -0,0 +1,5 @@
#! /bin/sh
. ./common.inc
touch "$FALLBACK_FILE"
+5
View File
@@ -0,0 +1,5 @@
#! /bin/sh
. ./common.inc
rm -f "$FAMILYSHIELD_FILE"
+5
View File
@@ -0,0 +1,5 @@
#! /bin/sh
. ./common.inc
touch "$FAMILYSHIELD_FILE"
+5
View File
@@ -0,0 +1,5 @@
#! /bin/sh
. ./common.inc
rm -f "$INSECURE_OPENDNS_FILE"
+5
View File
@@ -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
+92 -15
View File
@@ -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>