From 480bd8fbb93d2c58f655e6d1449aaed8ce4b374a Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Tue, 31 Jul 2012 23:09:25 -0700 Subject: [PATCH] Almost done --- .../DNSCrypt-Menubar/AppDelegate.m | 1 + DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt.m | 65 ++++++++++--------- .../DNSCrypt/en.lproj/DNSCrypt.xib | 34 +++------- 3 files changed, 45 insertions(+), 55 deletions(-) diff --git a/DNSCrypt-Menubar/DNSCrypt-Menubar/AppDelegate.m b/DNSCrypt-Menubar/DNSCrypt-Menubar/AppDelegate.m index 52afc87..de4e440 100644 --- a/DNSCrypt-Menubar/DNSCrypt-Menubar/AppDelegate.m +++ b/DNSCrypt-Menubar/DNSCrypt-Menubar/AppDelegate.m @@ -139,6 +139,7 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN; currentState = kDNS_CONFIGURATION_UNKNOWN; } else if ([stateDescription isEqualToString: @"Updating"]) { currentState = kDNS_CONFIGURATION_UNKNOWN; + return FALSE; } else if (stateDescription.length > 0) { currentState = kDNS_CONFIGURATION_VANILLA; } diff --git a/DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt.m b/DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt.m index ed908d5..2cb8a37 100644 --- a/DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt.m +++ b/DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt.m @@ -144,20 +144,18 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN; - (IBAction)opendnsButtonPressed:(NSButton *)sender { if (sender.state != 0) { - [self setFamilyShieldOn]; + [self setInsecureOpenDNSOn]; } else { - sender.state = 0; - [self setFamilyShieldOff]; + [self setInsecureOpenDNSOn]; } } - (IBAction)familyShieldButtonPressed:(NSButton *)sender { if (sender.state != 0) { - [self setInsecureOpenDNSOn]; + [self setFamilyShieldOn]; } else { - sender.state = 0; - [self setInsecureOpenDNSOff]; + [self setFamilyShieldOff]; } } @@ -166,7 +164,6 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN; if (sender.state != 0) { [self setFallbackOn]; } else { - sender.state = 0; [self setFallbackOff]; } } @@ -191,30 +188,8 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN; _fallbackButton.state = NSOnState; } -- (BOOL) updateStatusWithCurrentConfig +- (void) updateLedStatus { - DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN; - - NSError *err; - NSString *resolvConf = [NSString stringWithContentsOfFile: @"/etc/resolv.conf" encoding: NSISOLatin1StringEncoding error: &err]; - if (resolvConf) { - NSMutableArray *resolvers = [[[NSMutableArray alloc] init] autorelease]; - NSMutableString *resolversString = [[[NSMutableString alloc] init] autorelease]; - NSArray *lines = [resolvConf componentsSeparatedByString: @"\n"]; - for (NSString *line in lines) { - line = [line stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; - NSArray *entry = [line componentsSeparatedByCharactersInSet: [NSCharacterSet whitespaceCharacterSet]]; - if (![[entry objectAtIndex: 0U] isEqualToString: @"nameserver"]) { - continue; - } - NSString *resolver = [entry objectAtIndex: 1U]; - [resolvers addObject: resolver]; - [resolversString appendFormat: @"%s%@", (resolversString.length > 0 ? "\n" : ""), resolver]; - } - currentState = kDNS_CONFIGURATION_VANILLA; - _currentResolverTextField.stringValue = resolversString; - } - NSBundle *bundle = [NSBundle bundleWithIdentifier: @"com.opendns.osx.DNSCrypt"]; switch (currentState) { case kDNS_CONFIGURATION_UNKNOWN: @@ -234,8 +209,36 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN; _statusImageView.image = [[[NSImage alloc] initWithContentsOfFile: [bundle pathForImageResource: @"shield_green.png"]] autorelease]; break; default: - return FALSE; + return; } +} + +- (BOOL) updateStatusWithCurrentConfig +{ + currentState = kDNS_CONFIGURATION_UNKNOWN; + + 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); + if ([stateDescription isEqualToString: @"FamilyShield"]) { + currentState = kDNS_CONFIGURATION_OPENDNS; + } else if ([stateDescription isEqualToString: @"DNSCrypt"]) { + currentState = kDNS_CONFIGURATION_LOCALHOST; + } else if ([stateDescription isEqualToString: @"OpenDNS"]) { + currentState = kDNS_CONFIGURATION_OPENDNS; + } else if ([stateDescription isEqualToString: @"OpenDNS IPv6"]) { + currentState = kDNS_CONFIGURATION_OPENDNS; + } else if ([stateDescription isEqualToString: @"None"]) { + currentState = kDNS_CONFIGURATION_UNKNOWN; + } else if ([stateDescription isEqualToString: @"Updating"]) { + currentState = kDNS_CONFIGURATION_UNKNOWN; + return FALSE; + } else if (stateDescription.length > 0) { + currentState = kDNS_CONFIGURATION_VANILLA; + } + [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]]; + _currentResolverTextField.stringValue = currentResolvers; return TRUE; } diff --git a/DNSCrypt-Preference-Pane/DNSCrypt/en.lproj/DNSCrypt.xib b/DNSCrypt-Preference-Pane/DNSCrypt/en.lproj/DNSCrypt.xib index 24603a6..d33d1a6 100644 --- a/DNSCrypt-Preference-Pane/DNSCrypt/en.lproj/DNSCrypt.xib +++ b/DNSCrypt-Preference-Pane/DNSCrypt/en.lproj/DNSCrypt.xib @@ -65,6 +65,7 @@ {{13, 10}, {563, 359}} + _NS:461 @@ -79,7 +80,7 @@ {{15, 238}, {204, 22}} - + _NS:239 YES @@ -95,7 +96,7 @@ 1211912448 2 - + NSImage NSSwitch @@ -115,7 +116,7 @@ {{15, 212}, {245, 24}} - + _NS:239 YES @@ -127,7 +128,7 @@ 1211912448 2 - + @@ -158,7 +159,7 @@ 1211912448 2 - + @@ -173,6 +174,7 @@ {{15, 133}, {204, 22}} + _NS:239 YES @@ -184,7 +186,7 @@ 1211912448 2 - + @@ -262,7 +264,7 @@ 268 - {{26, 2}, {240, 78}} + {{14, -3}, {240, 83}} @@ -295,7 +297,7 @@ {{115, 283}, {125, 19}} - + _NS:3596 YES @@ -424,7 +426,6 @@ {{323, 190}, {183, 32}} - _NS:2419 YES @@ -1247,9 +1248,6 @@ NSButton NSButton NSButton - NSButton - NSButton - NSButton @@ -1272,18 +1270,6 @@ opendnsButtonPressed: NSButton - - xenableDNSCryptButtonPressed: - NSButton - - - xenableInsecureDNSButtonPressed: - NSButton - - - xenableOpenDNSButtonPressed: - NSButton - WebView