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
422
+
+
+
+ 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