diff --git a/DNSCrypt-Menubar/DNSCrypt-Menubar/DNSCrypt-Menubar-Info.plist b/DNSCrypt-Menubar/DNSCrypt-Menubar/DNSCrypt-Menubar-Info.plist
index aa8fc4c..ed60424 100644
--- a/DNSCrypt-Menubar/DNSCrypt-Menubar/DNSCrypt-Menubar-Info.plist
+++ b/DNSCrypt-Menubar/DNSCrypt-Menubar/DNSCrypt-Menubar-Info.plist
@@ -17,11 +17,11 @@
CFBundlePackageType
APPL
CFBundleShortVersionString
- 0.16 (beta)
+ 0.17 (beta)
CFBundleSignature
????
CFBundleVersion
- 0.16
+ 0.17
LSApplicationCategoryType
public.app-category.utilities
LSMinimumSystemVersion
diff --git a/DNSCrypt-OSX-Installer/DNSCrypt-OSX-Installer.pkgproj b/DNSCrypt-OSX-Installer/DNSCrypt-OSX-Installer.pkgproj
index 74e1634..d530d2c 100755
--- a/DNSCrypt-OSX-Installer/DNSCrypt-OSX-Installer.pkgproj
+++ b/DNSCrypt-OSX-Installer/DNSCrypt-OSX-Installer.pkgproj
@@ -441,6 +441,200 @@
UID
0
+
+ CHILDREN
+
+
+ CHILDREN
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ /usr/local/lib/dnscrypt-proxy/libdcplugin_example_ldns_blocking.la
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ /usr/local/lib/dnscrypt-proxy/libdcplugin_example_ldns_blocking.so
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ /usr/local/lib/dnscrypt-proxy/libdcplugin_example_ldns_opendns_deviceid.la
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ /usr/local/lib/dnscrypt-proxy/libdcplugin_example_ldns_opendns_deviceid.so
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ /usr/local/lib/dnscrypt-proxy/libdcplugin_example_ldns_opendns_parental_control.la
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ /usr/local/lib/dnscrypt-proxy/libdcplugin_example_ldns_opendns_parental_control.so
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ /usr/local/lib/dnscrypt-proxy/libdcplugin_example_ldns_opendns_set_client_ip.la
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ /usr/local/lib/dnscrypt-proxy/libdcplugin_example_ldns_opendns_set_client_ip.so
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ /usr/local/lib/dnscrypt-proxy/libdcplugin_example_logging.la
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ /usr/local/lib/dnscrypt-proxy/libdcplugin_example_logging.so
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ GID
+ 0
+ PATH
+ dnscrypt-proxy
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 2
+ UID
+ 0
+
+
+ GID
+ 0
+ PATH
+ lib
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 2
+ UID
+ 0
+
CHILDREN
@@ -634,7 +828,7 @@
USE_HFS+_COMPRESSION
VERSION
- 1.1.0.2
+ 1.1.0.4
UUID
7F7D70AB-F7A2-4027-8304-3063C7B9532F
@@ -1241,7 +1435,7 @@
USE_HFS+_COMPRESSION
VERSION
- 0.16
+ 0.17
TYPE
0
@@ -1734,7 +1928,7 @@
USE_HFS+_COMPRESSION
VERSION
- 0.16
+ 0.17
TYPE
0
diff --git a/DNSCrypt-OSX-Installer/sign.sh b/DNSCrypt-OSX-Installer/sign.sh
index 40edca9..84ec3a2 100755
--- a/DNSCrypt-OSX-Installer/sign.sh
+++ b/DNSCrypt-OSX-Installer/sign.sh
@@ -1,6 +1,6 @@
#! /bin/sh
-VERSION='0.16'
+VERSION='0.17-dev'
cd build || exit 1
(
diff --git a/DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt-Info.plist b/DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt-Info.plist
index 623a54e..2e59eec 100644
--- a/DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt-Info.plist
+++ b/DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt-Info.plist
@@ -17,11 +17,11 @@
CFBundlePackageType
BNDL
CFBundleShortVersionString
- 0.16
+ 0.17
CFBundleSignature
????
CFBundleVersion
- 0.16
+ 0.17
NSHumanReadableCopyright
Copyright © 2011-2012 OpenDNS Inc. All rights reserved.
NSMainNibFile
diff --git a/DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt.h b/DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt.h
index c2d7660..0fb0579 100644
--- a/DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt.h
+++ b/DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt.h
@@ -9,7 +9,7 @@
#import
#import
-#define kDNSCRYPT_PACKAGE_VERSION @"0.16"
+#define kDNSCRYPT_PACKAGE_VERSION @"0.17"
#define kDNSCRYPT_PREFPANE_APP_PATH @"/Library/PreferencePanes/DNSCrypt.prefPane"
#define kDNSCRYPT_USR_BASE_DIR kDNSCRYPT_PREFPANE_APP_PATH @"/Contents/Resources/usr"
@@ -50,6 +50,7 @@ typedef enum {
@property (nonatomic, retain) IBOutlet WebView *feedbackWebView;
@property (nonatomic, retain) IBOutlet WebView *aboutWebView;
@property (nonatomic, retain) IBOutlet NSTextFieldCell *staticResolversTextField;
+@property (nonatomic, retain) IBOutlet NSButton *parentalControlsButton;
- (void) mainViewDidLoad;
@@ -61,5 +62,6 @@ typedef enum {
- (IBAction)openDNSLinkPushed:(NSButton *)sender;
- (IBAction)uninstallPushed:(NSButton *)sender;
- (IBAction)staticResolversTextFieldChanged:(NSTextField *)sender;
+- (IBAction)parentalControlsButtonPressed:(NSButtonCell *)sender;
@end
diff --git a/DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt.m b/DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt.m
index aa2ee16..2f9ca65 100644
--- a/DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt.m
+++ b/DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt.m
@@ -17,6 +17,7 @@
@synthesize feedbackWebView = _feedbackWebView;
@synthesize aboutWebView = _aboutWebView;
@synthesize staticResolversTextField = _staticResolversTextField;
+@synthesize parentalControlsButton = _parentalControlsButton;
@synthesize dnscryptButton = _dnscryptButton;
@synthesize opendnsButton = _opendnsButton;
@synthesize fallbackButton = _fallbackButton;
@@ -83,6 +84,10 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
}
res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./get-static-resolvers.sh", nil]];
[_staticResolversTextField setStringValue: res];
+ res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./get-parental-controls-status.sh", nil]];
+ if ([res isEqualToString: @"yes"]) {
+ [_parentalControlsButton setState: 1];
+ }
}
- (void) updateLedStatus
@@ -369,4 +374,26 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
[self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./set-static-resolvers.sh \"$STATIC_RESOLVERS\"", staticResolvers, nil]];
}
+- (BOOL) setParentalControlsOn {
+ [self showSpinners];
+ NSString *res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-parental-controls-on.sh", nil]];
+ (void) res;
+ return TRUE;
+}
+
+- (BOOL) setParentalControlsOff {
+ [self showSpinners];
+ NSString *res = [self fromCommand: @"/bin/ksh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./create-ticket.sh && ./switch-parental-controls-off.sh", nil]];
+ (void) res;
+ return TRUE;
+}
+
+- (IBAction)parentalControlsButtonPressed:(NSButtonCell *)sender {
+ if (sender.state != 0) {
+ [self setParentalControlsOn];
+ } else {
+ [self setParentalControlsOff];
+ }
+}
+
@end
diff --git a/DNSCrypt-Preference-Pane/DNSCrypt/en.lproj/DNSCrypt.xib b/DNSCrypt-Preference-Pane/DNSCrypt/en.lproj/DNSCrypt.xib
index 95e7dea..6ebe8a7 100644
--- a/DNSCrypt-Preference-Pane/DNSCrypt/en.lproj/DNSCrypt.xib
+++ b/DNSCrypt-Preference-Pane/DNSCrypt/en.lproj/DNSCrypt.xib
@@ -65,7 +65,6 @@
{{13, 10}, {563, 359}}
-
_NS:461
+
+
+ parentalControlsButton
+
+
+
+ 434
+
+
+
+ parentalControlsButtonPressed:
+
+
+
+ 436
+
@@ -2063,7 +2077,7 @@ aW91cy5leGFtcGxlLm5ldA
- 433
+ 436
@@ -2076,6 +2090,7 @@ aW91cy5leGFtcGxlLm5ldA
NSButton
NSButton
NSButton
+ NSButtonCell
NSTextField
NSButton
@@ -2100,6 +2115,10 @@ aW91cy5leGFtcGxlLm5ldA
opendnsButtonPressed:
NSButton
+
+ parentalControlsButtonPressed:
+ NSButtonCell
+
staticResolversTextFieldChanged:
NSTextField
@@ -2118,6 +2137,7 @@ aW91cy5leGFtcGxlLm5ldA
NSButton
WebView
NSButton
+ NSButton
WebView
NSTabViewItem
WebView
@@ -2159,6 +2179,10 @@ aW91cy5leGFtcGxlLm5ldA
opendnsButton
NSButton
+
+ parentalControlsButton
+ NSButton
+
previewNotesWebView
WebView
diff --git a/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/common.inc b/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/common.inc
index d3c3772..ef6b67f 100644
--- a/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/common.inc
+++ b/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/common.inc
@@ -18,6 +18,9 @@ HANDLERS_LOCK_FILE="/var/run/dnscrypt-handlers.lock"
DOMAINS_EXCEPTIONS_FILE="${CONTROL_DIR}/domains-exceptions"
DNSCRYPT_PROXY_PLUGINS_BASE_FILE="${CONTROL_DIR}/plugin"
STATIC_RESOLVERS_FILE="${CONTROL_DIR}/static-resolvers"
+PLUGINS_ENABLED_FILE="${CONTROL_DIR}/plugins.enabled"
+PARENTAL_CONTROLS_FILE="${CONTROL_DIR}/plugin-parental-controls.enabled"
+
INTERFACE_UNBOUND="127.0.0.53"
INTERFACE_UNBOUND_MASK="24"
diff --git a/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/get-parental-controls-status.sh b/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/get-parental-controls-status.sh
new file mode 100755
index 0000000..08c8ffd
--- /dev/null
+++ b/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/get-parental-controls-status.sh
@@ -0,0 +1,9 @@
+#! /bin/sh
+
+. ./common.inc
+
+if [ -e "$PARENTAL_CONTROLS_FILE" ]; then
+ echo 'yes'
+else
+ echo 'no'
+fi
diff --git a/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/switch-parental-controls-off.sh b/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/switch-parental-controls-off.sh
new file mode 100755
index 0000000..075854d
--- /dev/null
+++ b/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/switch-parental-controls-off.sh
@@ -0,0 +1,7 @@
+#! /bin/sh
+
+. ./common.inc
+
+rm -f "$PARENTAL_CONTROLS_FILE"
+
+
diff --git a/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/switch-parental-controls-on.sh b/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/switch-parental-controls-on.sh
new file mode 100755
index 0000000..5b7d67d
--- /dev/null
+++ b/DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/switch-parental-controls-on.sh
@@ -0,0 +1,8 @@
+#! /bin/sh
+
+. ./common.inc
+
+echo 'libdcplugin_example_ldns_opendns_parental_control.la' > \
+ "$PARENTAL_CONTROLS_FILE"
+touch "$PLUGINS_ENABLED_FILE"
+