Commit ec2e5e6e authored by Brickner_cp's avatar Brickner_cp

Added Extension Method for PacketCommunicator to work with IEnumerable (and LINQ).

parent abe59ac1
...@@ -21,9 +21,11 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SendingPacketsUsingSendBuff ...@@ -21,9 +21,11 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SendingPacketsUsingSendBuff
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GatheringStatisticsOnTheNetworkTraffic", "GatheringStatisticsOnTheNetworkTraffic\GatheringStatisticsOnTheNetworkTraffic.csproj", "{76C60DD0-9E5C-40E5-9EE5-B820978824A5}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GatheringStatisticsOnTheNetworkTraffic", "GatheringStatisticsOnTheNetworkTraffic\GatheringStatisticsOnTheNetworkTraffic.csproj", "{76C60DD0-9E5C-40E5-9EE5-B820978824A5}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UsingLinq", "UsingLinq\UsingLinq.csproj", "{8E6F9FAC-0C41-49D9-8F90-B1DC61858BCE}"
EndProject
Global Global
GlobalSection(TeamFoundationVersionControl) = preSolution GlobalSection(TeamFoundationVersionControl) = preSolution
SccNumberOfProjects = 11 SccNumberOfProjects = 12
SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C} SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
SccTeamFoundationServer = https://tfs06.codeplex.com/ SccTeamFoundationServer = https://tfs06.codeplex.com/
SccLocalPath0 = . SccLocalPath0 = .
...@@ -57,6 +59,9 @@ Global ...@@ -57,6 +59,9 @@ Global
SccProjectUniqueName10 = GatheringStatisticsOnTheNetworkTraffic\\GatheringStatisticsOnTheNetworkTraffic.csproj SccProjectUniqueName10 = GatheringStatisticsOnTheNetworkTraffic\\GatheringStatisticsOnTheNetworkTraffic.csproj
SccProjectName10 = GatheringStatisticsOnTheNetworkTraffic SccProjectName10 = GatheringStatisticsOnTheNetworkTraffic
SccLocalPath10 = GatheringStatisticsOnTheNetworkTraffic SccLocalPath10 = GatheringStatisticsOnTheNetworkTraffic
SccProjectUniqueName11 = UsingLinq\\UsingLinq.csproj
SccProjectName11 = UsingLinq
SccLocalPath11 = UsingLinq
EndGlobalSection EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
...@@ -103,6 +108,10 @@ Global ...@@ -103,6 +108,10 @@ Global
{76C60DD0-9E5C-40E5-9EE5-B820978824A5}.Debug|Any CPU.Build.0 = Debug|Any CPU {76C60DD0-9E5C-40E5-9EE5-B820978824A5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{76C60DD0-9E5C-40E5-9EE5-B820978824A5}.Release|Any CPU.ActiveCfg = Release|Any CPU {76C60DD0-9E5C-40E5-9EE5-B820978824A5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{76C60DD0-9E5C-40E5-9EE5-B820978824A5}.Release|Any CPU.Build.0 = Release|Any CPU {76C60DD0-9E5C-40E5-9EE5-B820978824A5}.Release|Any CPU.Build.0 = Release|Any CPU
{8E6F9FAC-0C41-49D9-8F90-B1DC61858BCE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8E6F9FAC-0C41-49D9-8F90-B1DC61858BCE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8E6F9FAC-0C41-49D9-8F90-B1DC61858BCE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8E6F9FAC-0C41-49D9-8F90-B1DC61858BCE}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
......
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using PcapDotNet.Core;
using PcapDotNet.Core.Extensions;
using PcapDotNet.Packets;
using PcapDotNet.Packets.IpV4;
using PcapDotNet.Packets.Transport;
namespace UsingLinq
{
class Program
{
static void Main(string[] args)
{
// Retrieve the device list from the local machine
IList<LivePacketDevice> allDevices = LivePacketDevice.AllLocalMachine;
if (allDevices.Count == 0)
{
Console.WriteLine("No interfaces found! Make sure WinPcap is installed.");
return;
}
// Print the list
for (int i = 0; i != allDevices.Count; ++i)
{
LivePacketDevice device = allDevices[i];
Console.Write((i + 1) + ". " + device.Name);
if (device.Description != null)
Console.WriteLine(" (" + device.Description + ")");
else
Console.WriteLine(" (No description available)");
}
int deviceIndex = 0;
do
{
Console.WriteLine("Enter the interface number (1-" + allDevices.Count + "):");
string deviceIndexString = Console.ReadLine();
if (!int.TryParse(deviceIndexString, out deviceIndex) ||
deviceIndex < 1 || deviceIndex > allDevices.Count)
{
deviceIndex = 0;
}
} while (deviceIndex == 0);
// Take the selected adapter
PacketDevice selectedDevice = allDevices[deviceIndex - 1];
// Open the device
using (PacketCommunicator communicator =
selectedDevice.Open(65536, // portion of the packet to capture
// 65536 guarantees that the whole packet will be captured on all the link layers
PacketDeviceOpenAttributes.Promiscuous, // promiscuous mode
1000)) // read timeout
{
// Check the link layer. We support only Ethernet for simplicity.
if (communicator.DataLink.Kind != DataLinkKind.Ethernet)
{
Console.WriteLine("This program works only on Ethernet networks.");
return;
}
// Compile and set the filter
communicator.SetFilter("ip and tcp");
Console.WriteLine("Listening on " + selectedDevice.Description + "...");
// start the capture
var query = from packet in communicator.ReceivePackets(100)
where packet.Ethernet.IpV4.Tcp.Options.Count != 0
select new {packet.Timestamp, packet.Ethernet.IpV4.Tcp.Options};
foreach (var options in query)
Console.WriteLine(options.Timestamp.ToString("yyyy-MM-dd hh:mm:ss.fff") + " options: " + options.Options);
}
}
}
}
\ No newline at end of file
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("UsingLinq")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("UsingLinq")]
[assembly: AssemblyCopyright("Copyright © 2009")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("5f90fe81-7220-4fd0-bb95-f76e8f2748f0")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.21022</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{8E6F9FAC-0C41-49D9-8F90-B1DC61858BCE}</ProjectGuid>
<OutputType>Exe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>UsingLinq</RootNamespace>
<AssemblyName>UsingLinq</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="PcapDotNet.Base, Version=0.2.0.18201, Culture=neutral, PublicKeyToken=58cf32d85728e684, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\3rdParty\PcapDotNet\PcapDotNet.Base.dll</HintPath>
</Reference>
<Reference Include="PcapDotNet.Core, Version=0.2.0.18220, Culture=neutral, PublicKeyToken=58cf32d85728e684, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\3rdParty\PcapDotNet\PcapDotNet.Core.dll</HintPath>
</Reference>
<Reference Include="PcapDotNet.Core.Extensions, Version=0.2.0.32542, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\3rdParty\PcapDotNet\PcapDotNet.Core.Extensions.dll</HintPath>
</Reference>
<Reference Include="PcapDotNet.Packets, Version=0.2.0.18203, Culture=neutral, PublicKeyToken=58cf32d85728e684, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\3rdParty\PcapDotNet\PcapDotNet.Packets.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data.DataSetExtensions">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
\ No newline at end of file
""
{
"FILE_VERSION" = "9237"
"ENLISTMENT_CHOICE" = "NEVER"
"PROJECT_FILE_RELATIVE_PATH" = ""
"NUMBER_OF_EXCLUDED_FILES" = "0"
"ORIGINAL_PROJECT_FILE_PATH" = ""
"NUMBER_OF_NESTED_PROJECTS" = "0"
"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using PcapDotNet.Packets;
namespace PcapDotNet.Core.Extensions
{
/// <summary>
/// Different extension methods for PacketCommunicator class.
/// <seealso cref="PacketCommunicator"/>
/// </summary>
public static class MorePacketCommunicator
{
/// <summary>
/// Collect a group of packets.
/// Similar to ReceivePackets() except instead of calling a callback the packets are returned as an IEnumerable.
/// <seealso cref="PacketCommunicator.ReceivePackets"/>
/// <seealso cref="PacketCommunicator.ReceiveSomePackets"/>
/// </summary>
/// <param name="communicator">The PacketCommunicator to work on</param>
/// <param name="count">Number of packets to process. A negative count causes ReceivePackets() to loop until the IEnumerable break (or until an error occurs).</param>
/// <returns>An IEnumerable of Packets to process.</returns>
/// <exception cref="System.InvalidOperationException">Thrown if the mode is not Capture or an error occurred.</exception>
/// <remarks>
/// <para>Only the first bytes of data from the packet might be in the received packet (which won't necessarily be the entire packet; to capture the entire packet, you will have to provide a value for snapshortLength in your call to PacketDevice.Open() that is sufficiently large to get all of the packet's data - a value of 65536 should be sufficient on most if not all networks).</para>
/// <para>If a break is called on the returned Enumerable before the number of packets asked for received, the packet that was handled while breaking the enumerable may not be the last packet read. More packets might be read. This is because this method actually loops over calls to ReceiveSomePackets()</para>
/// </remarks>
public static IEnumerable<Packet> ReceivePackets(this PacketCommunicator communicator, int count)
{
List<Packet> packets = new List<Packet>();
while (count != 0)
{
packets.Clear();
int countGot;
PacketCommunicatorReceiveResult result = communicator.ReceiveSomePackets(out countGot, count, packets.Add);
if (count > 0)
count -= countGot;
foreach (Packet packet in packets)
yield return packet;
if (result != PacketCommunicatorReceiveResult.Ok)
break;
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.21022</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{322040C2-3DC1-4D0C-8E0F-F05290AFE023}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>PcapDotNet.Core.Extensions</RootNamespace>
<AssemblyName>PcapDotNet.Core.Extensions</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\PcapDotNet.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\bin\Debug\</OutputPath>
<DefineConstants>TRACE;DEBUG;CODE_ANALYSIS</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<DocumentationFile>..\..\bin\Debug\PcapDotNet.Core.Extensions.XML</DocumentationFile>
<RunCodeAnalysis>true</RunCodeAnalysis>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>..\..\bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<DocumentationFile>..\..\bin\Release\PcapDotNet.Core.Extensions.XML</DocumentationFile>
<RunCodeAnalysis>true</RunCodeAnalysis>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data.DataSetExtensions">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="MorePacketCommunicator.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\PcapDotNet.Core\PcapDotNet.Core.vcproj">
<Project>{89C63BE1-AF9A-472E-B256-A4F56B1655A7}</Project>
<Name>PcapDotNet.Core</Name>
</ProjectReference>
<ProjectReference Include="..\PcapDotNet.Packets\PcapDotNet.Packets.csproj">
<Project>{8A184AF5-E46C-482C-81A3-76D8CE290104}</Project>
<Name>PcapDotNet.Packets</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="..\PcapDotNet.snk" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<PropertyGroup>
<PreBuildEvent>if not exist "$(SolutionDir)$(SolutionName).snk" ("%25PROGRAMFILES%25\Microsoft SDKs\Windows\v6.0A\bin\sn.exe" -k "$(SolutionDir)$(SolutionName).snk")</PreBuildEvent>
<PostBuildEvent>cd $(OutDir)
zip Pcap.Net.Binary.zip $(TargetFileName) $(ProjectName).pdb $(ProjectName).xml</PostBuildEvent>
</PropertyGroup>
</Project>
\ No newline at end of file
""
{
"FILE_VERSION" = "9237"
"ENLISTMENT_CHOICE" = "NEVER"
"PROJECT_FILE_RELATIVE_PATH" = ""
"NUMBER_OF_EXCLUDED_FILES" = "0"
"ORIGINAL_PROJECT_FILE_PATH" = ""
"NUMBER_OF_NESTED_PROJECTS" = "0"
"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
}
using System;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("PcapDotNet.Core.Extensions")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("PcapDotNet.Core.Extensions")]
[assembly: AssemblyCopyright("Copyright © 2009")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("631bc7af-5ed0-4af6-ba1d-7195ef78021b")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("0.2.0.*")]
[assembly: AssemblyFileVersion("0.2.0.0")]
[assembly: CLSCompliant(false)]
...@@ -24,9 +24,11 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PcapDotNet.Base.Test", "Pca ...@@ -24,9 +24,11 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PcapDotNet.Base.Test", "Pca
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PcapDotNet.Core", "PcapDotNet.Core\PcapDotNet.Core.vcproj", "{89C63BE1-AF9A-472E-B256-A4F56B1655A7}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PcapDotNet.Core", "PcapDotNet.Core\PcapDotNet.Core.vcproj", "{89C63BE1-AF9A-472E-B256-A4F56B1655A7}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PcapDotNet.Core.Extensions", "PcapDotNet.Core.Extensions\PcapDotNet.Core.Extensions.csproj", "{322040C2-3DC1-4D0C-8E0F-F05290AFE023}"
EndProject
Global Global
GlobalSection(TeamFoundationVersionControl) = preSolution GlobalSection(TeamFoundationVersionControl) = preSolution
SccNumberOfProjects = 9 SccNumberOfProjects = 10
SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C} SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
SccTeamFoundationServer = https://tfs06.codeplex.com/ SccTeamFoundationServer = https://tfs06.codeplex.com/
SccLocalPath0 = . SccLocalPath0 = .
...@@ -54,6 +56,9 @@ Global ...@@ -54,6 +56,9 @@ Global
SccProjectUniqueName8 = PcapDotNet.Core\\PcapDotNet.Core.vcproj SccProjectUniqueName8 = PcapDotNet.Core\\PcapDotNet.Core.vcproj
SccProjectName8 = PcapDotNet.Core SccProjectName8 = PcapDotNet.Core
SccLocalPath8 = PcapDotNet.Core SccLocalPath8 = PcapDotNet.Core
SccProjectUniqueName9 = PcapDotNet.Core.Extensions\\PcapDotNet.Core.Extensions.csproj
SccProjectName9 = PcapDotNet.Core.Extensions
SccLocalPath9 = PcapDotNet.Core.Extensions
EndGlobalSection EndGlobalSection
GlobalSection(TestCaseManagementSettings) = postSolution GlobalSection(TestCaseManagementSettings) = postSolution
CategoryFile = PcapDotNet.vsmdi CategoryFile = PcapDotNet.vsmdi
...@@ -159,6 +164,16 @@ Global ...@@ -159,6 +164,16 @@ Global
{89C63BE1-AF9A-472E-B256-A4F56B1655A7}.Release|Mixed Platforms.Build.0 = Release|Win32 {89C63BE1-AF9A-472E-B256-A4F56B1655A7}.Release|Mixed Platforms.Build.0 = Release|Win32
{89C63BE1-AF9A-472E-B256-A4F56B1655A7}.Release|Win32.ActiveCfg = Release|Win32 {89C63BE1-AF9A-472E-B256-A4F56B1655A7}.Release|Win32.ActiveCfg = Release|Win32
{89C63BE1-AF9A-472E-B256-A4F56B1655A7}.Release|Win32.Build.0 = Release|Win32 {89C63BE1-AF9A-472E-B256-A4F56B1655A7}.Release|Win32.Build.0 = Release|Win32
{322040C2-3DC1-4D0C-8E0F-F05290AFE023}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{322040C2-3DC1-4D0C-8E0F-F05290AFE023}.Debug|Any CPU.Build.0 = Debug|Any CPU
{322040C2-3DC1-4D0C-8E0F-F05290AFE023}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{322040C2-3DC1-4D0C-8E0F-F05290AFE023}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{322040C2-3DC1-4D0C-8E0F-F05290AFE023}.Debug|Win32.ActiveCfg = Debug|Any CPU
{322040C2-3DC1-4D0C-8E0F-F05290AFE023}.Release|Any CPU.ActiveCfg = Release|Any CPU
{322040C2-3DC1-4D0C-8E0F-F05290AFE023}.Release|Any CPU.Build.0 = Release|Any CPU
{322040C2-3DC1-4D0C-8E0F-F05290AFE023}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{322040C2-3DC1-4D0C-8E0F-F05290AFE023}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{322040C2-3DC1-4D0C-8E0F-F05290AFE023}.Release|Win32.ActiveCfg = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment