From 8786d2df3abb3bd11aa0f36f36718d01ca7b077b Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Tue, 25 Sep 2012 21:13:35 +0200 Subject: [PATCH] Add the user interface version and the dnscrypt version to feedback messages. Requested by the OpenDNS support team. --- DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt.m | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt.m b/DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt.m index dee01b4..23564d8 100644 --- a/DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt.m +++ b/DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt.m @@ -269,6 +269,18 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN; [self performSelector: @selector(waitForUpdate) withObject: self afterDelay:kREFRESH_DELAY]; } +- (void) webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame { + if (sender != _feedbackWebView) { + return; + } + NSString *res; + res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"/usr/local/sbin/dnscrypt-proxy --version | head -n 1", nil]]; + NSCharacterSet *charset = [NSCharacterSet characterSetWithCharactersInString: @"\r\n<>'"]; + res = [[res componentsSeparatedByCharactersInSet: charset] componentsJoinedByString: @" "]; + NSString *script = [NSString stringWithFormat: @"document.querySelector('textarea[name=feedback]').value='\\n\\n\\n--\\nVersion of the OpenDNS user interface for OSX: " kDNSCRYPT_PACKAGE_VERSION "\\n%@'", res];; + [sender stringByEvaluatingJavaScriptFromString: script]; +} + - (void) mainViewDidLoad { currentState = kDNS_CONFIGURATION_UNKNOWN; @@ -300,6 +312,7 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN; [_feedbackWebView setDrawsBackground:false]; [_feedbackWebView setShouldUpdateWhileOffscreen:true]; [_feedbackWebView setUIDelegate:self]; + [_feedbackWebView setFrameLoadDelegate: self]; NSString *feedbackURLText = @"http://dnscrypt.opendns.com/feedback.php"; [[_feedbackWebView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:feedbackURLText]]];