support running in a FreeBSD jail

Since devd apparently can't be made to work in a FreeBSD jail
fall back to polling.

Fixes tailscale#2858

Signed-off-by: Todd Neal <todd@tneal.org>
This commit is contained in:
Todd Neal 2021-12-05 20:26:38 -06:00 committed by Brad Fitzpatrick
parent 69de3bf7bf
commit eeccbccd08
2 changed files with 5 additions and 4 deletions

View File

@ -25,10 +25,11 @@ type devdConn struct {
conn net.Conn conn net.Conn
} }
func newOSMon(logf logger.Logf, _ *Mon) (osMon, error) { func newOSMon(logf logger.Logf, m *Mon) (osMon, error) {
conn, err := net.Dial("unixpacket", "/var/run/devd.seqpacket.pipe") conn, err := net.Dial("unixpacket", "/var/run/devd.seqpacket.pipe")
if err != nil { if err != nil {
return nil, fmt.Errorf("devd dial error: %v", err) logf("devd dial error: %v, falling back to polling method", err)
return newPollingMon(logf, m)
} }
return &devdConn{conn}, nil return &devdConn{conn}, nil
} }

View File

@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
//go:build !freebsd && !windows && !darwin //go:build !windows && !darwin
// +build !freebsd,!windows,!darwin // +build !windows,!darwin
package monitor package monitor