/
IPacketCapture.cs
33 lines (31 loc) · 1.09 KB
/
IPacketCapture.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
using System.Net;
using System.Net.Sockets;
using PacketDotNet;
using VpnHood.Common.Net;
namespace VpnHood.Client.Device;
public interface IPacketCapture : IDisposable
{
event EventHandler<PacketReceivedEventArgs> PacketReceivedFromInbound;
event EventHandler Stopped;
bool Started { get; }
bool IsDnsServersSupported { get; }
IPAddress[]? DnsServers { get; set; }
bool CanExcludeApps { get; }
bool CanIncludeApps { get; }
string[]? ExcludeApps { get; set; }
string[]? IncludeApps { get; set; }
IpNetwork[]? IncludeNetworks { get; set; }
bool IsMtuSupported { get; }
int Mtu { get; set; }
bool IsAddIpV6AddressSupported { get; }
bool AddIpV6Address { get; set; }
bool CanProtectSocket { get; }
bool CanSendPacketToOutbound { get; }
void StartCapture();
void StopCapture();
void ProtectSocket(Socket socket);
void SendPacketToInbound(IPPacket ipPacket);
void SendPacketToInbound(IEnumerable<IPPacket> packets);
void SendPacketToOutbound(IPPacket ipPacket);
void SendPacketToOutbound(IEnumerable<IPPacket> ipPackets);
}