github.com/telepresenceio/telepresence/v2@v2.20.0-pro.6.0.20240517030216-236ea954e789/pkg/client/userd/trafficmgr/config.go (about) 1 package trafficmgr 2 3 import ( 4 "context" 5 "path/filepath" 6 7 empty "google.golang.org/protobuf/types/known/emptypb" 8 9 "github.com/telepresenceio/telepresence/rpc/v2/manager" 10 "github.com/telepresenceio/telepresence/v2/pkg/client" 11 "github.com/telepresenceio/telepresence/v2/pkg/filelocation" 12 "github.com/telepresenceio/telepresence/v2/pkg/iputil" 13 ) 14 15 func (s *session) GetConfig(ctx context.Context) (*client.SessionConfig, error) { 16 nc, err := s.rootDaemon.GetNetworkConfig(ctx, &empty.Empty{}) 17 if err != nil { 18 return nil, err 19 } 20 oi := nc.OutboundInfo 21 dns := oi.Dns 22 subnets := func(rs []*manager.IPNet) []*iputil.Subnet { 23 ss := make([]*iputil.Subnet, len(rs)) 24 for i, r := range rs { 25 ss[i] = (*iputil.Subnet)(iputil.IPNetFromRPC(r)) 26 } 27 return ss 28 } 29 return &client.SessionConfig{ 30 ClientFile: filepath.Join(filelocation.AppUserConfigDir(ctx), client.ConfigFile), 31 Config: s.getSessionConfig(), 32 DNS: client.DNS{ 33 LocalIP: dns.LocalIp, 34 RemoteIP: dns.RemoteIp, 35 IncludeSuffixes: dns.IncludeSuffixes, 36 ExcludeSuffixes: dns.ExcludeSuffixes, 37 LookupTimeout: dns.LookupTimeout.AsDuration(), 38 }, 39 Routing: client.Routing{ 40 Subnets: subnets(nc.Subnets), 41 AlsoProxy: subnets(oi.AlsoProxySubnets), 42 NeverProxy: subnets(oi.NeverProxySubnets), 43 AllowConflicting: subnets(oi.AllowConflictingSubnets), 44 }, 45 ManagerNamespace: s.GetManagerNamespace(), 46 }, nil 47 }