celzero / firestack

Userspace wireguard and network monitor
https://rethinkdns.com/app
Mozilla Public License 2.0
99 stars 16 forks source link

Accept any, return concrete #54

Open ignoramous opened 5 months ago

ignoramous commented 5 months ago
➜  firestack git:(n2) ✗ go install github.com/butuzov/ireturn/cmd/ireturn@latest
go: downloading github.com/butuzov/ireturn v0.3.0
go: downloading golang.org/x/tools v0.17.0

https://blog.theodo.com/2022/08/go-nil-interfaces/

➜  firestack git:(n2) ✗ ireturn ./...
/home/murtaza/bravehub/firestack/intra/log/logger.go:89:1: NewLogger returns interface (github.com/celzero/firestack/intra/log.Logger)
/home/murtaza/bravehub/firestack/intra/ipn/h1/auth.go:44:1: AuthBasic returns interface (github.com/celzero/firestack/intra/ipn/h1.ProxyAuthorization)
/home/murtaza/bravehub/firestack/intra/protect/xdial.go:61:1: dial returns interface (net.Conn)
/home/murtaza/bravehub/firestack/intra/protect/xdial.go:91:1: Accept returns interface (net.Listener)
/home/murtaza/bravehub/firestack/intra/protect/xdial.go:111:1: Announce returns interface (net.PacketConn)
/home/murtaza/bravehub/firestack/intra/protect/ipmap/ipmap.go:113:1: NewIPMap returns interface (github.com/celzero/firestack/intra/protect/ipmap.IPMap)
/home/murtaza/bravehub/firestack/intra/protect/ipmap/ipmap.go:118:1: NewIPMapFor returns interface (github.com/celzero/firestack/intra/protect/ipmap.IPMap)
/home/murtaza/bravehub/firestack/intra/dialers/direct_split.go:38:1: split returns interface (github.com/celzero/firestack/intra/dialers.DuplexConn)
/home/murtaza/bravehub/firestack/intra/dialers/direct_split.go:45:1: DialWithSplit returns interface (github.com/celzero/firestack/intra/dialers.DuplexConn)
/home/murtaza/bravehub/firestack/intra/dialers/retrier.go:125:1: DialWithSplitRetry returns interface (github.com/celzero/firestack/intra/dialers.DuplexConn)
/home/murtaza/bravehub/firestack/intra/dns53/dot.go:44:1: NewTLSTransport returns interface (github.com/celzero/firestack/intra/dnsx.Transport)
/home/murtaza/bravehub/firestack/intra/dns53/goos.go:37:1: NewGoosTransport returns interface (github.com/celzero/firestack/intra/dnsx.Transport)
/home/murtaza/bravehub/firestack/intra/dns53/grounded.go:29:1: NewGroundedTransport returns interface (github.com/celzero/firestack/intra/dnsx.Transport)
/home/murtaza/bravehub/firestack/intra/dns53/mdns.go:51:1: NewMDNSTransport returns interface (github.com/celzero/firestack/intra/dnsx.Transport)
/home/murtaza/bravehub/firestack/intra/dns53/upstream.go:54:1: NewTransportFromHostname returns interface (github.com/celzero/firestack/intra/dnsx.Transport)
/home/murtaza/bravehub/firestack/intra/dns53/upstream.go:64:1: NewTransport returns interface (github.com/celzero/firestack/intra/dnsx.Transport)
/home/murtaza/bravehub/firestack/intra/dns53/upstream.go:74:1: newTransport returns interface (github.com/celzero/firestack/intra/dnsx.Transport)
/home/murtaza/bravehub/firestack/intra/dns53/upstream.go:111:1: NewTransportFrom returns interface (github.com/celzero/firestack/intra/dnsx.Transport)
/home/murtaza/bravehub/firestack/intra/dnscrypt/multiserver.go:86:1: chooseAny returns generic interface (T) of type param any
/home/murtaza/bravehub/firestack/intra/dnscrypt/multiserver.go:571:1: Get returns interface (github.com/celzero/firestack/intra/backend.DNSTransport)
/home/murtaza/bravehub/firestack/intra/xdns/dnsutil.go:987:1: MakeARecord returns interface (github.com/miekg/dns.RR)
/home/murtaza/bravehub/firestack/intra/xdns/dnsutil.go:1009:1: MakeAAAARecord returns interface (github.com/miekg/dns.RR)
/home/murtaza/bravehub/firestack/intra/dnscrypt/multiserver.go:662:1: AddTransport returns interface (github.com/celzero/firestack/intra/dnsx.Transport)
/home/murtaza/bravehub/firestack/intra/xdns/dnsutil.go:1034:1: MaybeToQuadA returns interface (github.com/miekg/dns.RR)
/home/murtaza/bravehub/firestack/intra/xdns/dnsutil.go:1062:1: ToIp6Hint returns interface (github.com/miekg/dns.RR)
/home/murtaza/bravehub/firestack/intra/backend/core_iptree.go:76:1: NewIpTree returns interface (github.com/celzero/firestack/intra/backend.IpTree)
/home/murtaza/bravehub/firestack/intra/backend/core_radixtree.go:46:1: NewRadixTree returns interface (github.com/celzero/firestack/intra/backend.RadixTree)
/home/murtaza/bravehub/firestack/intra/backend/ipn_pipkeygen.go:83:1: NewPipKey returns interface (github.com/celzero/firestack/intra/backend.PipKey)
/home/murtaza/bravehub/firestack/intra/backend/ipn_wgkeygen.go:61:1: Mult returns interface (github.com/celzero/firestack/intra/backend.WgKey)
/home/murtaza/bravehub/firestack/intra/backend/ipn_wgkeygen.go:76:1: NewWgPrivateKey returns interface (github.com/celzero/firestack/intra/backend.WgKey)
/home/murtaza/bravehub/firestack/intra/backend/ipn_wgkeygen.go:99:1: NewWgPrivateKeyOf returns interface (github.com/celzero/firestack/intra/backend.WgKey)
/home/murtaza/bravehub/firestack/intra/rnet/http.go:44:1: newHttpServer returns interface (github.com/celzero/firestack/intra/rnet.Server)
/home/murtaza/bravehub/firestack/intra/rnet/servers.go:97:1: NewServices returns interface (github.com/celzero/firestack/intra/rnet.Services)
/home/murtaza/bravehub/firestack/intra/rnet/servers.go:109:1: AddServer returns interface (github.com/celzero/firestack/intra/rnet.Server)
/home/murtaza/bravehub/firestack/intra/rnet/servers.go:176:1: GetServer returns interface (github.com/celzero/firestack/intra/rnet.Server)
/home/murtaza/bravehub/firestack/intra/rnet/socks5.go:43:1: newSocks5Server returns interface (github.com/celzero/firestack/intra/rnet.Server)
/home/murtaza/bravehub/firestack/intra/core/p2est.go:39:1: NewP50Estimator returns interface (github.com/celzero/firestack/intra/core.P2QuantileEstimator)
/home/murtaza/bravehub/firestack/intra/core/p2est.go:47:1: NewP2QuantileEstimator returns interface (github.com/celzero/firestack/intra/core.P2QuantileEstimator)
/home/murtaza/bravehub/firestack/intra/core/volatile.go:21:1: Load returns generic interface (T) of type param any
/home/murtaza/bravehub/firestack/intra/core/volatile.go:42:1: Swap returns generic interface (T) of type param any
/home/murtaza/bravehub/firestack/intra/doh/doh.go:93:1: NewTransport returns interface (github.com/celzero/firestack/intra/dnsx.Transport)
/home/murtaza/bravehub/firestack/intra/doh/doh.go:103:1: NewOdohTransport returns interface (github.com/celzero/firestack/intra/dnsx.Transport)
/home/murtaza/bravehub/firestack/intra/doh/padding.go:51:1: optPadding returns interface (github.com/miekg/dns.EDNS0)
/home/murtaza/bravehub/firestack/intra/dnsx/cacher.go:88:1: NewDefaultCachingTransport returns interface (github.com/celzero/firestack/intra/dnsx.Transport)
/home/murtaza/bravehub/firestack/intra/dnsx/cacher.go:92:1: NewCachingTransport returns interface (github.com/celzero/firestack/intra/dnsx.Transport)
/home/murtaza/bravehub/firestack/intra/dnsx/transport.go:142:1: NewResolver returns interface (github.com/celzero/firestack/intra/dnsx.Resolver)
/home/murtaza/bravehub/firestack/intra/x64/natpt.go:50:1: NewNatPt returns interface (github.com/celzero/firestack/intra/dnsx.NatPt)
/home/murtaza/bravehub/firestack/intra/dnsx/transport.go:172:1: Gateway returns interface (github.com/celzero/firestack/intra/dnsx.Gateway)
/home/murtaza/bravehub/firestack/intra/ipn/base.go:26:1: NewBaseProxy returns interface (github.com/celzero/firestack/intra/ipn.Proxy)
/home/murtaza/bravehub/firestack/intra/dnsx/transport.go:218:1: GetMult returns interface (github.com/celzero/firestack/intra/dnsx.TransportMult)
/home/murtaza/bravehub/firestack/intra/dnsx/transport.go:232:1: dcProxy returns interface (github.com/celzero/firestack/intra/dnsx.TransportMult)
/home/murtaza/bravehub/firestack/intra/dnsx/transport.go:236:1: Get returns interface (github.com/celzero/firestack/intra/backend.DNSTransport)
/home/murtaza/bravehub/firestack/intra/ipn/base.go:94:1: Router returns interface (github.com/celzero/firestack/intra/backend.Router)
/home/murtaza/bravehub/firestack/intra/dnsx/transport.go:454:1: determineTransport returns interface (github.com/celzero/firestack/intra/dnsx.Transport)
/home/murtaza/bravehub/firestack/intra/ipn/exit.go:28:1: NewExitProxy returns interface (github.com/celzero/firestack/intra/ipn.Proxy)
/home/murtaza/bravehub/firestack/intra/dnsx/undelegated.go:164:1: newUndelegatedDomainsTrie returns interface (github.com/celzero/firestack/intra/backend.RadixTree)
/home/murtaza/bravehub/firestack/intra/ipn/exit.go:102:1: Router returns interface (github.com/celzero/firestack/intra/backend.Router)
/home/murtaza/bravehub/firestack/intra/dnsx/wall.go:67:1: GetRdnsLocal returns interface (github.com/celzero/firestack/intra/backend.RDNS)
/home/murtaza/bravehub/firestack/intra/ipn/ground.go:20:1: NewGroundProxy returns interface (github.com/celzero/firestack/intra/ipn.Proxy)
/home/murtaza/bravehub/firestack/intra/dnsx/wall.go:78:1: GetRdnsRemote returns interface (github.com/celzero/firestack/intra/backend.RDNS)
/home/murtaza/bravehub/firestack/intra/ipn/ground.go:62:1: Router returns interface (github.com/celzero/firestack/intra/backend.Router)
/home/murtaza/bravehub/firestack/intra/ipn/http1.go:35:1: NewHTTPProxy returns interface (github.com/celzero/firestack/intra/ipn.Proxy)
/home/murtaza/bravehub/firestack/intra/ipn/http1.go:123:1: Router returns interface (github.com/celzero/firestack/intra/backend.Router)
/home/murtaza/bravehub/firestack/tunnel/tunnel.go:191:1: NewGTunnel returns interface (github.com/celzero/firestack/tunnel.Tunnel)
/home/murtaza/bravehub/firestack/intra/ipn/piph2.go:145:1: NewPipProxy returns interface (github.com/celzero/firestack/intra/ipn.Proxy)
/home/murtaza/bravehub/firestack/intra/ipn/piph2.go:237:1: Router returns interface (github.com/celzero/firestack/intra/backend.Router)
/home/murtaza/bravehub/firestack/intra/ipn/pipws.go:101:1: NewPipWsProxy returns interface (github.com/celzero/firestack/intra/ipn.Proxy)
/home/murtaza/bravehub/firestack/intra/ipn/pipws.go:173:1: Router returns interface (github.com/celzero/firestack/intra/backend.Router)
/home/murtaza/bravehub/firestack/intra/ipn/wg/wgconn.go:74:1: ParseEndpoint returns interface (golang.zx2c4.com/wireguard/conn.Endpoint)
/home/murtaza/bravehub/firestack/intra/ipn/proxies.go:152:1: NewProxifier returns interface (github.com/celzero/firestack/intra/ipn.Proxies)
/home/murtaza/bravehub/firestack/intra/ipn/proxies.go:200:1: ProxyFor returns interface (github.com/celzero/firestack/intra/ipn.Proxy)
/home/murtaza/bravehub/firestack/intra/ipn/proxies.go:214:1: GetProxy returns interface (github.com/celzero/firestack/intra/backend.Proxy)
/home/murtaza/bravehub/firestack/intra/ipn/wg/wgconn.go:400:1: asEndpoint returns interface (golang.zx2c4.com/wireguard/conn.Endpoint)
/home/murtaza/bravehub/firestack/intra/ipn/proxies.go:218:1: Router returns interface (github.com/celzero/firestack/intra/backend.Router)
/home/murtaza/bravehub/firestack/intra/ipn/wg/wgconn2.go:152:1: ParseEndpoint returns interface (golang.zx2c4.com/wireguard/conn.Endpoint)
/home/murtaza/bravehub/firestack/intra/ipn/proxy.go:21:1: NewSocks5Proxy returns interface (github.com/celzero/firestack/intra/ipn.Proxy)
/home/murtaza/bravehub/firestack/intra/ipn/proxy.go:26:1: AddProxy returns interface (github.com/celzero/firestack/intra/backend.Proxy)
/home/murtaza/bravehub/firestack/intra/ipn/proxy.go:30:1: addProxy returns interface (github.com/celzero/firestack/intra/ipn.Proxy)
/home/murtaza/bravehub/firestack/intra/ipn/socks5.go:82:1: NewSocks5Proxy returns interface (github.com/celzero/firestack/intra/ipn.Proxy)
/home/murtaza/bravehub/firestack/intra/ipn/socks5.go:196:1: Router returns interface (github.com/celzero/firestack/intra/backend.Router)
/home/murtaza/bravehub/firestack/intra/ipn/wgproxy.go:374:1: NewWgProxy returns interface (github.com/celzero/firestack/intra/ipn.WgProxy)
/home/murtaza/bravehub/firestack/intra/ipn/wgproxy.go:711:1: Router returns interface (github.com/celzero/firestack/intra/backend.Router)
/home/murtaza/bravehub/firestack/intra/bootstrap.go:61:1: NewDefaultDNS returns interface (github.com/celzero/firestack/intra.DefaultDNS)
/home/murtaza/bravehub/firestack/intra/bootstrap.go:73:1: newDefaultDohTransport returns interface (github.com/celzero/firestack/intra/dnsx.Transport)
/home/murtaza/bravehub/firestack/intra/bootstrap.go:81:1: newDefaultTransport returns interface (github.com/celzero/firestack/intra/dnsx.Transport)
/home/murtaza/bravehub/firestack/intra/dns.go:47:1: newSystemDNSProxy returns interface (github.com/celzero/firestack/intra/dnsx.Transport)
/home/murtaza/bravehub/firestack/intra/dns.go:81:1: newGoosTransport returns interface (github.com/celzero/firestack/intra/dnsx.Transport)
/home/murtaza/bravehub/firestack/intra/dns.go:86:1: newBlockAllTransport returns interface (github.com/celzero/firestack/intra/dnsx.Transport)
/home/murtaza/bravehub/firestack/intra/dns.go:90:1: newDNSCryptTransport returns interface (github.com/celzero/firestack/intra/dnsx.TransportMult)
/home/murtaza/bravehub/firestack/intra/dns.go:95:1: newMDNSTransport returns interface (github.com/celzero/firestack/intra/dnsx.Transport)
/home/murtaza/bravehub/firestack/intra/icmp.go:46:1: NewICMPHandler returns interface (github.com/celzero/firestack/intra/netstack.GICMPHandler)
/home/murtaza/bravehub/firestack/intra/tcp.go:81:1: NewTCPHandler returns interface (github.com/celzero/firestack/intra/netstack.GTCPConnHandler)
/home/murtaza/bravehub/firestack/intra/tun2socks.go:52:1: Connect returns interface (github.com/celzero/firestack/intra.Tunnel)
/home/murtaza/bravehub/firestack/intra/tunnel.go:95:1: NewTunnel returns interface (github.com/celzero/firestack/intra.Tunnel)
/home/murtaza/bravehub/firestack/intra/tunnel.go:145:1: getBridge returns interface (github.com/celzero/firestack/intra.Bridge)
/home/murtaza/bravehub/firestack/intra/tunnel.go:189:1: GetResolver returns interface (github.com/celzero/firestack/intra/backend.DNSResolver)
/home/murtaza/bravehub/firestack/intra/tunnel.go:193:1: internalResolver returns interface (github.com/celzero/firestack/intra/dnsx.Resolver)
/home/murtaza/bravehub/firestack/intra/tunnel.go:203:1: GetProxies returns interface (github.com/celzero/firestack/intra/backend.Proxies)
/home/murtaza/bravehub/firestack/intra/tunnel.go:207:1: internalProxies returns interface (github.com/celzero/firestack/intra/ipn.Proxies)
/home/murtaza/bravehub/firestack/intra/tunnel.go:217:1: GetServices returns interface (github.com/celzero/firestack/intra/rnet.Services)
/home/murtaza/bravehub/firestack/intra/udp.go:96:1: NewUDPHandler returns interface (github.com/celzero/firestack/intra/netstack.GUDPConnHandler)
/home/murtaza/bravehub/firestack/intra/udp.go:266:1: Connect returns interface (github.com/celzero/firestack/intra/core.UDPConn)
/home/murtaza/bravehub/firestack/intra/netstack/dispatchers.go:174:1: newReadVDispatcher returns interface (github.com/celzero/firestack/intra/netstack.linkDispatcher)
/home/murtaza/bravehub/firestack/intra/netstack/dispatchers.go:201:1: dispatch returns interface (gvisor.dev/gvisor/pkg/tcpip.Error)
/home/murtaza/bravehub/firestack/intra/netstack/fdbased.go:160:1: NewFdbasedInjectableEndpoint returns interface (github.com/celzero/firestack/intra/netstack.SeamlessEndpoint)
/home/murtaza/bravehub/firestack/intra/netstack/fdbased.go:220:1: createInboundDispatcher returns interface (github.com/celzero/firestack/intra/netstack.linkDispatcher)
/home/murtaza/bravehub/firestack/intra/netstack/fdbased.go:382:1: WritePackets returns interface (gvisor.dev/gvisor/pkg/tcpip.Error)
/home/murtaza/bravehub/firestack/intra/netstack/fdbased.go:432:1: dispatchLoop returns interface (gvisor.dev/gvisor/pkg/tcpip.Error)
/home/murtaza/bravehub/firestack/intra/netstack/fdbased.go:472:1: InjectOutbound returns interface (gvisor.dev/gvisor/pkg/tcpip.Error)
/home/murtaza/bravehub/firestack/intra/netstack/hdl.go:37:1: NewGConnHandler returns interface (github.com/celzero/firestack/intra/netstack.GConnHandler)
/home/murtaza/bravehub/firestack/intra/netstack/hdl.go:45:1: TCP returns interface (github.com/celzero/firestack/intra/netstack.GTCPConnHandler)
/home/murtaza/bravehub/firestack/intra/netstack/hdl.go:49:1: UDP returns interface (github.com/celzero/firestack/intra/netstack.GUDPConnHandler)
/home/murtaza/bravehub/firestack/intra/netstack/hdl.go:53:1: ICMP returns interface (github.com/celzero/firestack/intra/netstack.GICMPHandler)
/home/murtaza/bravehub/firestack/intra/netstack/netstack.go:40:1: NewEndpoint returns interface (github.com/celzero/firestack/intra/netstack.SeamlessEndpoint)
/home/murtaza/bravehub/firestack/intra/netstack/netstack.go:61:1: asSniffer returns interface (github.com/celzero/firestack/intra/netstack.SeamlessEndpoint)
ignoramous commented 5 months ago

multiserver:chooseAny, Volatile:Load/Swap is a type-generic fn.

/home/murtaza/bravehub/firestack/intra/dnscrypt/multiserver.go:86:1: chooseAny returns generic interface (T) of type param any
/home/murtaza/bravehub/firestack/intra/core/volatile.go:21:1: Load returns generic interface (T) of type param any
/home/murtaza/bravehub/firestack/intra/core/volatile.go:42:1: Swap returns generic interface (T) of type param any

multiserver:Get must confirm to backend.DNSTransport.

/home/murtaza/bravehub/firestack/intra/dnscrypt/multiserver.go:571:1: Get returns interface (github.com/celzero/firestack/intra/backend.DNSTransport)

backend exposes interfaces to kt/java:

/home/murtaza/bravehub/firestack/intra/backend/core_iptree.go:76:1: NewIpTree returns interface (github.com/celzero/firestack/intra/backend.IpTree)
/home/murtaza/bravehub/firestack/intra/backend/core_radixtree.go:46:1: NewRadixTree returns interface (github.com/celzero/firestack/intra/backend.RadixTree)
/home/murtaza/bravehub/firestack/intra/backend/ipn_pipkeygen.go:83:1: NewPipKey returns interface (github.com/celzero/firestack/intra/backend.PipKey)
/home/murtaza/bravehub/firestack/intra/backend/ipn_wgkeygen.go:61:1: Mult returns interface (github.com/celzero/firestack/intra/backend.WgKey)
/home/murtaza/bravehub/firestack/intra/backend/ipn_wgkeygen.go:76:1: NewWgPrivateKey returns interface (github.com/celzero/firestack/intra/backend.WgKey)
/home/murtaza/bravehub/firestack/intra/backend/ipn_wgkeygen.go:99:1: NewWgPrivateKeyOf returns interface (github.com/celzero/firestack/intra/backend.WgKey)

return value to a common interface; ex: dnsutil:ToIp6Hint may return either HTTPS or SVCB rr.

/home/murtaza/bravehub/firestack/intra/xdns/dnsutil.go:1062:1: ToIp6Hint returns interface (github.com/miekg/dns.RR)
...
/home/murtaza/bravehub/firestack/intra/ipn/proxy.go:26:1: AddProxy returns interface (github.com/celzero/firestack/intra/backend.Proxy)
/home/murtaza/bravehub/firestack/intra/ipn/proxy.go:30:1: addProxy returns interface (github.com/celzero/firestack/intra/ipn.Proxy)

... must conform to the interface contract.

/home/murtaza/bravehub/firestack/intra/rnet/servers.go:109:1: AddServer returns interface (github.com/celzero/firestack/intra/rnet.Server)
/home/murtaza/bravehub/firestack/intra/rnet/servers.go:176:1: GetServer returns interface (github.com/celzero/firestack/intra/rnet.Server)
...
/home/murtaza/bravehub/firestack/intra/dnsx/transport.go:172:1: Gateway returns interface (github.com/celzero/firestack/intra/dnsx.Gateway)
/home/murtaza/bravehub/firestack/intra/dnsx/transport.go:218:1: GetMult returns interface (github.com/celzero/firestack/intra/dnsx.TransportMult)
/home/murtaza/bravehub/firestack/intra/dnsx/transport.go:232:1: dcProxy returns interface (github.com/celzero/firestack/intra/dnsx.TransportMult)
/home/murtaza/bravehub/firestack/intra/dnsx/transport.go:236:1: Get returns interface (github.com/celzero/firestack/intra/backend.DNSTransport)
/home/murtaza/bravehub/firestack/intra/dnsx/transport.go:454:1: determineTransport returns interface (github.com/celzero/firestack/intra/dnsx.Transport)
...
/home/murtaza/bravehub/firestack/intra/ipn/base.go:94:1: Router returns interface (github.com/celzero/firestack/intra/backend.Router)
/home/murtaza/bravehub/firestack/intra/ipn/exit.go:102:1: Router returns interface (github.com/celzero/firestack/intra/backend.Router)
/home/murtaza/bravehub/firestack/intra/ipn/ground.go:62:1: Router returns interface (github.com/celzero/firestack/intra/backend.Router)
/home/murtaza/bravehub/firestack/intra/ipn/http1.go:123:1: Router returns interface (github.com/celzero/firestack/intra/backend.Router)
/home/murtaza/bravehub/firestack/intra/ipn/piph2.go:237:1: Router returns interface (github.com/celzero/firestack/intra/backend.Router)
/home/murtaza/bravehub/firestack/intra/ipn/pipws.go:173:1: Router returns interface (github.com/celzero/firestack/intra/backend.Router)
/home/murtaza/bravehub/firestack/intra/ipn/proxies.go:218:1: Router returns interface (github.com/celzero/firestack/intra/backend.Router)
/home/murtaza/bravehub/firestack/intra/ipn/socks5.go:196:1: Router returns interface (github.com/celzero/firestack/intra/backend.Router)
/home/murtaza/bravehub/firestack/intra/ipn/wgproxy.go:711:1: Router returns interface (github.com/celzero/firestack/intra/backend.Router)
...
/home/murtaza/bravehub/firestack/intra/dnsx/undelegated.go:164:1: newUndelegatedDomainsTrie returns interface (github.com/celzero/firestack/intra/backend.RadixTree)
...
/home/murtaza/bravehub/firestack/intra/dnsx/wall.go:67:1: GetRdnsLocal returns interface (github.com/celzero/firestack/intra/backend.RDNS)
/home/murtaza/bravehub/firestack/intra/dnsx/wall.go:78:1: GetRdnsRemote returns interface (github.com/celzero/firestack/intra/backend.RDNS)
...
/home/murtaza/bravehub/firestack/intra/ipn/wg/wgconn.go:74:1: ParseEndpoint returns interface (golang.zx2c4.com/wireguard/conn.Endpoint)
/home/murtaza/bravehub/firestack/intra/ipn/wg/wgconn.go:400:1: asEndpoint returns interface (golang.zx2c4.com/wireguard/conn.Endpoint)
/home/murtaza/bravehub/firestack/intra/ipn/wg/wgconn2.go:152:1: ParseEndpoint returns interface (golang.zx2c4.com/wireguard/conn.Endpoint)
...
/home/murtaza/bravehub/firestack/intra/ipn/proxies.go:200:1: ProxyFor returns interface (github.com/celzero/firestack/intra/ipn.Proxy)
/home/murtaza/bravehub/firestack/intra/ipn/proxies.go:214:1: GetProxy returns interface (github.com/celzero/firestack/intra/backend.Proxy)
...

cacher:NewCachingTransport is a decorator on interface dnsx.Transport and returns the same interface.

/home/murtaza/bravehub/firestack/intra/dnsx/cacher.go:88:1: NewDefaultCachingTransport returns interface (github.com/celzero/firestack/intra/dnsx.Transport)
/home/murtaza/bravehub/firestack/intra/dnsx/cacher.go:92:1: NewCachingTransport returns interface (github.com/celzero/firestack/intra/dnsx.Transport)