os_openbsd.go 727 B

123456789101112131415161718192021222324252627282930313233
  1. //go:build openbsd
  2. // +build openbsd
  3. package wgctrl
  4. import (
  5. "golang.zx2c4.com/wireguard/wgctrl/internal/wginternal"
  6. "golang.zx2c4.com/wireguard/wgctrl/internal/wgopenbsd"
  7. "golang.zx2c4.com/wireguard/wgctrl/internal/wguser"
  8. )
  9. // newClients configures wginternal.Clients for OpenBSD systems.
  10. func newClients() ([]wginternal.Client, error) {
  11. var clients []wginternal.Client
  12. // OpenBSD has an in-kernel WireGuard implementation. Determine if it is
  13. // available and make use of it if so.
  14. kc, ok, err := wgopenbsd.New()
  15. if err != nil {
  16. return nil, err
  17. }
  18. if ok {
  19. clients = append(clients, kc)
  20. }
  21. uc, err := wguser.New()
  22. if err != nil {
  23. return nil, err
  24. }
  25. clients = append(clients, uc)
  26. return clients, nil
  27. }