Pull request: all: get rid of labels
Merge in DNS/adguard-home from rm-labels to master Squashed commit of the following: commit 5e3688ed92b0f76a47078a55bc22c401422c914c Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Thu Dec 9 17:46:50 2021 +0300 all: imp code, docs commit 123d1ec52d0037315e8de94ab5a26b48cf0bf984 Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Thu Dec 9 17:14:05 2021 +0300 all: get rid of labels
This commit is contained in:
parent
434032f8e3
commit
25fd34c514
|
@ -309,21 +309,22 @@ func (hp *hostsParser) parseLine(line string) (ip net.IP, hosts []string) {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
loop:
|
|
||||||
for _, f := range fields[1:] {
|
for _, f := range fields[1:] {
|
||||||
switch hashIdx := strings.IndexByte(f, '#'); hashIdx {
|
switch hashIdx := strings.IndexByte(f, '#'); hashIdx {
|
||||||
case 0:
|
|
||||||
// The rest of the fields are a part of the comment so skip
|
|
||||||
// immediately.
|
|
||||||
break loop
|
|
||||||
case -1:
|
case -1:
|
||||||
hosts = append(hosts, f)
|
hosts = append(hosts, f)
|
||||||
|
|
||||||
|
continue
|
||||||
|
case 0:
|
||||||
|
// Go on.
|
||||||
default:
|
default:
|
||||||
// Only a part of the field is a comment.
|
// Only a part of the field is a comment.
|
||||||
hosts = append(hosts, f[:hashIdx])
|
hosts = append(hosts, f[:hashIdx])
|
||||||
|
|
||||||
break loop
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// The rest of the fields are a part of the comment so skip
|
||||||
|
// immediately.
|
||||||
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
return ip, hosts
|
return ip, hosts
|
||||||
|
|
|
@ -91,7 +91,7 @@ func PIDByCommand(command string, except ...int) (pid int, err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
var instNum int
|
var instNum int
|
||||||
pid, instNum, err = parsePSOutput(stdout, command, except...)
|
pid, instNum, err = parsePSOutput(stdout, command, except)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
|
@ -125,9 +125,8 @@ func PIDByCommand(command string, except ...int) (pid int, err error) {
|
||||||
// 1230 some/base/path/example-cmd
|
// 1230 some/base/path/example-cmd
|
||||||
// 3210 example-cmd
|
// 3210 example-cmd
|
||||||
//
|
//
|
||||||
func parsePSOutput(r io.Reader, cmdName string, ignore ...int) (largest, instNum int, err error) {
|
func parsePSOutput(r io.Reader, cmdName string, ignore []int) (largest, instNum int, err error) {
|
||||||
s := bufio.NewScanner(r)
|
s := bufio.NewScanner(r)
|
||||||
ScanLoop:
|
|
||||||
for s.Scan() {
|
for s.Scan() {
|
||||||
fields := strings.Fields(s.Text())
|
fields := strings.Fields(s.Text())
|
||||||
if len(fields) != 2 || path.Base(fields[1]) != cmdName {
|
if len(fields) != 2 || path.Base(fields[1]) != cmdName {
|
||||||
|
@ -135,16 +134,10 @@ ScanLoop:
|
||||||
}
|
}
|
||||||
|
|
||||||
cur, aerr := strconv.Atoi(fields[0])
|
cur, aerr := strconv.Atoi(fields[0])
|
||||||
if aerr != nil || cur < 0 {
|
if aerr != nil || cur < 0 || intIn(cur, ignore) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, pid := range ignore {
|
|
||||||
if cur == pid {
|
|
||||||
continue ScanLoop
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
instNum++
|
instNum++
|
||||||
if cur > largest {
|
if cur > largest {
|
||||||
largest = cur
|
largest = cur
|
||||||
|
@ -157,6 +150,17 @@ ScanLoop:
|
||||||
return largest, instNum, nil
|
return largest, instNum, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// intIn returns true if nums contains n.
|
||||||
|
func intIn(n int, nums []int) (ok bool) {
|
||||||
|
for _, nn := range nums {
|
||||||
|
if n == nn {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
// IsOpenWrt returns true if host OS is OpenWrt.
|
// IsOpenWrt returns true if host OS is OpenWrt.
|
||||||
func IsOpenWrt() (ok bool) {
|
func IsOpenWrt() (ok bool) {
|
||||||
return isOpenWrt()
|
return isOpenWrt()
|
||||||
|
|
|
@ -63,7 +63,7 @@ func TestLargestLabeled(t *testing.T) {
|
||||||
r := bytes.NewReader(tc.data)
|
r := bytes.NewReader(tc.data)
|
||||||
|
|
||||||
t.Run(tc.name, func(t *testing.T) {
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
pid, instNum, err := parsePSOutput(r, comm)
|
pid, instNum, err := parsePSOutput(r, comm, nil)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
assert.Equal(t, tc.wantPID, pid)
|
assert.Equal(t, tc.wantPID, pid)
|
||||||
|
@ -76,7 +76,7 @@ func TestLargestLabeled(t *testing.T) {
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
target := &aghio.LimitReachedError{}
|
target := &aghio.LimitReachedError{}
|
||||||
_, _, err = parsePSOutput(lr, "")
|
_, _, err = parsePSOutput(lr, "", nil)
|
||||||
require.ErrorAs(t, err, &target)
|
require.ErrorAs(t, err, &target)
|
||||||
|
|
||||||
assert.EqualValues(t, 0, target.Limit)
|
assert.EqualValues(t, 0, target.Limit)
|
||||||
|
@ -89,7 +89,7 @@ func TestLargestLabeled(t *testing.T) {
|
||||||
`3` + comm + nl,
|
`3` + comm + nl,
|
||||||
))
|
))
|
||||||
|
|
||||||
pid, instances, err := parsePSOutput(r, comm, 1, 3)
|
pid, instances, err := parsePSOutput(r, comm, []int{1, 3})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
assert.Equal(t, 2, pid)
|
assert.Equal(t, 2, pid)
|
||||||
|
|
Loading…
Reference in New Issue