Pull request: 3435 openwrt detect
Merge in DNS/adguard-home from 3435-openwrt-detect to master Updates #3435. Squashed commit of the following: commit 04b10f407ced1c85ac8089f980d79e9bbfe14e95 Author: Eugene Burkov <e.burkov@adguard.com> Date: Fri Aug 13 19:02:55 2021 +0300 aghos: fix windows build commit d387cec5f9cae9256dccef8c666c02f2fb7449a2 Author: Eugene Burkov <e.burkov@adguard.com> Date: Fri Aug 13 18:22:12 2021 +0300 aghos: imp code, tests commit 2450b98522eb032ec8658f3ef2384fc77b627cc6 Author: Eugene Burkov <e.burkov@adguard.com> Date: Fri Aug 13 13:43:46 2021 +0300 all: imp code, docs commit 7fabba3a8dc70fe61dbaa8fd5445453816fe9ac7 Author: Eugene Burkov <e.burkov@adguard.com> Date: Fri Aug 13 04:04:09 2021 +0300 all: log changes commit 7cc1235308caf09eb4c80c05a4f328b8d6909ec7 Author: Eugene Burkov <e.burkov@adguard.com> Date: Fri Aug 13 03:33:13 2021 +0300 querylog: repl with golibs commit 84592087d3b2aca23613950bb203ff3c862624dc Author: Eugene Burkov <e.burkov@adguard.com> Date: Fri Aug 13 03:16:37 2021 +0300 aghos: use filewalker commit e4f2964b0e031c7a9a053e85c0ff7c792c772929 Author: Eugene Burkov <e.burkov@adguard.com> Date: Fri Aug 13 00:34:20 2021 +0300 aghos: mv recurrentchecker from aghnet
This commit is contained in:
@@ -4,11 +4,11 @@
|
||||
package aghos
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"io"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"syscall"
|
||||
|
||||
"github.com/AdguardTeam/golibs/stringutil"
|
||||
)
|
||||
|
||||
func setRlimit(val uint64) (err error) {
|
||||
@@ -30,37 +30,20 @@ func sendProcessSignal(pid int, sig syscall.Signal) error {
|
||||
}
|
||||
|
||||
func isOpenWrt() (ok bool) {
|
||||
const etcDir = "/etc"
|
||||
var err error
|
||||
ok, err = FileWalker(func(r io.Reader) (_ []string, cont bool, err error) {
|
||||
const osNameData = "openwrt"
|
||||
|
||||
dirEnts, err := os.ReadDir(etcDir)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
|
||||
// fNameSubstr is a part of a name of the desired file.
|
||||
const fNameSubstr = "release"
|
||||
osNameData := []byte("OpenWrt")
|
||||
|
||||
for _, dirEnt := range dirEnts {
|
||||
if dirEnt.IsDir() {
|
||||
continue
|
||||
}
|
||||
|
||||
fn := dirEnt.Name()
|
||||
if !strings.Contains(fn, fNameSubstr) {
|
||||
continue
|
||||
}
|
||||
|
||||
var body []byte
|
||||
body, err = os.ReadFile(filepath.Join(etcDir, fn))
|
||||
// This use of ReadAll is now safe, because FileWalker's Walk()
|
||||
// have limited r.
|
||||
var data []byte
|
||||
data, err = io.ReadAll(r)
|
||||
if err != nil {
|
||||
continue
|
||||
return nil, false, err
|
||||
}
|
||||
|
||||
if bytes.Contains(body, osNameData) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return nil, !stringutil.ContainsFold(string(data), osNameData), nil
|
||||
}).Walk("/etc/*release*")
|
||||
|
||||
return false
|
||||
return err == nil && ok
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user