tailscale.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package adapter
  2. import "context"
  3. type TailscaleEndpoint interface {
  4. SubscribeTailscaleStatus(ctx context.Context, fn func(*TailscaleEndpointStatus)) error
  5. StartTailscalePing(ctx context.Context, peerIP string, fn func(*TailscalePingResult)) error
  6. }
  7. type TailscalePingResult struct {
  8. LatencyMs float64
  9. IsDirect bool
  10. Endpoint string
  11. DERPRegionID int32
  12. DERPRegionCode string
  13. Error string
  14. }
  15. type TailscaleEndpointStatus struct {
  16. BackendState string
  17. AuthURL string
  18. NetworkName string
  19. MagicDNSSuffix string
  20. Self *TailscalePeer
  21. UserGroups []*TailscaleUserGroup
  22. }
  23. type TailscaleUserGroup struct {
  24. UserID int64
  25. LoginName string
  26. DisplayName string
  27. ProfilePicURL string
  28. Peers []*TailscalePeer
  29. }
  30. type TailscalePeer struct {
  31. HostName string
  32. DNSName string
  33. OS string
  34. TailscaleIPs []string
  35. Online bool
  36. ExitNode bool
  37. ExitNodeOption bool
  38. Active bool
  39. RxBytes int64
  40. TxBytes int64
  41. UserID int64
  42. KeyExpiry int64
  43. }