refactor (networking)
This commit is contained in:
parent
febc4d9488
commit
450a6f2796
153 changed files with 7834 additions and 8004 deletions
|
|
@ -1,10 +1,10 @@
|
|||
using Insight.Agent.Extensions;
|
||||
using Insight.Agent.Interfaces;
|
||||
using Insight.Agent.Messages;
|
||||
using Insight.Agent.Network;
|
||||
using Insight.Agent.Network.Handlers;
|
||||
using Insight.Agent.Services;
|
||||
using Insight.Domain.Constants;
|
||||
using Insight.Domain.Interfaces;
|
||||
using Insight.Domain.Messages;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
|
|
@ -12,86 +12,85 @@ using Microsoft.Extensions.Logging;
|
|||
using Vaitr.Network;
|
||||
using Vaitr.Network.Hosting;
|
||||
|
||||
namespace Insight.Agent.Windows
|
||||
namespace Insight.Agent.Windows;
|
||||
|
||||
internal class Program
|
||||
{
|
||||
internal class Program
|
||||
public static async Task Main(string[] args)
|
||||
{
|
||||
public static async Task Main(string[] args)
|
||||
var builder = Host.CreateDefaultBuilder(args);
|
||||
builder.UseWindowsService();
|
||||
builder.UseSystemd();
|
||||
|
||||
builder.ConfigureAppConfiguration(config =>
|
||||
{
|
||||
var builder = Host.CreateDefaultBuilder(args);
|
||||
builder.UseWindowsService();
|
||||
builder.UseSystemd();
|
||||
config.Defaults();
|
||||
});
|
||||
|
||||
builder.ConfigureAppConfiguration(config =>
|
||||
builder.ConfigureLogging(options =>
|
||||
{
|
||||
options.ClearProviders();
|
||||
options.SetMinimumLevel(LogLevel.Trace);
|
||||
|
||||
options.AddSimpleConsole(options =>
|
||||
{
|
||||
config.Defaults();
|
||||
options.IncludeScopes = true;
|
||||
options.SingleLine = true;
|
||||
options.TimestampFormat = "yyyy-MM-dd HH:mm:ss.fff ";
|
||||
});
|
||||
|
||||
builder.ConfigureLogging(options =>
|
||||
options.AddFile($"{Configuration.AppDirectory?.FullName}/" + "logs/agent_{Date}.log", LogLevel.Trace, fileSizeLimitBytes: 104857600, retainedFileCountLimit: 10, outputTemplate: "{Timestamp:o} [{Level:u3}] {Message} {NewLine}{Exception}");
|
||||
});
|
||||
|
||||
builder.ConfigureServices((host, services) =>
|
||||
{
|
||||
// SERVICES
|
||||
services.AddHostedService<UpdateService>();
|
||||
services.AddHostedService<TrapService>();
|
||||
|
||||
// SERVICES (WINDOWS)
|
||||
if (OperatingSystem.IsWindows()) services.AddHostedService<EventService>();
|
||||
|
||||
// AGENT NETWORKING
|
||||
services.UseHostedClient<AgentSession, IMessage>(options =>
|
||||
{
|
||||
options.ClearProviders();
|
||||
options.SetMinimumLevel(LogLevel.Trace);
|
||||
options.Host = host.Configuration.GetValue<string?>(Appsettings.ServerHost) ?? throw new Exception($"{Appsettings.ServerHost} value not set (appsettings)");
|
||||
options.Port = host.Configuration.GetValue<int?>(Appsettings.ServerPort) ?? throw new Exception($"{Appsettings.ServerPort} value not set (appsettings)");
|
||||
options.Keepalive = 10000;
|
||||
options.Timeout = 30000;
|
||||
options.Encryption = Encryption.Tls12;
|
||||
|
||||
options.AddSimpleConsole(options =>
|
||||
{
|
||||
options.IncludeScopes = true;
|
||||
options.SingleLine = true;
|
||||
options.TimestampFormat = "yyyy-MM-dd HH:mm:ss.fff ";
|
||||
});
|
||||
|
||||
options.AddFile($"{Configuration.AppDirectory?.FullName}/" + "logs/agent_{Date}.log", LogLevel.Trace, fileSizeLimitBytes: 104857600, retainedFileCountLimit: 10, outputTemplate: "{Timestamp:o} [{Level:u3}] {Message} {NewLine}{Exception}");
|
||||
options.UseSerializer<MemPackSerializer<IMessage>, IMessage>();
|
||||
});
|
||||
|
||||
builder.ConfigureServices((host, services) =>
|
||||
services.AddSingleton<IMessageHandler<AgentSession>, AuthenticationHandler>();
|
||||
services.AddSingleton<IMessageHandler<AgentSession>, DriveHandler>();
|
||||
services.AddSingleton<IMessageHandler<AgentSession>, InterfaceHandler>();
|
||||
services.AddSingleton<IMessageHandler<AgentSession>, MainboardHandler>();
|
||||
services.AddSingleton<IMessageHandler<AgentSession>, MemoryHandler>();
|
||||
services.AddSingleton<IMessageHandler<AgentSession>, OperationSystemHandler>();
|
||||
services.AddSingleton<IMessageHandler<AgentSession>, PrinterHandler>();
|
||||
services.AddSingleton<IMessageHandler<AgentSession>, ProcessorHandler>();
|
||||
services.AddSingleton<IMessageHandler<AgentSession>, ServiceHandler>();
|
||||
services.AddSingleton<IMessageHandler<AgentSession>, SessionHandler>();
|
||||
services.AddSingleton<IMessageHandler<AgentSession>, SoftwareHandler>();
|
||||
services.AddSingleton<IMessageHandler<AgentSession>, StoragePoolHandler>();
|
||||
services.AddSingleton<IMessageHandler<AgentSession>, SystemInfoHandler>();
|
||||
services.AddSingleton<IMessageHandler<AgentSession>, UpdateHandler>();
|
||||
services.AddSingleton<IMessageHandler<AgentSession>, UserHandler>();
|
||||
services.AddSingleton<IMessageHandler<AgentSession>, VideocardHandler>();
|
||||
services.AddSingleton<IMessageHandler<AgentSession>, VirtualMaschineHandler>();
|
||||
services.AddSingleton<IMessageHandler<AgentSession>, ConsoleHandler>();
|
||||
|
||||
// GLOBAL DEPENDENCIES
|
||||
services.AddTransient(provider => new HttpClient(new HttpClientHandler
|
||||
{
|
||||
// SERVICES
|
||||
services.AddHostedService<UpdateService>();
|
||||
services.AddHostedService<TrapService>();
|
||||
ClientCertificateOptions = ClientCertificateOption.Manual,
|
||||
ServerCertificateCustomValidationCallback = (httpRequestMessage, cert, cetChain, policyErrors) => true
|
||||
}));
|
||||
});
|
||||
|
||||
// SERVICES (WINDOWS)
|
||||
if (OperatingSystem.IsWindows()) services.AddHostedService<EventService>();
|
||||
|
||||
// AGENT NETWORKING
|
||||
services.UseHostedClient<AgentSession, IAgentMessage>(options =>
|
||||
{
|
||||
options.Host = host.Configuration.GetValue<string?>(Appsettings.ServerHost) ?? throw new Exception($"{Appsettings.ServerHost} value not set (appsettings)");
|
||||
options.Port = host.Configuration.GetValue<int?>(Appsettings.ServerPort) ?? throw new Exception($"{Appsettings.ServerPort} value not set (appsettings)");
|
||||
options.Keepalive = 10000;
|
||||
options.Timeout = 30000;
|
||||
options.Encryption = Encryption.Tls12;
|
||||
|
||||
options.UseSerializer<MemPackSerializer<IAgentMessage>, IAgentMessage>();
|
||||
});
|
||||
|
||||
services.AddSingleton<IAgentMessageHandler<AgentSession>, AuthenticationHandler>();
|
||||
services.AddSingleton<IAgentMessageHandler<AgentSession>, DriveHandler>();
|
||||
services.AddSingleton<IAgentMessageHandler<AgentSession>, InterfaceHandler>();
|
||||
services.AddSingleton<IAgentMessageHandler<AgentSession>, MainboardHandler>();
|
||||
services.AddSingleton<IAgentMessageHandler<AgentSession>, MemoryHandler>();
|
||||
services.AddSingleton<IAgentMessageHandler<AgentSession>, OperationSystemHandler>();
|
||||
services.AddSingleton<IAgentMessageHandler<AgentSession>, PrinterHandler>();
|
||||
services.AddSingleton<IAgentMessageHandler<AgentSession>, ProcessorHandler>();
|
||||
services.AddSingleton<IAgentMessageHandler<AgentSession>, ServiceHandler>();
|
||||
services.AddSingleton<IAgentMessageHandler<AgentSession>, SessionHandler>();
|
||||
services.AddSingleton<IAgentMessageHandler<AgentSession>, SoftwareHandler>();
|
||||
services.AddSingleton<IAgentMessageHandler<AgentSession>, StoragePoolHandler>();
|
||||
services.AddSingleton<IAgentMessageHandler<AgentSession>, SystemInfoHandler>();
|
||||
services.AddSingleton<IAgentMessageHandler<AgentSession>, UpdateHandler>();
|
||||
services.AddSingleton<IAgentMessageHandler<AgentSession>, UserHandler>();
|
||||
services.AddSingleton<IAgentMessageHandler<AgentSession>, VideocardHandler>();
|
||||
services.AddSingleton<IAgentMessageHandler<AgentSession>, VirtualMaschineHandler>();
|
||||
services.AddSingleton<IAgentMessageHandler<AgentSession>, ConsoleHandler>();
|
||||
|
||||
// GLOBAL DEPENDENCIES
|
||||
services.AddTransient(provider => new HttpClient(new HttpClientHandler
|
||||
{
|
||||
ClientCertificateOptions = ClientCertificateOption.Manual,
|
||||
ServerCertificateCustomValidationCallback = (httpRequestMessage, cert, cetChain, policyErrors) => true
|
||||
}));
|
||||
});
|
||||
|
||||
var host = builder.Build();
|
||||
await host.RunAsync().ConfigureAwait(false);
|
||||
}
|
||||
var host = builder.Build();
|
||||
await host.RunAsync().ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue