Compare commits

..
85 Commits
Author SHA1 Message Date
Alter Step c03ffce707 1.0.8 2015-07-11 18:54:54 +02:00
Alter Step 22fac25b52 1.0.8 2015-07-11 18:51:06 +02:00
Alter Step d75b291e71 real app update URL 2015-07-11 18:32:22 +02:00
Alter Step 66efa12e24 versions files 2015-07-11 18:06:30 +02:00
Alter Step 90a3558751 Version is 0 during testing 2015-07-11 16:07:45 +02:00
Alter Step 5cd2147527 automatic application updates! 2015-07-11 15:56:35 +02:00
Alter Step 08af88b591 Add plugins I forgot 2015-07-07 22:47:52 +02:00
Alter Step 23bef375ef Doc 2015-06-30 22:06:23 +02:00
Alter Step 079a08db64 1.0.7 2015-06-30 21:58:17 +02:00
Alter Step 409cfa07c6 "find -X" was not a good idea on Mac! 2015-06-23 11:07:00 +02:00
Alter Step 4d2c1e80b6 Add RFC2606 list of reserved top-level domain names 2015-06-11 01:35:41 +02:00
Alter Step 212e8921ec Change the package type from Bundle to Flat to fix code signing. 2015-06-11 01:11:56 +02:00
Frank Denis 8cc814acba Missing $ 2015-06-10 17:43:22 +02:00
Alter Step f5a4892bf3 Update README.markdown 2015-06-10 10:08:51 +02:00
Alter Step 784963b6fd PGP keys don't look great in a documentation 2015-06-10 01:25:06 +02:00
Alter Step bb49e3d386 My PGP key 2015-06-10 01:19:57 +02:00
Alter Step 3408d3beed finally, a new version! 2015-06-10 00:51:30 +02:00
Alter Step 8491012652 Keep the resolvers list update status around for a day 2015-06-10 00:39:54 +02:00
Alter Step e5652d8933 Almost ready 2015-06-10 00:30:21 +02:00
Alter Step 1b53464c9a Use updates.dnscrypt.org instead of download.dnscrypt.org for updates 2015-06-10 00:30:04 +02:00
Alter Step f4ab8a0991 Update the list of resolvers after a successful switch to dnscrypt 2015-06-10 00:17:48 +02:00
Alter Step 121feecdf7 Pick a random resolver if none was configured 2015-06-09 22:17:30 +02:00
Alter Step 1c3184a36e Turn on ephemeral keys 2015-06-09 22:07:05 +02:00
Alter Step fb1adf423b It's compatible with El Capitan 2015-06-09 22:04:41 +02:00
Alter Step a364d88326 Automatic updates of the resolvers list 2015-06-09 22:02:53 +02:00
Alter Step 70a39e6756 1.0.6 2015-06-09 21:31:05 +02:00
Alter Step 0848088f22 Merge pull request #42 from jedisct1/master
OSX 10.8 was called Mountain Lion
2015-03-14 10:57:03 +01:00
Frank Denis 4e681b272d OSX 10.8 was called Mountain Lion 2015-03-14 10:30:18 +01:00
Alter Step 105a7c800f 1.0.5 2015-01-05 23:16:30 +01:00
Alter Step bc5a6cbac4 Apparently, I was 365 days late. 2015-01-05 23:14:35 +01:00
Alter Step ca7eedb795 COPYING 2015-01-05 23:12:11 +01:00
Alter Step 98261a3396 And the compatibility list grew! 2015-01-05 23:06:32 +01:00
Alter Step dafba50926 1.0.5 2015-01-05 23:03:51 +01:00
Alter Step aa82ddd1cb Merge pull request #29 from staticlinuxpro/master
Yosemite White Menu-Icon, Convert to ARC
2014-10-17 18:35:44 -07:00
Luke Adams 76bcc9755e Disable GC on the prefpane. Now uses ARC. 2014-10-17 19:51:51 -05:00
Luke Adams 85b67e70aa Update Menubar to ARC 2014-10-17 19:47:16 -05:00
staticlinuxpro 50a2250ac5 Change MenuBar NSImage to template
Makes the menubar icon white when the status bar is dark (Yosemite+), also allows the OS to tweak for better visibility.
2014-10-17 19:40:34 -05:00
Alter Step 6c08e50dd2 1.0.4 2014-09-18 19:13:27 -07:00
Alter Step 71acebf3be Get ready for version 1.0.4 2014-09-18 19:03:11 -07:00
Alter Step e1236241fa Versin 1.0.3! 2014-06-18 18:42:04 -07:00
Alter Step afe2bfcdf5 Yosemite is OSX 10.10 2014-06-18 18:36:31 -07:00
Alter Step 2e5e311f00 Version 1.0.3? Version 1.0.3! 2014-06-18 18:31:04 -07:00
Alter Step f64a4991f0 Some updates to the documentation 2014-06-18 18:28:44 -07:00
Alter Step 650b910e7d Recompile libsodium without memset_s => works on OSX 10.8 2014-06-18 18:14:27 -07:00
Alter Step 6b6ae896fd Recompress icons 2014-06-15 14:42:00 -07:00
Alter Step 3a3f040524 Merge pull request #15 from avh4/master
Reduce icon size from 18x18 to 17x17
2014-06-15 14:41:07 -07:00
Aaron VonderHaar 418bbe586c Reduce icon size from 18x18 to 17x17 2014-06-15 14:31:11 -07:00
Alter Step c274c6082c Recompress the icons 2014-06-14 04:55:25 -07:00
Alter Step 54ad6a70d2 Merge pull request #14 from avh4/master
Updated retina menu bar icons based on the original icons
2014-06-14 04:50:38 -07:00
Aaron VonderHaar 61ccbaec85 Organize SVG layers 2014-06-14 01:06:25 -07:00
Aaron VonderHaar 9bd689a1f3 Adjust colors of the new inactive icon 2014-06-14 01:02:23 -07:00
Aaron VonderHaar ce3dcf4c06 Adjust colors of the new no-network icon 2014-06-14 00:52:24 -07:00
Aaron VonderHaar 572b33a765 Updated no-network icon based on the active icon 2014-06-13 20:37:20 -07:00
Aaron VonderHaar 77742886c4 Updated inactive icon based on the pre-retina exclamation mark icon 2014-06-13 20:26:52 -07:00
Aaron VonderHaar 236957ce0c Updated active icon based on the pre-retina active icon 2014-06-13 13:21:07 -07:00
Alter Step 5ca4dc6dc7 .zip => .dmg 2014-06-05 10:11:59 -07:00
Alter Step de5235f8b2 DMG files are not zipped any more. 2014-06-05 10:11:10 -07:00
Alter Step 275bb49624 Add a link to the new version 2014-06-05 10:10:16 -07:00
Alter Step 690fc9038d Release notes for 1.0.2 2014-06-05 10:02:04 -07:00
Alter Step 3724e78ab2 Revert "Debug build, enable debug log"
This reverts commit b036e93a6a.
2014-06-05 09:57:00 -07:00
Alter Step dd3b6a2aa7 Revert "Disable plugins"
This reverts commit 11640d3038.
2014-06-04 19:51:09 -07:00
Alter Step 455ee1dbcb 1.0.2 will be the next release. 2014-06-02 22:43:59 -07:00
Alter Step b036e93a6a Debug build, enable debug log 2014-06-02 22:27:03 -07:00
Alter Step 73ca3e136f If something is wrong with the proxy, disable it before restarting it 2014-06-02 22:21:20 -07:00
Alter Step 11640d3038 Disable plugins 2014-06-02 22:08:40 -07:00
Alter Step af6b2485ae More debug logging 2014-06-02 22:07:14 -07:00
Alter Step b1e4f1a064 Update uninstaller 2014-06-02 22:07:02 -07:00
Alter Step cf513f4745 Upgrade libsodium, downgrade libldns 2014-06-02 21:44:05 -07:00
Alter Step 12eff619cc Improve preinstall scripts 2014-06-02 21:40:59 -07:00
Alter Step 065c93519e Use killall instead of pkill to support old OS versions 2014-06-02 21:39:30 -07:00
Alter Step da8a4c2b55 Silence stdout in set-dns-to-dhcp.sh 2014-06-02 21:32:04 -07:00
Alter Step 18310fd607 Uninstaller: remove the debug log file and kill 'DNSCrypt Menubar' 2014-06-02 21:03:36 -07:00
Alter Step 128ee7809f OSX 10.8 seems to work, too! 2014-04-28 19:31:15 -07:00
Alter Step 76462a39b3 Add a link to the new version 2014-04-28 19:30:31 -07:00
Alter Step 1e5cc145e3 Version 1.0.1 2014-04-28 19:27:20 -07:00
Alter Step e5d8a9f579 Do not use local variables 2014-04-28 18:59:30 -07:00
Alter Step 89e8c923fa lockfile -l acts weird - Do not use it. Add some logging for the HTTP hijack test 2014-04-28 18:53:28 -07:00
Alter Step fb416bf21e Wait 1 sec after dnscrypt-proxy is started before sending the first DNS query 2014-04-28 18:42:40 -07:00
Alter Step 20b40f8cd9 Use google-public-dns-a.google.com for testing connectivity
OpenDNS authoritative servers seem to be slower.
2014-04-28 17:44:03 -07:00
Alter Step 917aa0034b Debug logs 2014-04-28 17:42:36 -07:00
Alter Step c4c2aa4a9f Add a logger_debug function 2014-04-28 16:35:50 -07:00
Alter Step 2896256872 Introduce DNSCRYPT_LOG_BASE_DIR for optional, local logs 2014-04-28 15:59:04 -07:00
Alter Step e226cba2f4 Sudo? Why do we need sudo? 2014-04-23 12:26:57 -07:00
Alter Step a430afe4c9 Add list of servers 2014-04-22 19:24:28 -07:00
Alter Step 16039bf898 Package download link! 2014-04-21 23:07:53 -07:00
56 changed files with 891 additions and 156 deletions
@@ -159,7 +159,7 @@
09A13AC4145F3B9000B227A4 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0460;
LastUpgradeCheck = 0510;
};
buildConfigurationList = 09A13AC7145F3B9000B227A4 /* Build configuration list for PBXProject "DNSCrypt-Menubar" */;
compatibilityVersion = "Xcode 3.2";
@@ -235,7 +235,10 @@
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
CLANG_ENABLE_OBJC_ARC = NO;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
@@ -252,7 +255,9 @@
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.6;
ONLY_ACTIVE_ARCH = YES;
@@ -266,7 +271,10 @@
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
CLANG_ENABLE_OBJC_ARC = NO;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
@@ -277,7 +285,9 @@
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.6;
SDKROOT = macosx;
@@ -287,6 +297,8 @@
09A13AEC145F3B9000B227A4 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
CLANG_ENABLE_OBJC_ARC = YES;
COMBINE_HIDPI_IMAGES = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -296,6 +308,7 @@
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "DNSCrypt-Menubar/DNSCrypt-Menubar-Prefix.pch";
INFOPLIST_FILE = "DNSCrypt-Menubar/DNSCrypt-Menubar-Info.plist";
MACOSX_DEPLOYMENT_TARGET = 10.8;
PRODUCT_NAME = "DNSCrypt Menubar";
WRAPPER_EXTENSION = app;
};
@@ -304,6 +317,8 @@
09A13AED145F3B9000B227A4 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
CLANG_ENABLE_OBJC_ARC = YES;
COMBINE_HIDPI_IMAGES = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -313,6 +328,7 @@
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "DNSCrypt-Menubar/DNSCrypt-Menubar-Prefix.pch";
INFOPLIST_FILE = "DNSCrypt-Menubar/DNSCrypt-Menubar-Info.plist";
MACOSX_DEPLOYMENT_TARGET = 10.8;
PRODUCT_NAME = "DNSCrypt Menubar";
WRAPPER_EXTENSION = app;
};
@@ -8,7 +8,7 @@
#define kDNSCRYPT_CONTROL_DIR kDNSCRYPT_VAR_BASE_DIR @"/control"
@interface AppDelegate : NSObject <NSApplicationDelegate> {
NSWindow *_window;
NSWindow *__weak _window;
NSMenu *_dnscryptMenu;
NSStatusItem *_statusItem;
NSMenuItem *_versionMenuItem;
@@ -25,7 +25,7 @@ typedef enum {
} DNSConfigurationState;
@property (strong) NSStatusItem *statusItem;
@property (assign) NSWindow *window;
@property (weak) NSWindow *window;
@property (strong) IBOutlet NSMenu *dnscryptMenu;
@property (strong) IBOutlet NSMenuItem *versionMenuItem;
@@ -10,6 +10,7 @@
@synthesize versionMenuItem = _versionMenuItem;
DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
BOOL appUpdated = FALSE;
- (void) setCheckBoxesEnabled: (BOOL) enabled
{
@@ -28,8 +29,7 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
[task launch];
data = [[pipe fileHandleForReading] readDataToEndOfFile];
[task waitUntilExit];
[task release];
result = [[[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding] autorelease];
result = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
if ([result hasSuffix: @"\n"]) {
result = [result substringToIndex: result.length - 1];
}
@@ -79,6 +79,7 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
default:
led = [NSImage imageNamed: @"icon-no-network"];
}
[led setTemplate:YES];
_statusItem.image = led;
}
@@ -87,6 +88,10 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
NSString *stateDescription = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && ./get-current-resolvers.sh | ./get-resolvers-description.sh", nil]];
if ([stateDescription isEqualToString: @"DNSCrypt"]) {
currentState = kDNS_CONFIGURATION_LOCALHOST;
if (appUpdated == FALSE) {
appUpdated = TRUE;
[self appUpdate];
}
} else if ([stateDescription isEqualToString: @"None"]) {
currentState = kDNS_CONFIGURATION_UNKNOWN;
} else if ([stateDescription isEqualToString: @"Updating"]) {
@@ -146,7 +151,6 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
- (void) awakeFromNib
{
_statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];
[_statusItem retain];
_statusItem.highlightMode = TRUE;
_statusItem.toolTip = @"DNSCrypt";
_statusItem.menu = _dnscryptMenu;
@@ -191,6 +195,12 @@ DNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;
return TRUE;
}
- (BOOL) appUpdate {
NSString *res = [self fromCommand: @"/bin/csh" withArguments: [NSArray arrayWithObjects: @"-c", @"cd '" kDNSCRIPT_SCRIPTS_BASE_DIR @"' && exec ./update-dnscrypt-app.sh", nil]];
(void) res;
return TRUE;
}
- (IBAction)dnscryptMenuItemPushed:(NSMenuItem *)sender
{
@@ -17,11 +17,11 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<string>1.0.8</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0.0</string>
<string>1.0.8</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.utilities</string>
<key>LSMinimumSystemVersion</key>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 416 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 762 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 243 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 455 B

@@ -0,0 +1,267 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="34"
height="34"
id="svg2"
version="1.1"
inkscape:version="0.48.2 r9819"
sodipodi:docname="icon-dnscrypt.inkscape.svg"
inkscape:export-filename="/Users/avh4/workspace/dnscrypt-osxclient/DNSCrypt-Menubar/DNSCrypt-Menubar/icon-dnscrypt-active.png"
inkscape:export-xdpi="45"
inkscape:export-ydpi="45"
style="enable-background:new">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="10.351258"
inkscape:cx="17.323754"
inkscape:cy="16.37179"
inkscape:document-units="px"
inkscape:current-layer="g4162"
showgrid="false"
inkscape:window-width="1191"
inkscape:window-height="822"
inkscape:window-x="9"
inkscape:window-y="0"
inkscape:window-maximized="0"
showguides="true"
inkscape:guide-bbox="true"
inkscape:snap-object-midpoints="true">
<sodipodi:guide
orientation="1,0"
position="-3.8642648,37.386762"
id="guide4115" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="Reference no network"
style="display:none"
sodipodi:insensitive="true"
transform="translate(0,-2)">
<image
style="display:inline"
y="0"
x="0"
id="image4031"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAABHNCSVQICAgIfAhkiAAAANtJREFU OI2d1DFKBDEYxfFfZo2QERSbRVjZo3gKK1sPIHoEGyvBWgStPIAH8DCiN9h+bLIyO86MiQ8CX76Q //fyioSU2n3c4RxrdfrCC24XMcZ7XOOoEgKHOENscJGbb1giFK5lvgOXIaW2y5vTbLVGK3xCHxQq IVt10MwcdhX9SdDOtJG6GNR/5tDFaARzjsYuTOb419OKNQeaCrsKNMxkmFmVoy1krP6lvQJASX/H 0Wpu4oR+fosGm1w/q/tG1njK9Sak1D7g6h9u+npcxBjfcYATHFcCPvCKm291ZyCHBno2ewAAAABJ RU5ErkJggg== "
height="36"
width="36" />
</g>
<g
inkscape:groupmode="layer"
id="layer5"
inkscape:label="Reference failed"
sodipodi:insensitive="true"
style="display:none"
transform="translate(0,-2)">
<image
y="0"
x="0"
id="image4099"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAABHNCSVQICAgIfAhkiAAAARZJREFU OI2V1DFKA0EYBeBvEzewURQRg6DEJp138BRWth5AvICFCIKgWFkpeAZbwUoQrGysFEVR7FIFrCQW DsmyTHazP/zwZub9jzeP2U2yrN3CEbbQVa++cIWDZpqmJ9jDQk0RmMcm0ga2w+Y1Okim7E6YgZ0k y9rDsFgLVuvUKj6hkduMiRziO/Rx5Hw0k3eURIjP6AXcx1KEMyw6itVjDt+VEauEHibg2kL3OXxT RqzKqInXgNcnaAxhpsLRLy4xqOBVOoLlINgvc1SVURfveMJcGbFKqOU/p1boiZXPqIuPwvkLNvAj frXR36JhHOSF8SsuisU+n16YgUGSZe0z7JbZnqJOm2ma3mIWK1isKfCGc+z/AeH3MRrXRYDWAAAA AElFTkSuQmCC "
height="36"
width="36" />
</g>
<g
inkscape:label="Reference active"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1018.3622)"
style="display:none"
sodipodi:insensitive="true">
<image
y="1016.3622"
x="0"
id="image3079"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAABHNCSVQICAgIfAhkiAAAAXxJREFU OI2Vk79LXEEUhb/duCv3jD8QG0MKERTBzsbSTnB7BUkVEIRUqVUwELYIFmIlCApWVoKVWCn+B4K1 aCNsICBavAkKMin2PXwOszF74RYz3PvNuYc7FTPVgQ3gC/CJ7uIWOAS+f6jVak1gDRjoEgIwBMwC L1VgOVHwCPwApr3PKsAw0AB+An8S9V8rZgrR5Tmw5H32OyVBcuPADjBXfriagDQ6QQC8z65zdYfl +7Kie2DC++y+EyRSVgcugalY0VYZIjmT3K7kWpK7k9x23lwoe6btIwA9JdBJ9OgmsFI6f6Nt9Gqq pzxab/5KoagFjETwX95nH1Ojxma/G5Ibl9yF5J4kdya5sRg0GfUcJDj7wB7tfeoHjoFdAMwU8lwP IVCkmepmaprpJs9mfvcU1fgQwhtQy0x9ZVgqzRRS53izj7zPFjt4Mwg8dPIuNntBcqeFgd1EFYi/ wzxwJbkNyc38L6hipiaw/k7dIzDKP0br4XXNPwNdj1TEX4ehms1FM7oVAAAAAElFTkSuQmCC "
height="36"
width="36" />
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Scratch - Target"
style="display:none"
transform="translate(0,-2)"
sodipodi:insensitive="true">
<path
style="fill:#1a1a1a;fill-opacity:1;stroke:none;display:inline"
d="M 5.6666667,2 C 2.5273333,2 0,4.5273333 0,7.6666667 L 0,30.333333 C 0,33.472667 2.5273333,36 5.6666667,36 L 28.333333,36 C 31.472667,36 34,33.472667 34,30.333333 L 34,7.6666667 C 34,4.5273333 31.472667,2 28.333333,2 L 5.6666667,2 z M 17.029514,5.8958333 c 7.409335,0 13.428819,5.9899707 13.428819,13.3993057 0,7.409335 -6.019484,13.428819 -13.428819,13.428819 -7.4093349,0 -13.3993057,-6.019484 -13.3993057,-13.428819 0,-7.409335 5.9899708,-13.3993057 13.3993057,-13.3993057 z"
id="rect3854"
inkscape:connector-curvature="0" />
<path
sodipodi:type="arc"
style="fill:#1a1a1a;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline"
id="path3082"
sodipodi:cx="18.035715"
sodipodi:cy="18.321428"
sodipodi:rx="5.7142859"
sodipodi:ry="5.7142859"
d="m 23.750001,18.321428 a 5.7142859,5.7142859 0 1 1 -11.428572,0 5.7142859,5.7142859 0 1 1 11.428572,0 z"
transform="matrix(1.0329861,0,0,1.0329861,-1.5969123,0.37782222)" />
</g>
<g
style="display:none"
inkscape:label="Scratch - Large Lock"
id="g4144"
inkscape:groupmode="layer"
transform="translate(0,-2)"
sodipodi:insensitive="true">
<rect
y="17.409853"
x="7.7394609"
height="13.229342"
width="18.521078"
id="rect4146"
style="fill:#1a1a1a;fill-opacity:1;stroke:none" />
<path
inkscape:label="#path3884"
sodipodi:nodetypes="csscc"
inkscape:connector-curvature="0"
id="path4148"
d="m 11.487773,20.507275 0,-6.153827 c 0,-3.044319 2.467909,-5.5122266 5.512226,-5.5122266 3.044319,0 5.512668,2.4679076 5.512668,5.5122266 l 0,5.748148"
style="fill:none;stroke:#1a1a1a;stroke-width:2.96083331;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
<g
style="display:none"
inkscape:label="No Network"
id="g4162"
inkscape:groupmode="layer"
transform="translate(0,-2)"
sodipodi:insensitive="true">
<path
inkscape:connector-curvature="0"
id="path4164"
d="M 5.6666667,2 C 2.5273333,2 0,4.5273333 0,7.6666667 L 0,30.333333 C 0,33.472667 2.5273333,36 5.6666667,36 L 28.333333,36 C 31.472667,36 34,33.472667 34,30.333333 L 34,7.6666667 C 34,4.5273333 31.472667,2 28.333333,2 L 5.6666667,2 z M 17.029514,5.8958333 c 7.409335,0 13.428819,5.9899707 13.428819,13.3993057 0,7.409335 -6.019484,13.428819 -13.428819,13.428819 -7.4093349,0 -13.3993057,-6.019484 -13.3993057,-13.428819 0,-7.409335 5.9899708,-13.3993057 13.3993057,-13.3993057 z"
style="fill:#808080;fill-opacity:1;stroke:none;display:inline"
inkscape:export-filename="/Users/avh4/workspace/dnscrypt-osxclient/DNSCrypt-Menubar/DNSCrypt-Menubar/icon-no-network@2x.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<path
transform="matrix(1.0329861,0,0,1.0329861,-1.5969123,0.37782222)"
d="m 23.750001,18.321428 a 5.7142859,5.7142859 0 1 1 -11.428572,0 5.7142859,5.7142859 0 1 1 11.428572,0 z"
sodipodi:ry="5.7142859"
sodipodi:rx="5.7142859"
sodipodi:cy="18.321428"
sodipodi:cx="18.035715"
id="path4166"
style="fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline"
sodipodi:type="arc"
inkscape:export-filename="/Users/avh4/workspace/dnscrypt-osxclient/DNSCrypt-Menubar/DNSCrypt-Menubar/icon-no-network@2x.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
</g>
<g
inkscape:groupmode="layer"
id="layer7"
inkscape:label="Inactive"
style="display:none"
transform="translate(0,-2)"
sodipodi:insensitive="true">
<g
style="font-size:30.8449707px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#d40000;fill-opacity:1;stroke:none;font-family:Georgia;-inkscape-font-specification:Georgia Bold"
id="text4108"
transform="matrix(0.94444444,0,0,0.94444444,0.03393364,2)"
inkscape:export-filename="/Users/avh4/workspace/dnscrypt-osxclient/DNSCrypt-Menubar/DNSCrypt-Menubar/g4124.png"
inkscape:export-xdpi="45"
inkscape:export-ydpi="45">
<path
d="m 18.843,21.718332 -1.76,0 c -0.27253,-1.907467 -2.121054,-7.471109 -2.049557,-10.033756 0.06071,-2.175835 0.826587,-4.8119882 2.921838,-4.80135 2.15386,0.010936 3.012254,2.384064 2.936899,4.80135 -0.07535,2.417286 -1.739851,8.209756 -2.04918,10.033756 z"
style="fill:#d40000;fill-opacity:1"
id="path4113"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccsszc" />
</g>
<g
id="g4124"
style="font-size:30.8449707px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#d40000;fill-opacity:1;stroke:none;font-family:Georgia;-inkscape-font-specification:Georgia Bold"
transform="matrix(0.85003413,0,0,0.85003413,1.7309954,4.4841187)"
inkscape:export-xdpi="45"
inkscape:export-ydpi="45">
<path
sodipodi:nodetypes="ccscscccc"
inkscape:connector-curvature="0"
id="path4126"
style="fill:#d40000;fill-opacity:1"
d="m 20.86206,26.327004 c -9e-6,0.763093 -0.291188,1.420757 -0.873539,1.972994 -0.572326,0.542196 -1.245051,0.813294 -2.018177,0.813295 -0.783178,-10e-7 -1.465944,-0.271099 -2.048299,-0.813295 -0.572322,-0.552237 -0.858481,-1.209901 -0.858478,-1.972994 -3e-6,-0.763089 0.286156,-1.420753 0.858478,-1.972994 0.582355,-0.562273 1.265121,-0.843412 2.048299,-0.843417 0.773126,5e-6 1.445851,0.281144 2.018177,0.843417 0.582351,0.552241 0.87353,1.209905 0.873539,1.972994" />
</g>
<rect
style="fill:none;stroke:#808080;stroke-width:3.77777767;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4105"
width="30.222221"
height="30.222221"
x="1.8888888"
y="3.8888888"
rx="3.7311382"
ry="3.7311382"
inkscape:export-filename="/Users/avh4/workspace/dnscrypt-osxclient/DNSCrypt-Menubar/DNSCrypt-Menubar/icon-dnscrypt-inactive.png"
inkscape:export-xdpi="45"
inkscape:export-ydpi="45" />
</g>
<g
style="display:inline"
inkscape:label="Active"
id="g3056"
inkscape:groupmode="layer"
transform="translate(0,-2)"
sodipodi:insensitive="true">
<path
style="fill:#1a1a1a;fill-opacity:1;stroke:none;display:inline"
d="M 5.6666667,2 C 2.5273333,2 0,4.5273333 0,7.6666667 L 0,30.333333 C 0,33.472667 2.5273333,36 5.6666667,36 l 13.2222223,0 0,-3.423611 c -0.611523,0.08547 -1.224534,0.147569 -1.859375,0.147569 -7.4093349,0 -13.3993057,-6.019484 -13.3993057,-13.428819 0,-7.409335 5.9899708,-13.3993057 13.3993057,-13.3993057 6.846362,0 12.519739,5.1238497 13.340278,11.7465277 1.779019,0.868614 3.125286,2.504502 3.630208,4.456597 L 34,7.6666667 C 34,4.5273333 31.472667,2 28.333333,2 L 5.6666667,2 z"
id="path3058"
inkscape:connector-curvature="0" />
<path
transform="matrix(1.0329861,0,0,1.0329861,-1.5969123,0.37782222)"
d="m 23.750001,18.321428 a 5.7142859,5.7142859 0 1 1 -11.428572,0 5.7142859,5.7142859 0 1 1 11.428572,0 z"
sodipodi:ry="5.7142859"
sodipodi:rx="5.7142859"
sodipodi:cy="18.321428"
sodipodi:cx="18.035715"
id="path3060"
style="fill:#1a1a1a;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline"
sodipodi:type="arc" />
<rect
style="fill:#1a1a1a;fill-opacity:1;stroke:none;display:inline"
id="rect3863"
width="13.222222"
height="9.4444447"
x="20.777779"
y="26.555555" />
<path
style="fill:none;stroke:#1a1a1a;stroke-width:1.57407403;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 23.453703,28.115447 0,-4.393225 c 0,-2.173342 1.761844,-3.935185 3.935186,-3.935185 2.173343,0 3.9355,1.761843 3.9355,3.935185 l 0,4.103611"
id="locktop"
inkscape:connector-curvature="0"
sodipodi:nodetypes="csscc"
inkscape:label="#path3884" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 355 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 663 B

-7
View File
@@ -1,10 +1,3 @@
//
// main.m
// DNSCrypt-Menubar
//
// Created by OpenDNS, Inc. on 10/31/11.
// Copyright (c) 2011 OpenDNS, Inc. All rights reserved.
//
#import <Cocoa/Cocoa.h>
@@ -447,6 +447,38 @@
<dict>
<key>CHILDREN</key>
<array>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>/usr/local/lib/dnscrypt-proxy/libdcplugin_example.la</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>3</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>/usr/local/lib/dnscrypt-proxy/libdcplugin_example.so</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>3</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array/>
@@ -543,6 +575,38 @@
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>/usr/local/lib/dnscrypt-proxy/libdcplugin_example_ldns_opendns_set_client_ip.la</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>3</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>/usr/local/lib/dnscrypt-proxy/libdcplugin_example_ldns_opendns_set_client_ip.so</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>3</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array/>
@@ -829,7 +893,7 @@
<key>USE_HFS+_COMPRESSION</key>
<true/>
<key>VERSION</key>
<string>1.4.0</string>
<string>1.5.0.3</string>
</dict>
<key>UUID</key>
<string>7F7D70AB-F7A2-4027-8304-3063C7B9532F</string>
@@ -1314,73 +1378,6 @@
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array>
<dict>
<key>CHILDREN</key>
<array>
<dict>
<key>CHILDREN</key>
<array>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>/usr/local/bin/alarmer</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>3</integer>
<key>UID</key>
<integer>0</integer>
</dict>
</array>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>bin</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>2</integer>
<key>UID</key>
<integer>0</integer>
</dict>
</array>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>local</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>2</integer>
<key>UID</key>
<integer>0</integer>
</dict>
</array>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>usr</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>2</integer>
<key>UID</key>
<integer>0</integer>
</dict>
</array>
<key>GID</key>
<integer>0</integer>
@@ -1436,7 +1433,7 @@
<key>USE_HFS+_COMPRESSION</key>
<true/>
<key>VERSION</key>
<string>1.0.0</string>
<string>1.0.8</string>
</dict>
<key>TYPE</key>
<integer>0</integer>
@@ -1929,7 +1926,7 @@
<key>USE_HFS+_COMPRESSION</key>
<true/>
<key>VERSION</key>
<string>1.0.0</string>
<string>1.0.8</string>
</dict>
<key>TYPE</key>
<integer>0</integer>
@@ -2238,7 +2235,7 @@
<key>ADVANCED_OPTIONS</key>
<dict/>
<key>BUILD_FORMAT</key>
<integer>1</integer>
<integer>0</integer>
<key>BUILD_PATH</key>
<dict>
<key>PATH</key>
@@ -2,14 +2,24 @@
exec 2>/dev/null
/bin/launchctl stop com.opendns.osx.RoamingClientMenubar
/bin/launchctl remove com.opendns.osx.RoamingClientMenubar
/bin/launchctl remove com.opendns.osx.RoamingClientConfigUpdater
/bin/rm -f /Library/LaunchDaemons/com.opendns.osx.Roaming*.plist
/bin/launchctl remove com.opendns.osx.DNSCryptMenuBar
/bin/rm -f /Library/LaunchDaemons/com.opendns.osx.DNSCryptMenuBar.plist
/bin/launchctl stop com.opendns.osx.RoamingClientConfigUpdater
/bin/launchctl remove com.opendns.osx.RoamingClientConfigUpdater
/bin/rm -f /Library/LaunchDaemons/com.opendns.osx.Roaming*.plist
/bin/launchctl stop com.opendns.osx.DNSCryptMenuBar
/bin/launchctl remove com.opendns.osx.DNSCryptMenuBar
/bin/launchctl stop com.github.dnscrypt-osxclient.DNSCryptMenuBar
/bin/launchctl remove com.github.dnscrypt-osxclient.DNSCryptMenuBar
killall 'DNSCrypt-Menubar'
killall 'DNSCrypt Menubar'
/bin/rm -f /Library/LaunchDaemons/com.opendns.osx.DNSCryptMenuBar.plist
/bin/rm -f /Library/LaunchDaemons/com.github.dnscrypt-osxclient.DNSCryptMenuBar.plist
exit 0
@@ -2,29 +2,46 @@
exec 2>/dev/null
if [ -x /usr/bin/pkill ]; then
/usr/bin/pkill -f '/Applications/System Preferences.app'
fi
killall 'System Preferences'
/bin/rm -rf '/Library/Application Support/DNSCrypt Updater'
/bin/launchctl stop com.opendns.osx.DNSCryptConfigUpdater
/bin/launchctl remove com.opendns.osx.DNSCryptConfigUpdater
/bin/rm -f '/Library/LaunchDaemons/com.opendns.osx.DNSCryptConfigUpdater.plist'
/bin/launchctl remove com.opendns.osx.DNSCryptAfterboot
/bin/launchctl remove com.opendns.osx.DNSCryptConsoleChange
/bin/launchctl remove com.opendns.osx.DNSCryptControlChange
/bin/launchctl remove com.opendns.osx.DNSCryptNetworkChange
/bin/rm -f /Library/LaunchDaemons/com.opendns.osx.DNSCrypt*.plist
/bin/launchctl stop com.github.dnscrypt-osxclient.DNSCryptConfigUpdater
/bin/launchctl remove com.github.dnscrypt-osxclient.DNSCryptConfigUpdater
/bin/rm -f '/Library/LaunchDaemons/com.github.dnscrypt-osxclient.DNSCryptConfigUpdater.plist'
/bin/launchctl stop com.opendns.osx.DNSCryptAfterboot
/bin/launchctl remove com.opendns.osx.DNSCryptAfterboot
/bin/launchctl stop com.opendns.osx.DNSCryptConsoleChange
/bin/launchctl remove com.opendns.osx.DNSCryptConsoleChange
/bin/launchctl stop com.opendns.osx.DNSCryptControlChange
/bin/launchctl remove com.opendns.osx.DNSCryptControlChange
/bin/launchctl stop com.opendns.osx.DNSCryptNetworkChange
/bin/launchctl remove com.opendns.osx.DNSCryptNetworkChange
/bin/rm -f /Library/LaunchDaemons/com.opendns.osx.DNSCryptAfterboot.plist
/bin/rm -f /Library/LaunchDaemons/com.opendns.osx.DNSCryptConsoleChange.plist
/bin/rm -f /Library/LaunchDaemons/com.opendns.osx.DNSCryptControlChange.plist
/bin/rm -f /Library/LaunchDaemons/com.opendns.osx.DNSCryptNetworkChange.plist
/bin/launchctl stop com.github.dnscrypt-osxclient.DNSCryptAfterboot
/bin/launchctl remove com.github.dnscrypt-osxclient.DNSCryptAfterboot
/bin/launchctl stop com.github.dnscrypt-osxclient.DNSCryptConsoleChange
/bin/launchctl remove com.github.dnscrypt-osxclient.DNSCryptConsoleChange
/bin/launchctl stop com.github.dnscrypt-osxclient.DNSCryptControlChange
/bin/launchctl remove com.github.dnscrypt-osxclient.DNSCryptControlChange
/bin/launchctl stop com.github.dnscrypt-osxclient.DNSCryptNetworkChange
/bin/launchctl remove com.github.dnscrypt-osxclient.DNSCryptNetworkChange
/bin/rm -f /Library/LaunchDaemons/com.github.dnscrypt-osxclient.DNSCryptAfterboot.plist
/bin/rm -f /Library/LaunchDaemons/com.github.dnscrypt-osxclient.DNSCryptConsoleChange.plist
/bin/rm -f /Library/LaunchDaemons/com.github.dnscrypt-osxclient.DNSCryptControlChange.plist
/bin/rm -f /Library/LaunchDaemons/com.github.dnscrypt-osxclient.DNSCryptNetworkChange.plist
/bin/rm -f /var/run/dnscrypt*.lock
exit 0
+12 -19
View File
@@ -1,31 +1,24 @@
#! /bin/sh
VERSION='1.0.0'
VERSION='1.0.8'
cd build || exit 1
[ -d DNSCrypt.mpkg ] || exit 1
[ -e DNSCrypt.pkg ] || exit 1
(
cd DNSCrypt.mpkg/Contents/Packages || exit 1
rm -fr DNSCrypt-OSX.pkg DNSCrypt-unsigned.pkg
for pkg in *pkg ; do
rm -fr "x-${pkg}"
mv "$pkg" "x-${pkg}"
productsign --sign 'Developer ID Installer' "x-${pkg}" "$pkg"
rm -fr "x-${pkg}"
done
)
rm -fr DNSCrypt-OSX.mpkg DNSCrypt-unsigned.mpkg
productsign --sign 'Developer ID Application' DNSCrypt.mpkg DNSCrypt-OSX.mpkg
mv DNSCrypt.mpkg DNSCrypt-unsigned.mpkg
mv DNSCrypt-OSX.mpkg DNSCrypt.mpkg
zip -9 -r "dnscrypt-osxclient-${VERSION}.zip" DNSCrypt.mpkg
productsign --sign 'Developer ID Installer' DNSCrypt.pkg DNSCrypt-OSX.pkg
mv DNSCrypt.pkg DNSCrypt-unsigned.pkg
mv DNSCrypt-OSX.pkg DNSCrypt.pkg
zip -9 -r "dnscrypt-osxclient-${VERSION}.zip" DNSCrypt.pkg
rm -fr dnscrypt-pkg
rm -f "dnscrypt-osxclient-${VERSION}.dmg"
mkdir dnscrypt-pkg
mv DNSCrypt.mpkg dnscrypt-pkg
mv DNSCrypt.pkg dnscrypt-pkg
hdiutil create "dnscrypt-osxclient-${VERSION}.dmg" -srcfolder dnscrypt-pkg
mv dnscrypt-pkg/DNSCrypt.mpkg .
mv dnscrypt-pkg/DNSCrypt.pkg .
rm -fr dnscrypt-pkg
rm -fr DNSCrypt-unsigned.mpkg
rm -fr DNSCrypt-unsigned.pkg
+1 -1
View File
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2011-2014 OpenDNS, Inc.
* Copyright (c) 2014 AlterStep
* Copyright (c) 2014-2015 AlterStep
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -204,7 +204,7 @@
0946B0B713F47F52008277C6 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0510;
LastUpgradeCheck = 0610;
};
buildConfigurationList = 0946B0BA13F47F52008277C6 /* Build configuration list for PBXProject "DNSCrypt" */;
compatibilityVersion = "Xcode 3.2";
@@ -347,7 +347,7 @@
"$(inherited)",
"\"$(SRCROOT)\"",
);
GCC_ENABLE_OBJC_GC = no;
GCC_ENABLE_OBJC_GC = unsupported;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "DNSCrypt/DNSCrypt-Prefix.pch";
GCC_VERSION = "";
@@ -368,7 +368,7 @@
"$(inherited)",
"\"$(SRCROOT)\"",
);
GCC_ENABLE_OBJC_GC = no;
GCC_ENABLE_OBJC_GC = unsupported;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "DNSCrypt/DNSCrypt-Prefix.pch";
GCC_VERSION = "";
@@ -17,11 +17,11 @@
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<string>1.0.8</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0.0</string>
<string>1.0.8</string>
<key>NSHumanReadableCopyright</key>
<string>BSD</string>
<key>NSMainNibFile</key>
+1 -1
View File
@@ -3,7 +3,7 @@
#import <WebKit/WebKit.h>
#import "CHCSVParser/CHCSVParser.h"
#define kDNSCRYPT_PACKAGE_VERSION @"1.0.0"
#define kDNSCRYPT_PACKAGE_VERSION @"1.0.8"
#define kDNSCRYPT_PREFPANE_APP_PATH @"/Library/PreferencePanes/DNSCrypt.prefPane"
#define kDNSCRYPT_USR_BASE_DIR kDNSCRYPT_PREFPANE_APP_PATH @"/Contents/Resources/usr"
@@ -36,3 +36,13 @@
still be useful against passive attackers and in order to bypass
DNS censorship. Don't enable it unless you are frequently
roaming and you don't want to manually disable/enable DNSCrypt.
%li
Using Little Snitch? There are 4 rules you need to establish,
which Little Snitch should prompt for when trying to
activate this application:
%ol
%li Allow any outgoing connection for system processes (dnscrypt-proxy)
%li Allow any incoming connection for system process (dnscrypt-proxy)
%li Allow any outgoing connection for system processes (dig)
%li Allow outgoing TCP connections on port 80( http) of www.apple.com for system process (curl)
(Thanks to @cavemandaveman)
@@ -42,6 +42,18 @@
DNS censorship. Don't enable it unless you are frequently
roaming and you don't want to manually disable/enable DNSCrypt.
</li>
<li>
Using Little Snitch? There are 4 rules you need to establish,
which Little Snitch should prompt for when trying to
activate this application:
<ol>
<li>Allow any outgoing connection for system processes (dnscrypt-proxy)</li>
<li>Allow any incoming connection for system process (dnscrypt-proxy)</li>
<li>Allow any outgoing connection for system processes (dig)</li>
<li>Allow outgoing TCP connections on port 80( http) of www.apple.com for system process (curl)</li>
</ol>
(Thanks to @cavemandaveman)
</li>
</ul>
</p>
</body>
@@ -103,4 +103,3 @@
domains.
%p
Use actual apps, or even a command like ping(8).
@@ -22,7 +22,87 @@
%h1 Release Notes for DNSCrypt-OSXclient by AlterStep
%article
%h2 Version 1.0 by AlterStep
%h2 Version 1.0.8 by AlterStep
%time Tue, 12 Jul 2015
%p
New versions are automatically downloaded
%article
%h2 Version 1.0.7 by AlterStep
%time Tue, 1 Jul 2015
%p
Fixed a bug in the automatic updater for the resolvers list
%article
%h2 Version 1.0.6 by AlterStep
%time Tue, 10 Jun 2015
%p
Updated DNSCrypt proxy to version 1.5.0
%p
Updated libsodium to 1.0.3-minimal
%p
The list of available resolvers is automatically updated
%p
Improved privacy: ephemeral keys have been turned on
%p
Improved privacy: if no resolvers have been configured, a new one
is randomly chosen after each reboot
%article
%h2 Version 1.0.5 by AlterStep
%time Tue, 06 Jan 2015
%p
Updated DNSCrypt proxy to version 1.4.3
%p
Updated libsodium to 1.0.1-minimal
%article
%h2 Version 1.0.4 by AlterStep
%time Thu, 19 Sep 2014
%p
Updated DNSCrypt proxy to version 1.4.1
%p
Updated libsodium to 0.7.0-minimal
%article
%h2 Version 1.0.3 by AlterStep
%time Thu, 18 Jun 2014
%p
Runs on OSX 10.8 (Mountain Lion), 10.9 (Mavericks) and 10.10 (Yosemite)
%p
New set of icons, contributed by Aaron VonderHaar
%article
%h2 Version 1.0.2 by AlterStep
%time Thu, 05 Jun 2014
%p
Improved installation scripts
%p
LDNS has been downgraded in order to work on systems without
Homebrew.
%article
%h2 Version 1.0.1 by AlterStep
%time Mon, 28 Apr 2014
%p
Include the release version of dnscrypt-proxy 1.4, with a new
OpenNIC resolver.
%p
Wait after dnscrypt-proxy has been turned on before sending a
query. This actually makes state changes faster.
%p
Debug log, turned off by default and deleted after every
reboot. In order to enable it, create an empty file named
%code debug.enabled
in
%code /Library/Application Support/DNSCrypt/control
and the debug log file itself is
%code /var/log/dnscrypt-osxclient-debug.log
%p
Thanks a lot for your feedback on the first version!
%article
%h2 Version 1.0.0 by AlterStep
%time Thu, 21 Apr 2014
%p
This is my first release, based on the source code of the beta
@@ -26,7 +26,106 @@
<body>
<h1>Release Notes for DNSCrypt-OSXclient by AlterStep</h1>
<article>
<h2>Version 1.0 by AlterStep</h2>
<h2>Version 1.0.8 by AlterStep</h2>
<time>Tue, 12 Jul 2015</time>
<p>
New versions are automatically downloaded
</p>
</article>
<article>
<h2>Version 1.0.7 by AlterStep</h2>
<time>Tue, 1 Jul 2015</time>
<p>
Fixed a bug in the automatic updater for the resolvers list
</p>
</article>
<article>
<h2>Version 1.0.6 by AlterStep</h2>
<time>Tue, 10 Jun 2015</time>
<p>
Updated DNSCrypt proxy to version 1.5.0
</p>
<p>
Updated libsodium to 1.0.3-minimal
</p>
<p>
The list of available resolvers is automatically updated
</p>
<p>
Improved privacy: ephemeral keys have been turned on
</p>
<p>
Improved privacy: if no resolvers have been configured, a new one
is randomly chosen after each reboot
</p>
</article>
<article>
<h2>Version 1.0.5 by AlterStep</h2>
<time>Tue, 06 Jan 2015</time>
<p>
Updated DNSCrypt proxy to version 1.4.3
</p>
<p>
Updated libsodium to 1.0.1-minimal
</p>
</article>
<article>
<h2>Version 1.0.4 by AlterStep</h2>
<time>Thu, 19 Sep 2014</time>
<p>
Updated DNSCrypt proxy to version 1.4.1
</p>
<p>
Updated libsodium to 0.7.0-minimal
</p>
</article>
<article>
<h2>Version 1.0.3 by AlterStep</h2>
<time>Thu, 18 Jun 2014</time>
<p>
Runs on OSX 10.8 (Mountain Lion), 10.9 (Mavericks) and 10.10 (Yosemite)
</p>
<p>
New set of icons, contributed by Aaron VonderHaar
</p>
</article>
<article>
<h2>Version 1.0.2 by AlterStep</h2>
<time>Thu, 05 Jun 2014</time>
<p>
Improved installation scripts
</p>
<p>
LDNS has been downgraded in order to work on systems without
Homebrew.
</p>
</article>
<article>
<h2>Version 1.0.1 by AlterStep</h2>
<time>Mon, 28 Apr 2014</time>
<p>
Include the release version of dnscrypt-proxy 1.4, with a new
OpenNIC resolver.
</p>
<p>
Wait after dnscrypt-proxy has been turned on before sending a
query. This actually makes state changes faster.
</p>
<p>
Debug log, turned off by default and deleted after every
reboot. In order to enable it, create an empty file named
<code>debug.enabled</code>
in
<code>/Library/Application Support/DNSCrypt/control</code>
and the debug log file itself is
<code>/var/log/dnscrypt-osxclient-debug.log</code>
</p>
<p>
Thanks a lot for your feedback on the first version!
</p>
</article>
<article>
<h2>Version 1.0.0 by AlterStep</h2>
<time>Thu, 21 Apr 2014</time>
<p>
This is my first release, based on the source code of the beta
@@ -38,9 +38,9 @@
<key>name</key>
<string>ScriptWindowState</string>
<key>positionOfDivider</key>
<real>333</real>
<real>370</real>
<key>savedFrame</key>
<string>60 149 1053 597 0 0 1366 746 </string>
<string>85 77 1202 655 0 0 1366 746 </string>
<key>selectedTabView</key>
<string>result</string>
</dict>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 362 B

After

Width:  |  Height:  |  Size: 362 B

@@ -1 +0,0 @@
/usr/local/bin/alarmer
Binary file not shown.
Binary file not shown.
@@ -1 +0,0 @@
libsodium.4.dylib
@@ -3,6 +3,9 @@
. ./common.inc
rm -f "$QUERY_LOG_FILE"
rm -f "$DEBUG_LOG_FILE"
find -x "$RESOLVERS_LIST_STATE" -type f -mtime +1 -exec rm -f {} \; 2>/dev/null
find -x "$APP_UPDATES_STATE" -type f -mtime +1 -exec rm -f {} \; 2>/dev/null
./clear-fw.sh
@@ -3,12 +3,12 @@
. ./common.inc
try_resolution() {
exec alarmer 5 dig +tries=2 +time=3 +short resolver1.opendns.com \
| egrep '^208[.]67[.]' > /dev/null 2>&1
exec alarmer 5 dig +tries=2 +time=3 +short google-public-dns-a.google.com \
| egrep '^8[.]8[.]8[.]8' > /dev/null 2>&1
}
try_http_query() {
exec alarmer 5 curl -L --max-redirs 5 -4 -m 5 \
exec alarmer 5 curl -L --max-redirs 5 -4 -m 5 --connect-timeout 5 -s \
http://www.apple.com 2>/dev/null | \
fgrep -c Apple > /dev/null 2>&1
}
@@ -3,8 +3,8 @@
. ./common.inc
try_local_resolution() {
exec dig +tries=2 +time=3 +short resolver1.opendns.com @$INTERFACE_PROXY \
| egrep '^208[.]67[.]' > /dev/null 2>&1
exec dig +tries=2 +time=3 +short google-public-dns-a.google.com @$INTERFACE_PROXY \
| egrep '^8[.]8[.]8[.]8' > /dev/null 2>&1
}
try_local_resolution
@@ -1,27 +1,36 @@
CURRENT_VERSION=1
DNSCRYPT_USR_BASE_DIR='/Library/PreferencePanes/DNSCrypt.prefPane/Contents/Resources/usr'
DNSCRYPT_VAR_BASE_DIR='/Library/Application Support/DNSCrypt'
DNSCRYPT_LOG_BASE_DIR='/var/log'
DNSCRYPT_VAR_RUN_BASE_DIR='/var/run'
cd -- "${DNSCRYPT_USR_BASE_DIR}/scripts" || exit 1
CONTROL_DIR="${DNSCRYPT_VAR_BASE_DIR}/control"
TICKETS_DIR="${DNSCRYPT_VAR_BASE_DIR}/tickets"
DNSCRYPT_PROXY_BASE_DIR="${DNSCRYPT_VAR_BASE_DIR}/dnscrypt-proxy"
PROXY_PID_FILE="/var/run/dnscrypt-proxy.pid"
PROXY_PID_FILE="${DNSCRYPT_VAR_RUN_BASE_DIR}/dnscrypt-proxy.pid"
STATES_DIR="${DNSCRYPT_VAR_BASE_DIR}/states"
DNSCRYPT_RESOLVER_NAME_FILE="${CONTROL_DIR}/dnscrypt-resolver-name"
DNSCRYPT_FILE="${CONTROL_DIR}/dnscrypt"
FALLBACK_FILE="${CONTROL_DIR}/fallback"
HANDLERS_LOCK_FILE="/var/run/dnscrypt-handlers.lock"
HANDLERS_LOCK_FILE="${DNSCRYPT_VAR_RUN_BASE_DIR}/dnscrypt-handlers.lock"
DNSCRYPT_PROXY_PLUGINS_BASE_FILE="${CONTROL_DIR}/plugin"
STATIC_RESOLVERS_FILE="${CONTROL_DIR}/static-resolvers"
DEBUG_ENABLED_FILE="${CONTROL_DIR}/debug.enabled"
PLUGINS_ENABLED_FILE="${CONTROL_DIR}/plugins.enabled"
QUERY_LOGGING_FILE="${CONTROL_DIR}/plugin-query-logging.enabled"
BLOCKING_FILE="${CONTROL_DIR}/plugin-blocking.enabled"
QUERY_LOG_FILE="/var/log/dnscrypt-query.log"
QUERY_LOG_FILE="${DNSCRYPT_LOG_BASE_DIR}/dnscrypt-query.log"
DEBUG_LOG_FILE="${DNSCRYPT_LOG_BASE_DIR}/dnscrypt-osxclient-debug.log"
DEBUG_LOG_FILE_LOCK="${DEBUG_LOG_FILE}.lock"
BLACKLIST_IPS_FILE="${CONTROL_DIR}/blacklist-ips"
BLACKLIST_IPS_TMP_FILE="${BLACKLIST_IPS_FILE}.tmp"
BLACKLIST_DOMAINS_FILE="${CONTROL_DIR}/blacklist-domains"
@@ -29,7 +38,15 @@ BLACKLIST_DOMAINS_TMP_FILE="${BLACKLIST_DOMAINS_FILE}.tmp"
EXCEPTIONS_FILE="${CONTROL_DIR}/exceptions"
EXCEPTIONS_TMP_FILE="${EXCEPTIONS_FILE}.tmp"
DEFAULT_RESOLVER_NAME='opendns'
APP_UPDATES_BASE_URL="http://updates.dnscrypt.org/updates/dnscrypt-osx-client"
APP_UPDATES_DIR="${DNSCRYPT_VAR_BASE_DIR}/updates"
APP_UPDATES_PUBLIC_KEY="RWRvw8aArS/yEI3In0/zQSb9+qfWonLxjjEYG17cXt6zct6GLKtEvUfk"
APP_UPDATES_STATE="${APP_UPDATES_DIR}/app-updated"
RESOLVERS_UPDATES_BASE_URL="http://updates.dnscrypt.org/dnscrypt-proxy"
RESOLVERS_LIST_BASE_DIR="/usr/local/share/dnscrypt-proxy"
RESOLVERS_LIST_PUBLIC_KEY="RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3"
RESOLVERS_LIST_STATE="${STATES_DIR}/resolvers-updated"
INTERFACE_UNBOUND="127.0.0.53"
INTERFACE_UNBOUND_MASK="24"
@@ -39,7 +56,7 @@ INTERFACE_PROBES="127.0.0.55"
INTERFACE_PROBES_MASK="24"
DOMAINS_EXCEPTIONS='
freebox.fr fritz.box intranet lan localdomain nowtv.com private routerlogin.net l
belkin corp domain example home host invalid lan local localdomain test freebox.fr fritz.box nowtv.com routerlogin.net l
'
DISABLE_IPV6='no'
@@ -47,7 +64,14 @@ DISABLE_IPV6='no'
export PATH="${DNSCRYPT_USR_BASE_DIR}/bin:${DNSCRYPT_USR_BASE_DIR}/scripts:$PATH"
init_interfaces() {
sudo ifconfig lo0 alias ${INTERFACE_UNBOUND}/${INTERFACE_UNBOUND_MASK}
sudo ifconfig lo0 alias ${INTERFACE_PROXY}/${INTERFACE_PROXY_MASK}
sudo ifconfig lo0 alias ${INTERFACE_PROBES}/${INTERFACE_PROBES_MASK}
/sbin/ifconfig lo0 alias ${INTERFACE_UNBOUND}/${INTERFACE_UNBOUND_MASK}
/sbin/ifconfig lo0 alias ${INTERFACE_PROXY}/${INTERFACE_PROXY_MASK}
/sbin/ifconfig lo0 alias ${INTERFACE_PROBES}/${INTERFACE_PROBES_MASK}
}
logger_debug() {
[ -f "$DEBUG_ENABLED_FILE" ] || return
lockfile -1 -r 1 "$DEBUG_LOG_FILE_LOCK" > /dev/null 2>&1
echo "$(date) - $1" >> "$DEBUG_LOG_FILE"
rm -f "$DEBUG_LOG_FILE_LOCK" 2> /dev/null
}
@@ -4,5 +4,5 @@
[ -r "$DNSCRYPT_RESOLVER_NAME_FILE" ] && \
sed 's/[^a-zA-Z0-9.-]/_/g' < "$DNSCRYPT_RESOLVER_NAME_FILE" && exit 0
echo "$DEFAULT_RESOLVER_NAME"
exit 0
exec ./get-random-resolver.sh
@@ -0,0 +1,8 @@
#! /bin/sh
. ./common.inc
(read header; fgrep -v :: | cut -d, -f1 | egrep -v '^\s*$') \
< "${RESOLVERS_LIST_BASE_DIR}/dnscrypt-resolvers.csv" | \
perl -MList::Util=shuffle -e 'print shuffle(<STDIN>);' | \
head -n1
@@ -3,6 +3,9 @@
. ./common.inc
eval $(stat -s '/dev/console') || exit 1
logger_debug "OSX console ownership changed"
wanted_uid="$st_uid"
if [ ! -d "$DNSCRYPT_VAR_BASE_DIR" ]; then
mkdir -p "$DNSCRYPT_VAR_BASE_DIR" || exit 1
@@ -12,6 +15,9 @@ fi
mkdir -m 755 -p "$TICKETS_DIR" || exit 1
chown -R "${wanted_uid}:0" "$TICKETS_DIR"
mkdir -m 755 -p "$APP_UPDATES_DIR" || exit 1
chown -R "${wanted_uid}:0" "$APP_UPDATES_DIR"
eval $(stat -s "$CONTROL_DIR") || exit 1
if [ $? != 0 ]; then
mkdir -m 755 -p "$CONTROL_DIR" || exit 1
@@ -5,7 +5,7 @@
PROCESSED_TICKETS_FILE="${STATES_DIR}/processed-tickets"
update() {
lockfile -1 -r 30 -l 60 "$HANDLERS_LOCK_FILE" || exit 1
lockfile -1 -r 30 "$HANDLERS_LOCK_FILE" || exit 1
if [ -e "$DNSCRYPT_FILE" ]; then
./switch-to-dnscrypt-if-required.sh
@@ -19,6 +19,8 @@ update() {
touch "${STATES_DIR}/updating"
logger_debug "DNSCrypt-OSXClient configuration changed"
updated='no'
while :; do
find "$TICKETS_DIR" -type f -name 'ticket-*' > "$PROCESSED_TICKETS_FILE"
@@ -10,7 +10,10 @@ if [ x"$1" != 'x--boot' ]; then
./check-network-change.sh || exit 0
fi
lockfile -1 -r 30 -l 60 "$HANDLERS_LOCK_FILE" || exit 1
logger_debug "Network configuration changed"
lockfile -1 -r 30 "$HANDLERS_LOCK_FILE" || exit 1
./set-dns-to-dhcp.sh
if [ ! -e "$DNSCRYPT_FILE" ]; then
rm -f "$HANDLERS_LOCK_FILE"
@@ -4,6 +4,8 @@
servers='empty'
logger_debug "Changing the DNS configuration to use the default DNS resolvers"
if [ -r "$STATIC_RESOLVERS_FILE" ]; then
servers=''
while read server; do
@@ -12,12 +14,16 @@ if [ -r "$STATIC_RESOLVERS_FILE" ]; then
esac
done < "$STATIC_RESOLVERS_FILE"
[ -z "$servers" ] && servers='empty'
logger_debug "Static list of DNS resolvers: [$servers]"
fi
exec networksetup -listallnetworkservices 2>/dev/null | \
fgrep -v '*' | while read x ; do
networksetup -setdnsservers "$x" $servers
networksetup -setdnsservers "$x" $servers > /dev/null
done
logger_debug "Flushing the local DNS cache"
dscacheutil -flushcache 2> /dev/null
killall -HUP mDNSResponder 2> /dev/null
exit 0
@@ -5,10 +5,16 @@
servers="$*"
[ $# -lt 1 ] && exit 1
logger_debug "Setting DNS resolvers to [$servers]"
exec networksetup -listallnetworkservices 2>/dev/null | \
fgrep -v '*' | while read x ; do
networksetup -setdnsservers "$x" $servers
done
logger_debug "Flushing local DNS cache"
dscacheutil -flushcache 2> /dev/null
killall -HUP mDNSResponder 2> /dev/null
exit 0
@@ -32,6 +32,7 @@ try_resolver() {
local args="$*"
local pid_file="${PID_DIR}/${priority}.pid"
logger_debug "Running a test dnscrypt proxy for [$description]"
rm -f "${RES_DIR}/${priority}"
exec alarmer 3 dnscrypt-proxy --pid="$pid_file" \
--resolver-name="$RESOLVER_NAME" \
@@ -39,11 +40,13 @@ try_resolver() {
while read line; do
case "$line" in
*Proxying\ from\ *)
logger_debug "Proxy for [$description] is up"
answers=$(exec dig +time=1 +short +tries=2 -p $priority \
@"$INTERFACE_PROBES" www.apple.com. 2> /dev/null | \
egrep -ic '^[0-9.:]+$')
[ -r "$pid_file" ] && kill $(cat -- "$pid_file")
if [ $answers -gt 0 ]; then
logger_debug "Proxy for [$description] can be used"
echo "$args" > "${RES_DIR}/${priority}"
echo "$description" > "${DESCRIPTIONS_DIR}/${priority}"
fi
@@ -63,16 +66,24 @@ get_plugin_args() {
libdcplugin_*) plugin_args="${plugin_args} --plugin=${line}" ;;
esac
done
logger_debug "Plugins to be used: [$plugin_args]"
echo "$plugin_args"
}
}
logger_debug "dnscrypt-proxy should be (re)started, stopping previous instance if needed"
./stop-dnscrypt-proxy.sh
ipv6_supported="no"
if [ x"$DISABLE_IPV6" = "xno" ]; then
logger_debug "Testing IPv6 connectivity"
ping6 -c 1 2620:0:ccc::2 > /dev/null 2>&1
[ $? = 0 ] && ipv6_supported="yes"
if [ $? = 0 ]; then
ipv6_supported="yes"
logger_debug "IPv6 connectivity detected"
else
logger_debug "IPv6 connectivity is not available"
fi
fi
wait_pids=""
@@ -91,7 +102,10 @@ for pid in $wait_pids; do
[ x"$best_file" != "x" ] && break
done
[ x"$best_file" = "x" ] && exit 1
if [ x"$best_file" = "x" ]; then
logger_debug "No usable proxy configuration has been found"
exit 1
fi
plugins_args=''
if [ -r "${DNSCRYPT_PROXY_PLUGINS_BASE_FILE}s.enabled" ]; then
@@ -102,12 +116,14 @@ fi
best_args=$(cat "${RES_DIR}/${best_file}")
logger_debug "Starting dnscrypt-proxy $best_args"
eval dnscrypt-proxy $best_args --local-address="$INTERFACE_PROXY" \
--resolver-name="$RESOLVER_NAME" \
--resolver-name="$RESOLVER_NAME" --ephemeral-keys \
--pidfile="$PROXY_PID_FILE" --user=daemon --daemonize $plugin_args
if [ $? != 0 ]; then
[ -r "$PROXY_PID_FILE" ] && kill $(cat -- "$PROXY_PID_FILE")
logger_debug "dnscrypt-proxy $best_args command failed, retrying"
sleep 1
killall dnscrypt-proxy
sleep 1
@@ -118,8 +134,11 @@ if [ $? != 0 ]; then
--resolver-name="$RESOLVER_NAME" \
--pidfile="$PROXY_PID_FILE" --user=daemon --daemonize $plugin_args || \
exit 1
logger_debug "dnscrypt-proxy $best_args worked after a retry"
fi
sleep 1
logger_debug "Checking if the current configuration hijacks all DNS queries"
i=0
while [ $i -lt 30 ]; do
./check-local-dns.sh && break
@@ -128,8 +147,16 @@ while [ $i -lt 30 ]; do
done
if [ $i -ge 30 ]; then
logger_debug "Current configuration hijacks all DNS queries, disabling DNSCrypt"
./switch-to-dhcp.sh
exit 1
fi
logger_debug "Current configuration doesn't seem to hijack all DNS queries"
mv "${DESCRIPTIONS_DIR}/${best_file}" \
"${STATES_DIR}/dnscrypt-proxy-description" 2>/dev/null || exit 0
[ -e "$RESOLVERS_LIST_STATE" ] && exit 0
touch "$RESOLVERS_LIST_STATE"
exec ./update-resolvers-list.sh
@@ -2,12 +2,17 @@
. ./common.inc
logger_debug "Stopping dnscrypt-proxy"
if [ -x /usr/bin/pgrep ]; then
pgrep -x dnscrypt-proxy | egrep '[0-9]+' > /dev/null || exit 0
fi
[ ! -r "$PROXY_PID_FILE" ] && exit 0
pid=$(cat "$PROXY_PID_FILE")
[ $pid -lt 2 ] && exit 0
logger_debug "Trying to stop dnscrypt-proxy by killing pid [$pid]"
kill $pid
i=0
@@ -19,3 +24,5 @@ done
rm -f "$PROXY_PID_FILE"
kill -9 $pid
logger_debug "Killed dnscrypt-proxy with kill -9 pid [$pid]"
@@ -7,30 +7,42 @@ PAUSE_INCREMENT=0.1
[ ! -e "$DNSCRYPT_FILE" ] && exit 0
logger_debug "DNSCrypt has been requested"
./set-dns-to-dhcp.sh
pause=0
while [ -e "$DNSCRYPT_FILE" ]; do
logger_debug "Switching to dnscrypt if required (pause=$pause)"
current_resolvers=$(./get-current-resolvers.sh)
if [ "$current_resolvers" = "$INTERFACE_PROXY" ]; then
if [ ! -e "$PROXY_PID_FILE" ]; then
./start-dnscrypt-proxy.sh || ./switch-to-dhcp.sh
logger_debug "The proxy should be running but it isn't."
./switch-to-dhcp.sh
fi
fi
if [ $pause -lt $PAUSE_MAX ]; then
pause=$((pause + $PAUSE_INCREMENT))
fi
sleep $pause
./check-hijacking.sh || continue
./start-dnscrypt-proxy.sh || continue
logger_debug "Checking if the router hijacks HTTP queries"
if ./check-hijacking.sh; then
logger_debug "The router doesn't hijack HTTP queries"
else
logger_debug "The router hijacks HTTP queries - DNSCrypt is likely to be blocked"
continue
fi
./start-dnscrypt-proxy.sh
./check-local-dns.sh || continue
./set-dns.sh "$INTERFACE_PROXY"
if [ $? != 0 ]; then
logger_debug "Setting the DNS to [$INTERFACE_PROXY] didn't work"
./set-dns-to-dhcp.sh
continue
fi
./check-hijacking.sh
if [ $? != 0 ]; then
logger_debug "Current configuration seems to be hijacking HTTP queries. Reverting to default resolvers."
./set-dns-to-dhcp.sh
continue
fi
@@ -8,7 +8,7 @@ if [ ! -s "$BLACKLIST_DOMAINS_TMP_FILE" ]; then
fi
tr -s '[:blank:]' '\n' < "$BLACKLIST_DOMAINS_TMP_FILE" | \
egrep -vi '^(apple[.]com|resolver1[.]opendns[.]com)$' > \
egrep -vi '^(apple[.]com)$' > \
"${BLACKLIST_DOMAINS_TMP_FILE}~" &&
mv "${BLACKLIST_DOMAINS_TMP_FILE}~" "$BLACKLIST_DOMAINS_FILE"
@@ -0,0 +1,49 @@
#! /bin/sh
. ./common.inc
TARGET_DIR=~/Desktop
[ -e "$APP_UPDATES_STATE" ] && exit 0
touch "$APP_UPDATES_STATE" || exit 1
[ -d "$TARGET_DIR" ] || exit 1
mkdir -p "$APP_UPDATES_DIR" || exit 1
curl -L --max-redirs 5 -4 -m 30 --connect-timeout 30 -s \
"${APP_UPDATES_BASE_URL}/versions.txt" > "${APP_UPDATES_DIR}/versions.txt" || exit 1
CURRENT_HASH=$(shasum -a 512 "${APP_UPDATES_DIR}/versions.txt")
OLD_HASH=$(cat "${APP_UPDATES_DIR}/versions_hash" 2> /dev/null)
[ "x$CURRENT_HASH" = "x$OLD_HASH" ] && exit 0
curl -L --max-redirs 5 -4 -m 30 --connect-timeout 30 -s \
"${APP_UPDATES_BASE_URL}/versions.txt.minisig" > "${APP_UPDATES_DIR}/versions.txt.minisig" || exit 1
minisign-verify -q -V -P "$APP_UPDATES_PUBLIC_KEY" -m "${APP_UPDATES_DIR}/versions.txt" || exit 1
rm -f "${APP_UPDATES_DIR}/versions.txt.minisig"
OS_VERSION=$(sw_vers -productVersion | sed 's/[^0-9.]$//' | cut -d. -f1-2) || exit 0
AVAILABLE=$(egrep "^${OS_VERSION} " "${APP_UPDATES_DIR}/versions.txt") || exit 0
rm -f "${APP_UPDATES_DIR}/versions.txt"
AVAILABLE_VERSION=$(echo "$AVAILABLE" | cut -d' ' -f2 | sed 's/[^0-9]//g')
DOWNLOAD_URL=$(echo "$AVAILABLE" | cut -d' ' -f3 | sed 's/ //g')
DOWNLOADED_FILE="${TARGET_DIR}/dnscrypt-update-${AVAILABLE_VERSION}.dmg"
[ -f "$DOWNLOADED_FILE" ] && exit 0
[ -z "$AVAILABLE_VERSION" -o -z "$DOWNLOAD_URL" ] && exit 1
[ "$AVAILABLE_VERSION" -gt "$CURRENT_VERSION" ] || exit 0
SIG_DOWNLOAD_URL="${DOWNLOAD_URL}.minisig"
curl -L --max-redirs 5 -4 -m 30 --connect-timeout 30 -s \
"$SIG_DOWNLOAD_URL" > "${APP_UPDATES_DIR}/update.tmp.minisig" || exit 1
curl -L --max-redirs 5 -4 -m 300 --connect-timeout 30 -s --compress \
"$DOWNLOAD_URL" > "${APP_UPDATES_DIR}/update.tmp" || exit 1
minisign-verify -q -V -P "$APP_UPDATES_PUBLIC_KEY" -m "${APP_UPDATES_DIR}/update.tmp" || exit 1
rm -f "${APP_UPDATES_DIR}/update.tmp.minisig"
mv -f "${APP_UPDATES_DIR}/update.tmp" "$DOWNLOADED_FILE" || exit 1
echo "$CURRENT_HASH" > "${APP_UPDATES_DIR}/versions_hash"
osascript -e "display notification \"A new version of DNSCrypt has been downloaded and saved on your desktop. Install it whenever you want!\" with title \"A new version of DNSCrypt is available!\" sound name \"Hero\""
@@ -0,0 +1,19 @@
#! /bin/sh
. ./common.inc
logger_debug "Checking if updates to the resolvers list are available"
curl -L --max-redirs 5 -4 -m 30 --connect-timeout 30 -s \
"${RESOLVERS_UPDATES_BASE_URL}/dnscrypt-resolvers.csv" > \
"${RESOLVERS_LIST_BASE_DIR}/dnscrypt-resolvers.csv.tmp" &&
curl -L --max-redirs 5 -4 -m 30 --connect-timeout 30 -s \
"${RESOLVERS_UPDATES_BASE_URL}/dnscrypt-resolvers.csv.minisig" > \
"${RESOLVERS_LIST_BASE_DIR}/dnscrypt-resolvers.csv.minisig" &&
minisign-verify -Vm ${RESOLVERS_LIST_BASE_DIR}/dnscrypt-resolvers.csv.tmp \
-x "${RESOLVERS_LIST_BASE_DIR}/dnscrypt-resolvers.csv.minisig" \
-P "$RESOLVERS_LIST_PUBLIC_KEY" -q &&
mv -f ${RESOLVERS_LIST_BASE_DIR}/dnscrypt-resolvers.csv.tmp \
${RESOLVERS_LIST_BASE_DIR}/dnscrypt-resolvers.csv
logger_debug "Resolvers list is up to date"
Binary file not shown.
+19
View File
@@ -3,3 +3,22 @@ OSX client for managing the DNSCrypt Proxy
The purpose of this application is to allow the user to have a better
experience controlling the DNSCrypt Proxy on OSX.
[Download dnscrypt-osxclient-1.0.7.dmg](https://github.com/alterstep/dnscrypt-osxclient/releases/download/1.0.7/dnscrypt-osxclient-1.0.7.dmg)
for OSX 10.8 (Mountain Lion), OSX 10.9 (Mavericks), OSX 10.10 (Yosemite) and
OSX 10.11 (El Capitan).
Compatible with:
* Adamas
* Cisco (OpenDNS)
* CloudNS
* Cypherpunk.lu
* DNSCrypt.eu
* DNSCrypt.org
* OVPN
* OpenNIC
* Proxy.sh
* Soltysiak
* d0wn
* iPredator
* okTurtles
+32
View File
@@ -0,0 +1,32 @@
My PGP public key, to verify the releases:
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1
mQENBFV3cvYBCACmUwWPeGbnzEsBzdsq+15a9td4RjuJsUEAxhCkXAp36Hn0lVJB
Bz1Mcjqoo3Im6S/ec6EEQQrLuZBvuL4LnSWaIa+6HfPQiEr3mD/kyKp371jvrKkl
lIRqa4fZWKoasRhLBqo4lTUsrR3wblbmnFRjTNMBB3ltfi8VMmr//KEHJx8hkgpQ
udJoBF5fZ8RQZsFjbqxncE2/pwYmOE+rO7hEkULx6KnkxqUkpxjnPkAmf+7G3bpS
K+l4ZIakOFwRELvqU9pX6T4mx5/GpMv5F+gJGjRHOMUeSQLhzLTKihBpHa1OnMGC
zD0fB24Msn+0g2rsReccuFo9qLkCc3IvaGAHABEBAAG0CkFsdGVyIFN0ZXCJATgE
EwECACIFAlV3cvYCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEGm4VoCb
8nqtAEEH/A31A04X51I6gEiEsd1Il310GWF/SD1r9G2B64zAenlfQo8yY1qeCRZi
Sh5TGVpXmnv4IK+BbuAZLxr5X8fs5UtX+otrgGbiS9cJSsIhffHyeCiRZyNgcPuQ
ZCRLjNx9zt3as/TZUBKEudzOiCRvTFGm7mZHgmV1NTY62qy/lDl+fNWK9nBea0/W
Tvv3rDNyL6ic4aoEeYBbFsHzdcEFpVtLEeOpB2n8z8aA/7yvXKSQNf5nkFwytPmd
5gIMons58jwDjiWpkTxhzHYpwegMkqkEpizA82lHNt2q/IeLxNFeIkUIOPTsij7K
RitethBvVU5bhRCgur6V/6qy8kJX92G5AQ0EVXdy9gEIAL4qJzGDAl28z50vob6D
h2Ime9nIZohm0Fw4jk/bae2LQPnv/VMcCjleJ0VOZfjs3X4FYzv5gCKMz+Jcn1Q2
6kOqct/AO8XWBXXrlAd3z6Kf19IkrWtjeG9G2nN047R0l1xLj9+VAWhTK29aDkt8
oLUMZBkQXmYcK+caQfrc2KR1Ok0JQ4qGa4hRqnnTTODZJ56iHIx0c68BWl0DlU69
t4E+7KreiPxH43dx6mmC3DXfZcOMJnKXJelf2gCQfO0j1wHLen+7uT4/YY1jMKec
jhDgTTFJR26iMw+XdoWjJWThBwlZ+0CqoHDEYBEs3dSgtipaMNS69NR7bzUzrPUl
1vMAEQEAAYkBHwQYAQIACQUCVXdy9gIbDAAKCRBpuFaAm/J6raWYB/9YalFKgnnu
a3r3tcGkPnYgGDf8s1upG5kgcaROXmhuWq6CCsk3WyvGRGLnafMXi6mE+rBDKgij
GSJ+C+kgvXgGU1QRl9XL0hJLT9O0QrHt6TAfqJsDY1kHR0M8WaYj0RTr+3OAyJhg
kM1oEvabhrCbPNVxznCAMmT9z5U1i1NYqacjAQfnR8nHr3C6oHnj/gaQQOTO3xJg
rBMymDhBVoWMkoaoXYNqJNpgCuAAhmmUM1AtMA+RkWeSIzCUD+1GhO5VQyjtsdHZ
aC08CMLzjpG+VI+LgaU2pHUwwCLNEiA701AwSg4RMRj2ARjKWtOh6tqIN1UgTp1N
tg4DrEN2CFSW
=TN6d
-----END PGP PUBLIC KEY BLOCK-----
+2
View File
@@ -0,0 +1,2 @@
untrusted comment: alterstep minisign public key 10F22FAD80C6C36F
RWRvw8aArS/yEI3In0/zQSb9+qfWonLxjjEYG17cXt6zct6GLKtEvUfk
+4
View File
@@ -0,0 +1,4 @@
10.8 1 https://github.com/alterstep/dnscrypt-osxclient/releases/download/1.0.8/dnscrypt-osxclient-1.0.8.dmg
10.9 1 https://github.com/alterstep/dnscrypt-osxclient/releases/download/1.0.8/dnscrypt-osxclient-1.0.8.dmg
10.10 1 https://github.com/alterstep/dnscrypt-osxclient/releases/download/1.0.8/dnscrypt-osxclient-1.0.8.dmg
10.11 1 https://github.com/alterstep/dnscrypt-osxclient/releases/download/1.0.8/dnscrypt-osxclient-1.0.8.dmg
+4
View File
@@ -0,0 +1,4 @@
untrusted comment: signature from minisign secret key
RWRvw8aArS/yEHYsWWF0s6ueXO4F4Xql7W4QD0TOfRs8ZBSPtjxSgrMPis0k46GPhVkaAFzbWx1jEXCNLgDNlnehWwFEjhD/DQc=
trusted comment: timestamp: 1436633664 file: versions.txt
O4OxZpRmxNPlsVSeuVO2SpdmzTwnMpvPV9dMMr1W5FtusQ+WZtXVupBYRu15NZ1VsKbY0b4k0Qb1Jjb7loWsAw==