Compare commits

..
17 Commits
Author SHA1 Message Date
Frank Denis be119200b0 Be more liberal with the /Library/Application Support/DNSCrypt perms. 2012-09-07 14:23:41 -07:00
Frank Denis a9d5162dd4 chmod 755 "$DNSCRYPT_VAR_BASE_DIR" because the default perms are too restrictive. 2012-09-07 14:21:51 -07:00
Frank Denis 35b6f29267 sign 0.15 packages 2012-09-07 11:41:14 -07:00
Frank Denis 50e259112c Bump installer version to 0.15 2012-09-07 11:37:38 -07:00
Frank Denis 61c30c56df Prepare for release 0.15 of the OSX GUI. 2012-09-07 11:33:20 -07:00
Frank Denis 1e36414f46 Uninstall the dnscrypt plugins, too. 2012-09-06 10:57:17 -07:00
Frank Denis cfff4c9145 Regen 2012-08-20 17:18:51 -07:00
Frank Denis 0e9ebd325e Only chown/chmod the control dir if the permissions on the parent doesn't
match the current console owner.
If things go bad, it will make them even worse, but it avoids triggering
handle-control-change when not necessary.
2012-08-18 10:18:31 -07:00
Frank Denis d06b75393c Add nowtv.com to the list of exceptions.
Looks like a necessary evil.
2012-08-16 20:18:36 -07:00
Frank Denis 16a6ea8ff6 Add fritz.box to the list of domain exceptions. 2012-08-16 07:41:05 -07:00
Frank Denis 9da622c3fb Uninstaller: cd to the script directory before reverting to dhcp 2012-08-11 09:20:40 -07:00
Frank Denis c5bc5be9f7 Have the uninstaller uninstall files from GUI versions > 0.10 2012-08-10 21:40:04 -07:00
Frank Denis fe647a75c0 0.14 2012-08-08 12:14:41 -07:00
Frank Denis 58da45dd08 Compile the preference pane with gcc, for dead old OSX versions. 2012-08-08 12:01:55 -07:00
Frank Denis 7b6246a569 Synthesize tabView/aboutTabViewItem/releaseNotesTabViewItem. 2012-08-08 11:36:50 -07:00
Frank Denis 611bae452c Cope with possibly missing html files. 2012-08-08 10:36:17 -07:00
Frank Denis e517ebad51 Remove the about/release notes tabs for 10.7, too. 2012-08-08 09:15:22 -07:00
16 changed files with 119 additions and 58 deletions
@@ -194,7 +194,7 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
_statusItem.toolTip = @"DNSCrypt";
_statusItem.menu = _dnscryptMenu;
NSString *versionStringFormat = NSLocalizedString(@"Client version: %@", @"Current version in the menu");
NSString *versionStringFormat = NSLocalizedString(@"Client UI version: %@", @"Current UI version as shown in the menu");
NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
_versionMenuItem.title = [NSString stringWithFormat: versionStringFormat, version];
@@ -17,11 +17,11 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>0.13 (beta)</string>
<string>0.15 (beta)</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>0.13</string>
<string>0.15</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.utilities</string>
<key>LSMinimumSystemVersion</key>
@@ -634,7 +634,7 @@
<key>USE_HFS+_COMPRESSION</key>
<true/>
<key>VERSION</key>
<string>1.0.1</string>
<string>1.1.0.1</string>
</dict>
<key>UUID</key>
<string>7F7D70AB-F7A2-4027-8304-3063C7B9532F</string>
@@ -1241,7 +1241,7 @@
<key>USE_HFS+_COMPRESSION</key>
<true/>
<key>VERSION</key>
<string>0.13</string>
<string>0.15</string>
</dict>
<key>TYPE</key>
<integer>0</integer>
@@ -1734,7 +1734,7 @@
<key>USE_HFS+_COMPRESSION</key>
<true/>
<key>VERSION</key>
<string>0.13</string>
<string>0.15</string>
</dict>
<key>TYPE</key>
<integer>0</integer>
@@ -1756,7 +1756,7 @@
ZW50LVN0eWxlLVR5cGUiIGNvbnRlbnQ9InRleHQvY3NzIj4KPHRp
dGxlPjwvdGl0bGU+CjxtZXRhIG5hbWU9IkdlbmVyYXRvciIgY29u
dGVudD0iQ29jb2EgSFRNTCBXcml0ZXIiPgo8bWV0YSBuYW1lPSJD
b2NvYVZlcnNpb24iIGNvbnRlbnQ9IjExNTcuNyI+CjxzdHlsZSB0
b2NvYVZlcnNpb24iIGNvbnRlbnQ9IjExODcuMiI+CjxzdHlsZSB0
eXBlPSJ0ZXh0L2NzcyI+Cjwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+
CjwvYm9keT4KPC9odG1sPgo=
</data>
@@ -1994,7 +1994,7 @@
<key>IC_REQUIREMENT_CPU_ARCHITECTURE_FAMILY</key>
<integer>2</integer>
<key>IC_REQUIREMENT_CPU_INTEL_ARCHITECTURE_TYPE</key>
<integer>2</integer>
<integer>0</integer>
<key>IC_REQUIREMENT_CPU_MINIMUM_CPU_CORES_COUNT</key>
<integer>1</integer>
<key>IC_REQUIREMENT_CPU_MINIMUM_FREQUENCY</key>
@@ -2014,7 +2014,7 @@
<key>SECONDARY_VALUE</key>
<string></string>
<key>VALUE</key>
<string>The DNSCrypt GUI for Mac currently requires at least an Intel Core 2 CPU.</string>
<string>The DNSCrypt GUI for Mac currently requires at least an Intel Core CPU.</string>
</dict>
</array>
<key>NAME</key>
@@ -8,7 +8,7 @@ exec 2>/dev/null
/bin/mkdir -p '/Library/Application Support/DNSCrypt/states'
/bin/mkdir -p '/Library/Application Support/DNSCrypt/tickets'
/usr/sbin/chown -R 0:0 '/Library/Application Support/DNSCrypt'
/bin/chmod 710 '/Library/Application Support/DNSCrypt'
/bin/chmod 755 '/Library/Application Support/DNSCrypt'
eval $(/usr/bin/stat -s '/dev/console')
if [ $? != 0 ]; then
+7 -7
View File
@@ -1,6 +1,6 @@
#! /bin/sh
VERSION='0.13'
VERSION='0.15'
cd build || exit 1
(
@@ -16,11 +16,11 @@ done
rm -fr DNSCrypt-OSX.mpkg
productsign --sign 'Developer ID Application' DNSCrypt.mpkg DNSCrypt-OSX.mpkg
zip -9 -r "dnscrypt-osx-client-${VERSION}.zip" DNSCrypt-OSX.mpkg
rm -fr dstroot
rm -fr dnscrypt-pkg
rm -f "dnscrypt-osx-client-${VERSION}.dmg"
mkdir dstroot
mv DNSCrypt-OSX.mpkg dstroot
hdiutil create "dnscrypt-osx-client-${VERSION}.dmg" -srcfolder dstroot
mkdir dnscrypt-pkg
mv DNSCrypt-OSX.mpkg dnscrypt-pkg
hdiutil create "dnscrypt-osx-client-${VERSION}.dmg" -srcfolder dnscrypt-pkg
mv dstroot/DNSCrypt-OSX.mpkg .
rm -fr dstroot
mv dnscrypt-pkg/DNSCrypt-OSX.mpkg .
rm -fr dnscrypt-pkg
@@ -294,7 +294,7 @@
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
GCC_VERSION = com.apple.compilers.llvmgcc42;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
@@ -317,7 +317,7 @@
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_ENABLE_OBJC_GC = supported;
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
GCC_VERSION = com.apple.compilers.llvmgcc42;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
@@ -17,11 +17,11 @@
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>0.13</string>
<string>0.15</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>0.13</string>
<string>0.15</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright © 2011-2012 OpenDNS Inc. All rights reserved.</string>
<key>NSMainNibFile</key>
+15 -15
View File
@@ -9,7 +9,7 @@
#import <PreferencePanes/PreferencePanes.h>
#import <WebKit/WebKit.h>
#define kDNSCRYPT_PACKAGE_VERSION @"0.13"
#define kDNSCRYPT_PACKAGE_VERSION @"0.15"
#define kDNSCRYPT_PREFPANE_APP_PATH @"/Library/PreferencePanes/DNSCrypt.prefPane"
#define kDNSCRYPT_USR_BASE_DIR kDNSCRYPT_PREFPANE_APP_PATH @"/Contents/Resources/usr"
@@ -32,22 +32,22 @@ typedef enum {
@interface DNSCrypt : NSPreferencePane {
AuthorizationRef auth;
}
@property (assign) IBOutlet NSTabView *tabView;
@property (assign) IBOutlet NSTabViewItem *aboutTabViewItem;
@property (assign) IBOutlet NSTabViewItem *releaseNotesTabViewItem;
@property (nonatomic, retain) IBOutlet NSTabView *tabView;
@property (nonatomic, retain) IBOutlet NSTabViewItem *aboutTabViewItem;
@property (nonatomic, retain) IBOutlet NSTabViewItem *releaseNotesTabViewItem;
@property (strong) IBOutlet NSButton *dnscryptButton;
@property (strong) IBOutlet NSButton *opendnsButton;
@property (strong) IBOutlet NSButton *familyShieldButton;
@property (strong) IBOutlet NSButton *fallbackButton;
@property (nonatomic, retain) IBOutlet NSButton *dnscryptButton;
@property (nonatomic, retain) IBOutlet NSButton *opendnsButton;
@property (nonatomic, retain) IBOutlet NSButton *familyShieldButton;
@property (nonatomic, retain) IBOutlet NSButton *fallbackButton;
@property (strong) IBOutlet NSTextField *currentResolverTextField;
@property (strong) IBOutlet NSImageView *statusImageView;
@property (strong) IBOutlet NSTextField *statusText;
@property (strong) IBOutlet WebView *previewNotesWebView;
@property (strong) IBOutlet WebView *releaseNotesWebView;
@property (strong) IBOutlet WebView *feedbackWebView;
@property (strong) IBOutlet WebView *aboutWebView;
@property (nonatomic, retain) IBOutlet NSTextField *currentResolverTextField;
@property (nonatomic, retain) IBOutlet NSImageView *statusImageView;
@property (nonatomic, retain) IBOutlet NSTextField *statusText;
@property (nonatomic, retain) IBOutlet WebView *previewNotesWebView;
@property (nonatomic, retain) IBOutlet WebView *releaseNotesWebView;
@property (nonatomic, retain) IBOutlet WebView *feedbackWebView;
@property (nonatomic, retain) IBOutlet WebView *aboutWebView;
- (void) mainViewDidLoad;
+20 -7
View File
@@ -9,6 +9,10 @@
#import "DNSCrypt.h"
@implementation DNSCrypt
@synthesize tabView = _tabView;
@synthesize aboutTabViewItem = _aboutTabViewItem;
@synthesize releaseNotesTabViewItem = _releaseNotesTabViewItem;
@synthesize previewNotesWebView = _previewNotesWebView;
@synthesize releaseNotesWebView = _releaseNotesWebView;
@synthesize feedbackWebView = _feedbackWebView;
@@ -299,22 +303,31 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
[[_feedbackWebView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:feedbackURLText]]];
SInt32 OSXversionMajor, OSXversionMinor;
if (Gestalt(gestaltSystemVersionMajor, &OSXversionMajor) != noErr || Gestalt(gestaltSystemVersionMinor, &OSXversionMinor) != noErr || OSXversionMajor < 10 || OSXversionMinor < 7) {
[_tabView removeTabViewItem: _aboutTabViewItem];
[_tabView removeTabViewItem:_releaseNotesTabViewItem];
if (Gestalt(gestaltSystemVersionMajor, &OSXversionMajor) != noErr || Gestalt(gestaltSystemVersionMinor, &OSXversionMinor) != noErr || OSXversionMajor < 10 || OSXversionMinor < 6) {
return;
}
[_releaseNotesWebView setDrawsBackground:false];
[_releaseNotesWebView setShouldUpdateWhileOffscreen:true];
[_releaseNotesWebView setUIDelegate:self];
NSURL *releaseNotesURL = [NSURL fileURLWithPath: [[NSBundle bundleForClass:[self class]] pathForResource: @"html/releasenotes" ofType: @"html"] isDirectory: NO];
[[_releaseNotesWebView mainFrame] loadRequest:[NSURLRequest requestWithURL: releaseNotesURL]];
NSURL *releaseNotesURL;
NSString *releaseNotesURLPath = [[NSBundle bundleForClass: [self class]] pathForResource: @"releasenotes" ofType: @"html" inDirectory: @"html"];
if (! releaseNotesURLPath || ! (releaseNotesURL = [NSURL fileURLWithPath: releaseNotesURLPath])) {
[_tabView removeTabViewItem:_releaseNotesTabViewItem];
} else {
[[_releaseNotesWebView mainFrame] loadRequest:[NSURLRequest requestWithURL: releaseNotesURL]];
}
[_aboutWebView setDrawsBackground:false];
[_aboutWebView setShouldUpdateWhileOffscreen:true];
[_aboutWebView setUIDelegate:self];
NSURL *aboutURL = [NSURL fileURLWithPath: [[NSBundle bundleForClass:[self class]] pathForResource: @"html/about" ofType: @"html"] isDirectory: NO];
[[_aboutWebView mainFrame] loadRequest:[NSURLRequest requestWithURL: aboutURL]];
NSURL *aboutURL;
NSString *aboutURLPath = [[NSBundle bundleForClass: [self class]] pathForResource: @"about" ofType: @"html" inDirectory: @"html"];
if (! aboutURLPath || ! (aboutURL = [NSURL fileURLWithPath: aboutURLPath])) {
[_tabView removeTabViewItem: _aboutTabViewItem];
} else {
[[_aboutWebView mainFrame] loadRequest:[NSURLRequest requestWithURL: aboutURL]];
}
}
- (NSArray *)webView:(WebView *)sender contextMenuItemsForElement:(NSDictionary *)element
@@ -14,8 +14,8 @@
%body
%h1 About DNSCrypt
%p
This software encrypts DNS packets between your computer and
OpenDNS. This prevents man-in-the-middle attacks and snooping of DNS
This software encrypts and authenticates DNS packets between your computer
and OpenDNS. This prevents man-in-the-middle attacks and snooping of DNS
traffic by ISPs or others.
%p
Tips:
@@ -15,8 +15,8 @@
<body>
<h1>About DNSCrypt</h1>
<p>
This software encrypts DNS packets between your computer and
OpenDNS. This prevents man-in-the-middle attacks and snooping of DNS
This software encrypts and authenticates DNS packets between your computer
and OpenDNS. This prevents man-in-the-middle attacks and snooping of DNS
traffic by ISPs or others.
</p>
<p>
@@ -2,7 +2,7 @@
%html{lang: "en"}
%head
%meta{charset: "utf-8"}
%title Release notes
%title Release notes for the user interface
%style{type: "text/css"}
:sass
body
@@ -19,13 +19,30 @@
font:
style: italic
%body
%h1 Release Notes
%h1 Release Notes for the user interface
%article
%h2 Version 0.15 released!
%time Wed, 07 Sep 2012
%ul
%li dnscrypt-proxy has been updated to 1.1.0-RC1
%li
Queries for nowtv.com and fritz.com are now bypassing dnscrypt.
%li
The user interface doesn't update the DNS settings any more when
using an interactive shell.
%article
%h2 Version 0.14 released!
%time Wed, 08 Aug 2012
%ul
%li The preference pane can now run on OSX 10.6.
%article
%h2 Version 0.13 released!
%time Wed, 08 Aug 2012
%ul
%li The DNS cache is now flushed after a configuration change.
%li Compatibility with OSX 10.6 has been improved.
%li
The release notes are now bundled with the preference pane.
This reduces the startup time and ensures that these notes are
@@ -2,7 +2,7 @@
<html lang='en'>
<head>
<meta charset='utf-8' />
<title>Release notes</title>
<title>Release notes for the user interface</title>
<style type='text/css'>
body {
font-family: arial, helvetica, sans-serif;
@@ -22,13 +22,33 @@
</style>
</head>
<body>
<h1>Release Notes</h1>
<h1>Release Notes for the user interface</h1>
<article>
<h2>Version 0.15 released!</h2>
<time>Wed, 07 Sep 2012</time>
<ul>
<li>dnscrypt-proxy has been updated to 1.1.0-RC1</li>
<li>
Queries for nowtv.com and fritz.com are now bypassing dnscrypt.
</li>
<li>
The user interface doesn't update the DNS settings any more when
using an interactive shell.
</li>
</ul>
</article>
<article>
<h2>Version 0.14 released!</h2>
<time>Wed, 08 Aug 2012</time>
<ul>
<li>The preference pane can now run on OSX 10.6.</li>
</ul>
</article>
<article>
<h2>Version 0.13 released!</h2>
<time>Wed, 08 Aug 2012</time>
<ul>
<li>The DNS cache is now flushed after a configuration change.</li>
<li>Compatibility with OSX 10.6 has been improved.</li>
<li>
The release notes are now bundled with the preference pane.
This reduces the startup time and ensures that these notes are
@@ -23,7 +23,9 @@ INTERFACE_PROXY_MASK="24"
INTERFACE_PROBES="127.0.0.55"
INTERFACE_PROBES_MASK="24"
DOMAINS_EXCEPTIONS='routerlogin.net lan localdomain private intranet'
DOMAINS_EXCEPTIONS='
fritz.box intranet lan localdomain nowtv.com private routerlogin.net
'
export PATH="${DNSCRYPT_USR_BASE_DIR}/bin:${DNSCRYPT_USR_BASE_DIR}/scripts:$PATH"
@@ -7,9 +7,18 @@ wanted_uid="$st_uid"
if [ ! -d "$DNSCRYPT_VAR_BASE_DIR" ]; then
mkdir -p "$DNSCRYPT_VAR_BASE_DIR" || exit 1
chown -R 0:0 "$DNSCRYPT_VAR_BASE_DIR"
chmod 755 "$DNSCRYPT_VAR_BASE_DIR"
fi
mkdir -p "$CONTROL_DIR" || exit 1
mkdir -p "$TICKETS_DIR" || exit 1
chown -R "${wanted_uid}:0" "$CONTROL_DIR"
mkdir -m 755 -p "$TICKETS_DIR" || exit 1
chown -R "${wanted_uid}:0" "$TICKETS_DIR"
find "$DNSCRYPT_VAR_BASE_DIR" -type d -exec chmod 755 {} \;
eval $(stat -s "$CONTROL_DIR") || exit 1
if [ $? != 0 ]; then
mkdir -m 755 -p "$CONTROL_DIR" || exit 1
current_uid='nonexistent'
else
current_uid="$st_uid"
fi
[ x"$current_uid" != x"$wanted_uid" ] && \
chown -R "${wanted_uid}:0" "$CONTROL_DIR"
Binary file not shown.