Handle exceptions

This commit is contained in:
Frank Denis
2012-09-27 23:13:40 +02:00
parent fde1ebff46
commit 92a8b0b097
3 changed files with 50 additions and 3 deletions
@@ -21,6 +21,7 @@
#define kDNSCRYPT_QUERY_LOG_FILE @"/var/log/dnscrypt-query.log"
#define kDNSCRYPT_BLACKLIST_IPS_TMP_FILE kDNSCRYPT_CONTROL_DIR @"/blacklist-ips.tmp"
#define kDNSCRYPT_BLACKLIST_DOMAINS_TMP_FILE kDNSCRYPT_CONTROL_DIR @"/blacklist-domains.tmp"
#define kDNSCRYPT_EXCEPTIONS_TMP_FILE kDNSCRYPT_CONTROL_DIR @"/exceptions.tmp"
#define kOPENDNS_URL @"http://www.opendns.com"
@@ -59,6 +60,7 @@ typedef enum {
@property (nonatomic, retain) IBOutlet NSButton *lockinButton;
@property (nonatomic, retain) IBOutlet NSTextField *blacklistIPsTextField;
@property (nonatomic, retain) IBOutlet NSTextField *blacklistDomainsTextField;
@property (nonatomic, retain) IBOutlet NSTextField *exceptionsTextField;
@property (nonatomic, retain) IBOutlet WebView *helpWebView;
- (void) mainViewDidLoad;
@@ -77,6 +79,7 @@ typedef enum {
- (IBAction)lockinButtonPressed:(NSButton *)sender;
- (IBAction)blacklistIPsUpdated:(NSTextField *)sender;
- (IBAction)blacklistDomainsUpdated:(NSTextField *)sender;
- (IBAction)exceptionsUpdated:(NSTextField *)sender;
- (IBAction)helpButtonPressed:(NSButton *)sender;
@end
@@ -23,6 +23,7 @@
@synthesize blacklistIPsTextField = _blacklistIPsTextField;
@synthesize blacklistDomainsTextField = _blacklistDomainsTextField;
@synthesize helpWebView = _helpWebView;
@synthesize exceptionsTextField = _exceptionsTextField;
@synthesize dnscryptButton = _dnscryptButton;
@synthesize opendnsButton = _opendnsButton;
@synthesize fallbackButton = _fallbackButton;
@@ -110,6 +111,10 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
if (fileContent != nil) {
[_blacklistDomainsTextField setStringValue: fileContent];
}
fileContent = [NSString stringWithContentsOfFile: kDNSCRYPT_EXCEPTIONS_TMP_FILE encoding:NSUTF8StringEncoding error: nil];
if (fileContent != nil) {
[_exceptionsTextField setStringValue: fileContent];
}
}
- (void) updateLedStatus
@@ -507,6 +512,21 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
[self updateBlacklistDomains];
}
- (BOOL) updateExceptions {
[self showSpinners];
NSString *res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./update-exceptions.sh", nil]];
(void) res;
return TRUE;
}
- (IBAction)exceptionsUpdated:(NSTextField *)sender {
NSString *content = sender.stringValue;
if ([content writeToFile: kDNSCRYPT_EXCEPTIONS_TMP_FILE atomically: YES encoding: NSUTF8StringEncoding error: nil] != YES) {
return;
}
[self updateExceptions];
}
- (IBAction)helpButtonPressed:(NSButton *)sender {
if (_helpWebView.isHidden) {
[_helpWebView setHidden: NO];
@@ -65,7 +65,6 @@
<string key="NSFrame">{{13, 10}, {563, 359}}</string>
<reference key="NSSuperview" ref="1037298196"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="42710935"/>
<string key="NSReuseIdentifierKey">_NS:461</string>
<array class="NSMutableArray" key="NSTabViewItems">
<object class="NSTabViewItem" id="19707695">
@@ -854,7 +853,6 @@ aW91cy5leGFtcGxlLm5ldA</string>
<string key="NSFrame">{{511, 0}, {25, 25}}</string>
<reference key="NSSuperview" ref="42710935"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:1598</string>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="933364045">
@@ -1449,6 +1447,22 @@ aW91cy5leGFtcGxlLm5ldA</string>
</object>
<int key="connectionID">451</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">exceptionsTextField</string>
<reference key="source" ref="294453543"/>
<reference key="destination" ref="902108600"/>
</object>
<int key="connectionID">452</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">exceptionsUpdated:</string>
<reference key="source" ref="294453543"/>
<reference key="destination" ref="902108600"/>
</object>
<int key="connectionID">453</int>
</object>
</array>
<object class="IBMutableOrderedSet" key="objectRecords">
<array key="orderedObjects">
@@ -2147,7 +2161,7 @@ aW91cy5leGFtcGxlLm5ldA</string>
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">451</int>
<int key="maxID">453</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
@@ -2158,6 +2172,7 @@ aW91cy5leGFtcGxlLm5ldA</string>
<string key="blacklistDomainsUpdated:">NSTextField</string>
<string key="blacklistIPsUpdated:">NSTextField</string>
<string key="dnscryptButtonPressed:">NSButton</string>
<string key="exceptionsUpdated:">NSTextField</string>
<string key="fallbackButtonPressed:">NSButton</string>
<string key="familyShieldButtonPressed:">NSButton</string>
<string key="helpButtonPressed:">NSButton</string>
@@ -2183,6 +2198,10 @@ aW91cy5leGFtcGxlLm5ldA</string>
<string key="name">dnscryptButtonPressed:</string>
<string key="candidateClassName">NSButton</string>
</object>
<object class="IBActionInfo" key="exceptionsUpdated:">
<string key="name">exceptionsUpdated:</string>
<string key="candidateClassName">NSTextField</string>
</object>
<object class="IBActionInfo" key="fallbackButtonPressed:">
<string key="name">fallbackButtonPressed:</string>
<string key="candidateClassName">NSButton</string>
@@ -2235,6 +2254,7 @@ aW91cy5leGFtcGxlLm5ldA</string>
<string key="blacklistIPsTextField">NSTextField</string>
<string key="currentResolverTextField">NSTextField</string>
<string key="dnscryptButton">NSButton</string>
<string key="exceptionsTextField">NSTextField</string>
<string key="fallbackButton">NSButton</string>
<string key="familyShieldButton">NSButton</string>
<string key="feedbackWebView">WebView</string>
@@ -2276,6 +2296,10 @@ aW91cy5leGFtcGxlLm5ldA</string>
<string key="name">dnscryptButton</string>
<string key="candidateClassName">NSButton</string>
</object>
<object class="IBToOneOutletInfo" key="exceptionsTextField">
<string key="name">exceptionsTextField</string>
<string key="candidateClassName">NSTextField</string>
</object>
<object class="IBToOneOutletInfo" key="fallbackButton">
<string key="name">fallbackButton</string>
<string key="candidateClassName">NSButton</string>