func NewStatus(router *Router) *Status {
	return &Status{
		Protocol:           Protocol,
		ProtocolMinVersion: int(router.ProtocolMinVersion),
		ProtocolMaxVersion: ProtocolMaxVersion,
		Encryption:         router.usingPassword(),
		PeerDiscovery:      router.PeerDiscovery,
		Name:               router.Ourself.Name.String(),
		NickName:           router.Ourself.NickName,
		Port:               router.Port,
		Peers:              makePeerStatusSlice(router.Peers),
		UnicastRoutes:      makeUnicastRouteStatusSlice(router.Routes),
		BroadcastRoutes:    makeBroadcastRouteStatusSlice(router.Routes),
		Connections:        makeLocalConnectionStatusSlice(router.ConnectionMaker),
		TerminationCount:   router.ConnectionMaker.terminationCount,
		Targets:            router.ConnectionMaker.Targets(false),
		OverlayDiagnostics: router.Overlay.Diagnostics(),
		TrustedSubnets:     makeTrustedSubnetsSlice(router.TrustedSubnets),
	}
}
func NewStatus(router *Router) *Status {
	return &Status{
		Protocol:           Protocol,
		ProtocolMinVersion: int(router.ProtocolMinVersion),
		ProtocolMaxVersion: ProtocolMaxVersion,
		Encryption:         router.usingPassword(),
		PeerDiscovery:      router.PeerDiscovery,
		Name:               router.Ourself.Name.String(),
		NickName:           router.Ourself.NickName,
		Port:               router.Port,
		Peers:              makePeerStatusSlice(router.Peers),
		UnicastRoutes:      makeUnicastRouteStatusSlice(router.Routes),
		BroadcastRoutes:    makeBroadcastRouteStatusSlice(router.Routes),
		Connections:        makeLocalConnectionStatusSlice(router.ConnectionMaker),
		TerminationCount:   router.ConnectionMaker.terminationCount,
		Targets:            router.ConnectionMaker.Targets(false),
		OverlayDiagnostics: router.Overlay.Diagnostics(),
		TrustedSubnets:     makeTrustedSubnetsSlice(router.TrustedSubnets),
	}
}
func NewStatus ( router * Router ) * Status { return & Status { Protocol : Protocol , ProtocolMinVersion : int ( router . ProtocolMinVersion ) , ProtocolMaxVersion : ProtocolMaxVersion , Encryption : router . usingPassword ( ) , PeerDiscovery : router . PeerDiscovery , Name : router . Ourself . Name . String ( ) , NickName : router . Ourself . NickName , Port : router . Port , Peers : makePeerStatusSlice ( router . Peers ) , UnicastRoutes : makeUnicastRouteStatusSlice ( router . Routes ) , BroadcastRoutes : makeBroadcastRouteStatusSlice ( router . Routes ) , Connections : makeLocalConnectionStatusSlice ( router . ConnectionMaker ) , TerminationCount : router . ConnectionMaker . terminationCount , Targets : router . ConnectionMaker . Targets ( false ) , OverlayDiagnostics : router . Overlay . Diagnostics ( ) , TrustedSubnets : makeTrustedSubnetsSlice ( router . TrustedSubnets ) , } }
// NewStatus returns a Status object, taken as a snapshot from the router.
NewStatus returns a Status object taken as a snapshot from the router .