From d06cc0f8ee89a0142c493b33d295272ba100aaf5 Mon Sep 17 00:00:00 2001 From: Aleksey Dmitrevskiy Date: Mon, 11 Mar 2019 19:18:18 +0300 Subject: [PATCH 1/3] Fix #598 - [change] service: windows: register sercive to work under local system user --- dnsfilter/dnsfilter.go | 2 +- service.go | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/dnsfilter/dnsfilter.go b/dnsfilter/dnsfilter.go index 561ccb04..b33465f9 100644 --- a/dnsfilter/dnsfilter.go +++ b/dnsfilter/dnsfilter.go @@ -16,8 +16,8 @@ import ( "sync/atomic" "time" - "github.com/bluele/gcache" "github.com/AdguardTeam/golibs/log" + "github.com/bluele/gcache" "golang.org/x/net/publicsuffix" ) diff --git a/service.go b/service.go index d0bb7f67..792e1dd9 100644 --- a/service.go +++ b/service.go @@ -127,11 +127,6 @@ func configureService(c *service.Config) { // POSIX // Redirect StdErr & StdOut to files. c.Option["LogOutput"] = true - - // Windows - if runtime.GOOS == "windows" { - c.UserName = "NT AUTHORITY\\NetworkService" - } } // cleanupService called on the service uninstall, cleans up additional files if needed From b1f707d18cf6ce63fe1ed56efbd18d4f614d0543 Mon Sep 17 00:00:00 2001 From: Ildar Kamalov Date: Tue, 12 Mar 2019 18:59:58 +0300 Subject: [PATCH 2/3] - client: load favicon from local server Closes #625 --- client/package-lock.json | 32 ++++++++++++++++++++++++++++++++ client/package.json | 1 + client/public/favicon.ico | Bin 0 -> 15086 bytes client/public/index.html | 2 +- client/public/install.html | 2 +- client/webpack.common.js | 5 +++++ 6 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 client/public/favicon.ico diff --git a/client/package-lock.json b/client/package-lock.json index 7a93cbc1..ee179159 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -3260,6 +3260,38 @@ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true }, + "copy-webpack-plugin": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.6.0.tgz", + "integrity": "sha512-Y+SQCF+0NoWQryez2zXn5J5knmr9z/9qSQt7fbL78u83rxmigOy8X5+BFn8CFSuX+nKT8gpYwJX68ekqtQt6ZA==", + "dev": true, + "requires": { + "cacache": "^10.0.4", + "find-cache-dir": "^1.0.0", + "globby": "^7.1.1", + "is-glob": "^4.0.0", + "loader-utils": "^1.1.0", + "minimatch": "^3.0.4", + "p-limit": "^1.0.0", + "serialize-javascript": "^1.4.0" + }, + "dependencies": { + "globby": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", + "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + } + } + }, "core-js": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", diff --git a/client/package.json b/client/package.json index 9b000c61..ce60dba2 100644 --- a/client/package.json +++ b/client/package.json @@ -47,6 +47,7 @@ "babel-runtime": "6.26.0", "clean-webpack-plugin": "^0.1.19", "compression-webpack-plugin": "^1.1.11", + "copy-webpack-plugin": "^4.6.0", "css-loader": "^0.28.11", "eslint": "^4.19.1", "eslint-config-airbnb-base": "^12.1.0", diff --git a/client/public/favicon.ico b/client/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..07cb5eead34cdd95d17e3d3cf1dd387a98bdb978 GIT binary patch literal 15086 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 - + AdGuard Home diff --git a/client/public/install.html b/client/public/install.html index 45065fe3..7f251c62 100644 --- a/client/public/install.html +++ b/client/public/install.html @@ -4,7 +4,7 @@ - + Setup AdGuard Home diff --git a/client/webpack.common.js b/client/webpack.common.js index aa1b2383..bee1b975 100644 --- a/client/webpack.common.js +++ b/client/webpack.common.js @@ -5,12 +5,14 @@ const ExtractTextPlugin = require('extract-text-webpack-plugin'); const webpack = require('webpack'); const flexBugsFixes = require('postcss-flexbugs-fixes'); const CleanWebpackPlugin = require('clean-webpack-plugin'); +const CopyPlugin = require('copy-webpack-plugin'); const RESOURCES_PATH = path.resolve(__dirname); const ENTRY_REACT = path.resolve(RESOURCES_PATH, 'src/index.js'); const ENTRY_INSTALL = path.resolve(RESOURCES_PATH, 'src/install/index.js'); const HTML_PATH = path.resolve(RESOURCES_PATH, 'public/index.html'); const HTML_INSTALL_PATH = path.resolve(RESOURCES_PATH, 'public/install.html'); +const FAVICON_PATH = path.resolve(RESOURCES_PATH, 'public/favicon.ico'); const PUBLIC_PATH = path.resolve(__dirname, '../build/static'); @@ -117,6 +119,9 @@ const config = { new ExtractTextPlugin({ filename: '[name].[contenthash].css', }), + new CopyPlugin([ + { from: FAVICON_PATH, to: PUBLIC_PATH }, + ]), ], }; From 70c56f7a180e1113c289574e69dd148bc76db511 Mon Sep 17 00:00:00 2001 From: Aleksey Dmitrevskiy Date: Thu, 14 Mar 2019 18:06:53 +0300 Subject: [PATCH 3/3] + app, config: add symlink support, allow to specify absolute path in log_file --- app.go | 6 +++++- config.go | 10 ++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app.go b/app.go index 18d45b2e..91f4fbdd 100644 --- a/app.go +++ b/app.go @@ -288,7 +288,11 @@ func configureLogger(args options) { } } else { logFilePath := filepath.Join(config.ourWorkingDir, ls.LogFile) - file, err := os.OpenFile(logFilePath, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0755) + if filepath.IsAbs(ls.LogFile) { + logFilePath = ls.LogFile + } + + file, err := os.OpenFile(logFilePath, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0644) if err != nil { log.Fatalf("cannot create a log file: %s", err) } diff --git a/config.go b/config.go index 05888888..b0da6532 100644 --- a/config.go +++ b/config.go @@ -137,9 +137,15 @@ var config = configuration{ // getConfigFilename returns path to the current config file func (c *configuration) getConfigFilename() string { - configFile := config.ourConfigFilename + configFile, err := filepath.EvalSymlinks(config.ourConfigFilename) + if err != nil { + if !os.IsNotExist(err) { + log.Error("unexpected error while config file path evaluation: %s", err) + } + configFile = config.ourConfigFilename + } if !filepath.IsAbs(configFile) { - configFile = filepath.Join(config.ourWorkingDir, config.ourConfigFilename) + configFile = filepath.Join(config.ourWorkingDir, configFile) } return configFile }