Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c03ffce707 | ||
|
|
22fac25b52 | ||
|
|
d75b291e71 | ||
|
|
66efa12e24 | ||
|
|
90a3558751 | ||
|
|
5cd2147527 | ||
|
|
08af88b591 | ||
|
|
23bef375ef | ||
|
|
079a08db64 | ||
|
|
409cfa07c6 | ||
|
|
4d2c1e80b6 | ||
|
|
212e8921ec | ||
|
|
8cc814acba | ||
|
|
f5a4892bf3 | ||
|
|
784963b6fd | ||
|
|
bb49e3d386 | ||
|
|
3408d3beed | ||
|
|
8491012652 | ||
|
|
e5652d8933 | ||
|
|
1b53464c9a | ||
|
|
f4ab8a0991 | ||
|
|
121feecdf7 | ||
|
|
1c3184a36e | ||
|
|
fb1adf423b | ||
|
|
a364d88326 | ||
|
|
70a39e6756 | ||
|
|
0848088f22 | ||
|
|
4e681b272d | ||
|
|
105a7c800f | ||
|
|
bc5a6cbac4 | ||
|
|
ca7eedb795 | ||
|
|
98261a3396 | ||
|
|
dafba50926 | ||
|
|
aa82ddd1cb | ||
|
|
76bcc9755e | ||
|
|
85b67e70aa | ||
|
|
50a2250ac5 | ||
|
|
6c08e50dd2 | ||
|
|
71acebf3be | ||
|
|
e1236241fa | ||
|
|
afe2bfcdf5 | ||
|
|
2e5e311f00 | ||
|
|
f64a4991f0 | ||
|
|
650b910e7d | ||
|
|
6b6ae896fd | ||
|
|
3a3f040524 | ||
|
|
418bbe586c | ||
|
|
c274c6082c | ||
|
|
54ad6a70d2 | ||
|
|
61ccbaec85 | ||
|
|
9bd689a1f3 | ||
|
|
ce3dcf4c06 | ||
|
|
572b33a765 | ||
|
|
77742886c4 | ||
|
|
236957ce0c | ||
|
|
5ca4dc6dc7 | ||
|
|
de5235f8b2 | ||
|
|
275bb49624 | ||
|
|
690fc9038d | ||
|
|
3724e78ab2 | ||
|
|
dd3b6a2aa7 | ||
|
|
455ee1dbcb | ||
|
|
b036e93a6a | ||
|
|
73ca3e136f | ||
|
|
11640d3038 | ||
|
|
af6b2485ae | ||
|
|
b1e4f1a064 | ||
|
|
cf513f4745 | ||
|
|
12eff619cc | ||
|
|
065c93519e | ||
|
|
da8a4c2b55 | ||
|
|
18310fd607 | ||
|
|
128ee7809f | ||
|
|
76462a39b3 | ||
|
|
1e5cc145e3 | ||
|
|
e5d8a9f579 | ||
|
|
89e8c923fa | ||
|
|
fb416bf21e | ||
|
|
20b40f8cd9 | ||
|
|
917aa0034b | ||
|
|
c4c2aa4a9f | ||
|
|
2896256872 | ||
|
|
e226cba2f4 | ||
|
|
a430afe4c9 | ||
|
|
16039bf898 |
@@ -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>
|
||||
|
||||
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 416 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 762 B |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 243 B |
|
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 |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 355 B |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 663 B |
@@ -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
|
||||
|
||||
@@ -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,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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
Before Width: | Height: | Size: 362 B After Width: | Height: | Size: 362 B |
@@ -1 +0,0 @@
|
||||
/usr/local/bin/alarmer
|
||||
@@ -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"
|
||||
@@ -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
|
||||
|
||||
@@ -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-----
|
||||
@@ -0,0 +1,2 @@
|
||||
untrusted comment: alterstep minisign public key 10F22FAD80C6C36F
|
||||
RWRvw8aArS/yEI3In0/zQSb9+qfWonLxjjEYG17cXt6zct6GLKtEvUfk
|
||||
@@ -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
|
||||
@@ -0,0 +1,4 @@
|
||||
untrusted comment: signature from minisign secret key
|
||||
RWRvw8aArS/yEHYsWWF0s6ueXO4F4Xql7W4QD0TOfRs8ZBSPtjxSgrMPis0k46GPhVkaAFzbWx1jEXCNLgDNlnehWwFEjhD/DQc=
|
||||
trusted comment: timestamp: 1436633664 file: versions.txt
|
||||
O4OxZpRmxNPlsVSeuVO2SpdmzTwnMpvPV9dMMr1W5FtusQ+WZtXVupBYRu15NZ1VsKbY0b4k0Qb1Jjb7loWsAw==
|
||||