/// <summary> /// Initializes a new instance of the <see cref="WhitelistManager"/> class. /// </summary> /// <param name="dateTimeProvider">The provider for datetime.</param> /// <param name="loggerFactory">The factory to create the logger.</param> /// <param name="peerAddressManager">The manager implementation for peer addresses.</param> /// <param name="dnsServer">The DNS server.</param> /// <param name="connectionSettings">The connection settings.</param> public WhitelistManager(IDateTimeProvider dateTimeProvider, ILoggerFactory loggerFactory, IPeerAddressManager peerAddressManager, IDnsServer dnsServer, ConnectionManagerSettings connectionSettings, DnsSettings dnsSettings) { Guard.NotNull(dateTimeProvider, nameof(dateTimeProvider)); Guard.NotNull(loggerFactory, nameof(loggerFactory)); Guard.NotNull(peerAddressManager, nameof(peerAddressManager)); Guard.NotNull(dnsServer, nameof(dnsServer)); Guard.NotNull(dnsSettings, nameof(dnsSettings)); Guard.NotNull(connectionSettings, nameof(connectionSettings)); this.dateTimeProvider = dateTimeProvider; this.logger = loggerFactory.CreateLogger(this.GetType().FullName); this.peerAddressManager = peerAddressManager; this.dnsServer = dnsServer; this.dnsSettings = dnsSettings; this.externalEndpoint = connectionSettings.ExternalEndpoint; }
/// <summary> /// Initializes a new instance of the <see cref="DnsFeature"/> class. /// </summary> /// <param name="dnsServer">The DNS server.</param> /// <param name="whitelistManager">The whitelist manager.</param> /// <param name="loggerFactory">The factory to create the logger.</param> /// <param name="nodeLifetime">The node lifetime object used for graceful shutdown.</param> /// <param name="nodeSettings">The node settings object containing node configuration.</param> /// <param name="dataFolders">The data folders of the system.</param> /// <param name="asyncLoopFactory">The asynchronous loop factory.</param> public DnsFeature(IDnsServer dnsServer, IWhitelistManager whitelistManager, ILoggerFactory loggerFactory, INodeLifetime nodeLifetime, DnsSettings dnsSettings, NodeSettings nodeSettings, DataFolder dataFolders, IAsyncLoopFactory asyncLoopFactory) { Guard.NotNull(dnsServer, nameof(dnsServer)); Guard.NotNull(whitelistManager, nameof(whitelistManager)); Guard.NotNull(loggerFactory, nameof(loggerFactory)); Guard.NotNull(nodeLifetime, nameof(nodeLifetime)); Guard.NotNull(nodeSettings, nameof(nodeSettings)); Guard.NotNull(dataFolders, nameof(dataFolders)); Guard.NotNull(asyncLoopFactory, nameof(asyncLoopFactory)); this.dnsServer = dnsServer; this.whitelistManager = whitelistManager; this.logger = loggerFactory.CreateLogger(this.GetType().FullName); this.asyncLoopFactory = asyncLoopFactory; this.nodeLifetime = nodeLifetime; this.nodeSettings = nodeSettings; this.dnsSettings = dnsSettings; this.dataFolders = dataFolders; }
/// <summary> /// Initializes a new instance of the <see cref="DnsSeedServer"/> class with the port to listen on. /// </summary> /// <param name="client">The UDP client to use to receive DNS requests and send DNS responses.</param> /// <param name="masterFile">The initial DNS masterfile.</param> /// <param name="asyncLoopFactory">The async loop factory.</param> /// <param name="loggerFactory">The logger factory.</param> /// <param name="dateTimeProvider">The <see cref="DateTime"/> provider.</param> /// <param name="dataFolders">The data folders of the system.</param> public DnsSeedServer(IUdpClient client, IMasterFile masterFile, IAsyncLoopFactory asyncLoopFactory, INodeLifetime nodeLifetime, ILoggerFactory loggerFactory, IDateTimeProvider dateTimeProvider, DnsSettings dnsSettings, DataFolder dataFolders) { Guard.NotNull(client, nameof(client)); Guard.NotNull(masterFile, nameof(masterFile)); Guard.NotNull(asyncLoopFactory, nameof(asyncLoopFactory)); Guard.NotNull(nodeLifetime, nameof(nodeLifetime)); Guard.NotNull(loggerFactory, nameof(loggerFactory)); Guard.NotNull(dateTimeProvider, nameof(dateTimeProvider)); Guard.NotNull(dnsSettings, nameof(dnsSettings)); Guard.NotNull(dataFolders, nameof(dataFolders)); this.udpClient = client; this.masterFile = masterFile; this.asyncLoopFactory = asyncLoopFactory; this.nodeLifetime = nodeLifetime; this.logger = loggerFactory.CreateLogger(this.GetType().FullName); this.dateTimeProvider = dateTimeProvider; this.dnsSettings = dnsSettings; this.dataFolders = dataFolders; this.metrics = new DnsMetric(); }
/// <summary> /// Prints command-line help. /// </summary> /// <param name="network">The network to extract values from.</param> public static void PrintHelp(Network network) { DnsSettings.PrintHelp(network); }