diff --git a/DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt.h b/DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt.h index c82d993..c2d7660 100644 --- a/DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt.h +++ b/DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt.h @@ -49,6 +49,7 @@ 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; - (void) mainViewDidLoad; @@ -59,5 +60,6 @@ typedef enum { - (IBAction)openDNSLinkPushed:(NSButton *)sender; - (IBAction)uninstallPushed:(NSButton *)sender; +- (IBAction)staticResolversTextFieldChanged:(NSTextField *)sender; @end diff --git a/DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt.m b/DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt.m index 249e286..dee01b4 100644 --- a/DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt.m +++ b/DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt.m @@ -12,12 +12,11 @@ @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 dnscryptButton = _dnscryptButton; @synthesize opendnsButton = _opendnsButton; @synthesize fallbackButton = _fallbackButton; @@ -82,6 +81,8 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN; if ([res isEqualToString: @"yes"]) { [_fallbackButton setState: 1]; } + res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./get-static-resolvers.sh", nil]]; + [_staticResolversTextField setStringValue: res]; } - (void) updateLedStatus @@ -346,5 +347,13 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN; [self fromCommand: @"/bin/ksh" 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/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./set-static-resolvers.sh \"$STATIC_RESOLVERS\"", staticResolvers, nil]]; +} @end diff --git a/DNSCrypt-Preference-Pane/DNSCrypt/en.lproj/DNSCrypt.xib b/DNSCrypt-Preference-Pane/DNSCrypt/en.lproj/DNSCrypt.xib index 22afabd..c080d8a 100644 --- a/DNSCrypt-Preference-Pane/DNSCrypt/en.lproj/DNSCrypt.xib +++ b/DNSCrypt-Preference-Pane/DNSCrypt/en.lproj/DNSCrypt.xib @@ -842,7 +842,7 @@ aW91cy5leGFtcGxlLm5ldA {{511, 0}, {25, 25}} - + _NS:1598 YES @@ -1328,6 +1328,22 @@ aW91cy5leGFtcGxlLm5ldA 422 + + + staticResolversTextFieldChanged: + + + + 432 + + + + staticResolversTextField + + + + 433 + @@ -2047,7 +2063,7 @@ aW91cy5leGFtcGxlLm5ldA - 429 + 433 @@ -2060,6 +2076,7 @@ aW91cy5leGFtcGxlLm5ldA NSButton NSButton NSButton + NSTextField NSButton @@ -2083,6 +2100,10 @@ aW91cy5leGFtcGxlLm5ldA opendnsButtonPressed: NSButton + + staticResolversTextFieldChanged: + NSTextField + uninstallPushed: NSButton @@ -2100,6 +2121,7 @@ aW91cy5leGFtcGxlLm5ldA WebView NSTabViewItem WebView + NSTextFieldCell NSImageView NSTextField NSTabView @@ -2149,6 +2171,10 @@ aW91cy5leGFtcGxlLm5ldA releaseNotesWebView WebView + + staticResolversTextField + NSTextFieldCell + statusImageView NSImageView diff --git a/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/get-static-resolvers.sh b/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/get-static-resolvers.sh new file mode 100755 index 0000000..385720a --- /dev/null +++ b/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/get-static-resolvers.sh @@ -0,0 +1,5 @@ +#! /bin/sh + +. ./common.inc + +[ -r "$STATIC_RESOLVERS_FILE" ] && cat "$STATIC_RESOLVERS_FILE" diff --git a/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/set-static-resolvers.sh b/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/set-static-resolvers.sh index 3fbf855..2a79eaa 100755 --- a/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/set-static-resolvers.sh +++ b/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/set-static-resolvers.sh @@ -13,5 +13,5 @@ done if [ "$servers" = "" ]; then rm -f "$STATIC_RESOLVERS_FILE" else - echo "$servers" > "$STATIC_RESOLVERS_FILE" + echo "$servers" | sed 's/^ *//;s/ *$//' > "$STATIC_RESOLVERS_FILE" fi