mirror of
https://github.com/tailscale/tailscale.git
synced 2025-10-10 09:45:08 +00:00
control/{controlknobs,controlclient}: simplify knobs API, fix controlclient crash
From integration tests elsewhere: panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x70 pc=0x845c9b] goroutine 226 [running]: tailscale.com/control/controlclient.(*Direct).sendMapRequest(0xc00053e1e0, 0x16670f0, 0xc000353780, 0xffffffffffffffff, 0xc0003e5f10, 0x0, 0x0) /home/runner/go/pkg/mod/tailscale.com@v1.1.1-0.20210715222212-1bb6abc604c1/control/controlclient/direct.go:803 +0x19bb tailscale.com/control/controlclient.(*Direct).PollNetMap(...) /home/runner/go/pkg/mod/tailscale.com@v1.1.1-0.20210715222212-1bb6abc604c1/control/controlclient/direct.go:574 tailscale.com/control/controlclient.(*Auto).mapRoutine(0xc00052a1e0) /home/runner/go/pkg/mod/tailscale.com@v1.1.1-0.20210715222212-1bb6abc604c1/control/controlclient/auto.go:464 +0x571 created by tailscale.com/control/controlclient.(*Auto).Start /home/runner/go/pkg/mod/tailscale.com@v1.1.1-0.20210715222212-1bb6abc604c1/control/controlclient/auto.go:151 +0x65 exit status 2 Also remove types/opt.Bool API addition which is now unnecessary. Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
@@ -29,13 +29,6 @@ func (b Bool) Get() (v bool, ok bool) {
|
||||
return v, err == nil
|
||||
}
|
||||
|
||||
func (b Bool) And(v bool) Bool {
|
||||
if v {
|
||||
return b
|
||||
}
|
||||
return "false"
|
||||
}
|
||||
|
||||
// EqualBool reports whether b is equal to v.
|
||||
// If b is empty or not a valid bool, it reports false.
|
||||
func (b Bool) EqualBool(v bool) bool {
|
||||
|
@@ -87,26 +87,3 @@ func TestBoolEqualBool(t *testing.T) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func TestBoolAnd(t *testing.T) {
|
||||
tests := []struct {
|
||||
lhs Bool
|
||||
rhs bool
|
||||
want Bool
|
||||
}{
|
||||
{"true", true, "true"},
|
||||
{"true", false, "false"},
|
||||
|
||||
{"false", true, "false"},
|
||||
{"false", false, "false"},
|
||||
|
||||
{"", true, ""},
|
||||
{"", false, "false"},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
if got := tt.lhs.And(tt.rhs); got != tt.want {
|
||||
t.Errorf("(%q).And(%v) = %v; want %v", string(tt.lhs), tt.rhs, got, tt.want)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user