web-proxy rewrite
This commit is contained in:
parent
26c741ad03
commit
283fa1abc2
10 changed files with 63 additions and 134 deletions
|
|
@ -1,7 +1,6 @@
|
|||
using Insight.Domain.Interfaces;
|
||||
using Insight.Domain.Messages;
|
||||
using Insight.Domain.Messages.Agent;
|
||||
using Insight.Domain.Messages.Web;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using MongoDB.Driver;
|
||||
using Vaitr.Network;
|
||||
|
|
@ -26,25 +25,17 @@ public class ConsoleHandler : IMessageHandler<AgentSession>
|
|||
|
||||
public async ValueTask HandleAsync<TMessage>(AgentSession sender, TMessage message, CancellationToken cancellationToken) where TMessage : IMessage
|
||||
{
|
||||
if (message is ConsoleQuery consoleQuery)
|
||||
if (message is Proxy<ConsoleQuery> consoleResponse)
|
||||
{
|
||||
await OnConsoleQueryAsync(sender, consoleQuery, cancellationToken);
|
||||
await OnConsoleQueryAsync(sender, consoleResponse, cancellationToken);
|
||||
}
|
||||
}
|
||||
|
||||
private async ValueTask OnConsoleQueryAsync(AgentSession session, ConsoleQuery query, CancellationToken cancellationToken)
|
||||
private async ValueTask OnConsoleQueryAsync(AgentSession session, Proxy<ConsoleQuery> consoleResponse, CancellationToken cancellationToken)
|
||||
{
|
||||
// check if web online
|
||||
if (_webPool.FirstOrDefault().Value is not WebSession web) return;
|
||||
|
||||
await web.SendAsync(new ConsoleQueryProxy
|
||||
{
|
||||
Id = query.Id,
|
||||
HostId = query.HostId,
|
||||
Query = query.Query,
|
||||
Data = query.Data,
|
||||
Errors = query.Errors,
|
||||
HadErrors = query.HadErrors
|
||||
}, cancellationToken);
|
||||
await web.SendAsync(consoleResponse, cancellationToken);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
using Insight.Domain.Interfaces;
|
||||
using Insight.Domain.Messages;
|
||||
using Insight.Domain.Messages.Agent;
|
||||
using Insight.Domain.Messages.Web;
|
||||
using Insight.Infrastructure;
|
||||
using Insight.Infrastructure.Entities;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
|
@ -33,19 +32,18 @@ public class ConsoleProxyHandler : IMessageHandler<WebSession>
|
|||
_database = database;
|
||||
_bus = bus;
|
||||
_logger = logger;
|
||||
|
||||
_subscriptions.Add(_bus.SubscribeAsync<ConsoleQuery>(OnConsoleQueryAsync, null));
|
||||
}
|
||||
|
||||
public async ValueTask HandleAsync<TMessage>(WebSession sender, TMessage message, CancellationToken cancellationToken) where TMessage : IMessage
|
||||
{
|
||||
if (message is ConsoleQueryProxyRequest consoleRequest)
|
||||
if (message is Proxy<ConsoleQueryRequest> consoleRequest)
|
||||
{
|
||||
_logger.LogCritical("received: {0}" + consoleRequest.Message);
|
||||
await OnConsoleQueryRequestAsync(sender, consoleRequest, cancellationToken);
|
||||
}
|
||||
}
|
||||
|
||||
private async ValueTask OnConsoleQueryRequestAsync(WebSession session, ConsoleQueryProxyRequest request, CancellationToken cancellationToken)
|
||||
private async ValueTask OnConsoleQueryRequestAsync(WebSession session, Proxy<ConsoleQueryRequest> request, CancellationToken cancellationToken)
|
||||
{
|
||||
// get host
|
||||
var hostEntity = await _database.Host()
|
||||
|
|
@ -76,28 +74,7 @@ public class ConsoleProxyHandler : IMessageHandler<WebSession>
|
|||
// check if agent online
|
||||
if (_agentPool.FirstOrDefault(p => p.Value.Id == agentEntity.Id).Value is not AgentSession agent) return;
|
||||
|
||||
// send "real" packet to agent
|
||||
await agent.SendAsync(new ConsoleQueryRequest
|
||||
{
|
||||
Id = request.Id,
|
||||
HostId = request.HostId,
|
||||
Query = request.Query
|
||||
}, cancellationToken);
|
||||
}
|
||||
|
||||
private async ValueTask OnConsoleQueryAsync(ConsoleQuery query, CancellationToken cancellationToken)
|
||||
{
|
||||
// check if web online
|
||||
if (_webPool.FirstOrDefault().Value is not WebSession web) return;
|
||||
|
||||
await web.SendAsync(new ConsoleQueryProxy
|
||||
{
|
||||
Id = query.Id,
|
||||
HostId = query.HostId,
|
||||
Query = query.Query,
|
||||
Data = query.Data,
|
||||
Errors = query.Errors,
|
||||
HadErrors = query.HadErrors
|
||||
}, cancellationToken);
|
||||
// proxy-send request packet to agent
|
||||
await agent.SendAsync(request, cancellationToken);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue