mirror of https://github.com/infosecn1nja/C3.git
36 lines
1.2 KiB
C#
36 lines
1.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Hosting;
|
|
using FSecure.C3.Comms;
|
|
using FSecure.C3.WebController.Models;
|
|
|
|
namespace FSecure.C3.WebController.Comms
|
|
{
|
|
public partial class GatewayConnectionHandler
|
|
{
|
|
private ulong gatewayId;
|
|
private CancellationTokenSource selfCTS;
|
|
private CancellationTokenSource anyCTS;
|
|
private Task SendingTask;
|
|
private Task ReceivingTask;
|
|
private readonly IServiceProvider Services;
|
|
private MessageFramingTcpClient tcpClient;
|
|
CommandQueues commandQueues;
|
|
|
|
public GatewayConnectionHandler(MessageFramingTcpClient client, IServiceProvider services, CancellationToken ct)
|
|
{
|
|
tcpClient = client;
|
|
Services = services;
|
|
commandQueues = services.GetRequiredService<CommandQueues>();
|
|
selfCTS = new CancellationTokenSource();
|
|
anyCTS = CancellationTokenSource.CreateLinkedTokenSource(selfCTS.Token, ct);
|
|
ReceivingTask = StartReceivingTask();
|
|
// Sending task is started after correctly receiving first message
|
|
}
|
|
}
|
|
}
|