Moved NTFileSystemAdapter to SMBLibrary.Adapters

This commit is contained in:
TalAloni 2020-12-25 15:47:45 +02:00
parent f1c34e9b14
commit 7a31435531
16 changed files with 147 additions and 43 deletions

View file

@ -1,4 +1,4 @@
/* Copyright (C) 2014 Tal Aloni <tal.aloni.il@gmail.com>. All rights reserved. /* Copyright (C) 2014-2020 Tal Aloni <tal.aloni.il@gmail.com>. All rights reserved.
* *
* You can redistribute this program and/or modify it under the terms of * You can redistribute this program and/or modify it under the terms of
* the GNU Lesser Public License as published by the Free Software Foundation, * the GNU Lesser Public License as published by the Free Software Foundation,
@ -11,7 +11,7 @@ using System.Reflection;
using System.Text; using System.Text;
using Utilities; using Utilities;
namespace SMBLibrary namespace SMBLibrary.Adapters
{ {
public class IOExceptionHelper public class IOExceptionHelper
{ {

View file

@ -1,4 +1,4 @@
/* Copyright (C) 2014-2018 Tal Aloni <tal.aloni.il@gmail.com>. All rights reserved. /* Copyright (C) 2014-2020 Tal Aloni <tal.aloni.il@gmail.com>. All rights reserved.
* *
* You can redistribute this program and/or modify it under the terms of * You can redistribute this program and/or modify it under the terms of
* the GNU Lesser Public License as published by the Free Software Foundation, * the GNU Lesser Public License as published by the Free Software Foundation,
@ -10,7 +10,7 @@ using System.IO;
using DiskAccessLibrary.FileSystems.Abstractions; using DiskAccessLibrary.FileSystems.Abstractions;
using Utilities; using Utilities;
namespace SMBLibrary namespace SMBLibrary.Adapters
{ {
public partial class NTFileSystemAdapter public partial class NTFileSystemAdapter
{ {

View file

@ -1,4 +1,4 @@
/* Copyright (C) 2014-2018 Tal Aloni <tal.aloni.il@gmail.com>. All rights reserved. /* Copyright (C) 2014-2020 Tal Aloni <tal.aloni.il@gmail.com>. All rights reserved.
* *
* You can redistribute this program and/or modify it under the terms of * You can redistribute this program and/or modify it under the terms of
* the GNU Lesser Public License as published by the Free Software Foundation, * the GNU Lesser Public License as published by the Free Software Foundation,
@ -10,7 +10,7 @@ using System.IO;
using DiskAccessLibrary.FileSystems.Abstractions; using DiskAccessLibrary.FileSystems.Abstractions;
using Utilities; using Utilities;
namespace SMBLibrary namespace SMBLibrary.Adapters
{ {
public partial class NTFileSystemAdapter public partial class NTFileSystemAdapter
{ {

View file

@ -1,4 +1,4 @@
/* Copyright (C) 2014-2017 Tal Aloni <tal.aloni.il@gmail.com>. All rights reserved. /* Copyright (C) 2014-2020 Tal Aloni <tal.aloni.il@gmail.com>. All rights reserved.
* *
* You can redistribute this program and/or modify it under the terms of * You can redistribute this program and/or modify it under the terms of
* the GNU Lesser Public License as published by the Free Software Foundation, * the GNU Lesser Public License as published by the Free Software Foundation,
@ -9,7 +9,7 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using Utilities; using Utilities;
namespace SMBLibrary namespace SMBLibrary.Adapters
{ {
public partial class NTFileSystemAdapter public partial class NTFileSystemAdapter
{ {

View file

@ -1,4 +1,4 @@
/* Copyright (C) 2014-2018 Tal Aloni <tal.aloni.il@gmail.com>. All rights reserved. /* Copyright (C) 2014-2020 Tal Aloni <tal.aloni.il@gmail.com>. All rights reserved.
* *
* You can redistribute this program and/or modify it under the terms of * You can redistribute this program and/or modify it under the terms of
* the GNU Lesser Public License as published by the Free Software Foundation, * the GNU Lesser Public License as published by the Free Software Foundation,
@ -9,7 +9,7 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using Utilities; using Utilities;
namespace SMBLibrary namespace SMBLibrary.Adapters
{ {
public partial class NTFileSystemAdapter public partial class NTFileSystemAdapter
{ {

View file

@ -1,4 +1,4 @@
/* Copyright (C) 2014-2019 Tal Aloni <tal.aloni.il@gmail.com>. All rights reserved. /* Copyright (C) 2014-2020 Tal Aloni <tal.aloni.il@gmail.com>. All rights reserved.
* *
* You can redistribute this program and/or modify it under the terms of * You can redistribute this program and/or modify it under the terms of
* the GNU Lesser Public License as published by the Free Software Foundation, * the GNU Lesser Public License as published by the Free Software Foundation,
@ -9,7 +9,7 @@ using System.IO;
using DiskAccessLibrary.FileSystems.Abstractions; using DiskAccessLibrary.FileSystems.Abstractions;
using Utilities; using Utilities;
namespace SMBLibrary namespace SMBLibrary.Adapters
{ {
public partial class NTFileSystemAdapter : INTFileStore public partial class NTFileSystemAdapter : INTFileStore
{ {
@ -408,7 +408,9 @@ namespace SMBLibrary
if (bytesRead < maxCount) if (bytesRead < maxCount)
{ {
// EOF, we must trim the response data array // EOF, we must trim the response data array
data = ByteReader.ReadBytes(data, 0, bytesRead); byte[] temp = new byte[bytesRead];
Array.Copy(data, temp, bytesRead);
data = temp;
} }
return NTStatus.STATUS_SUCCESS; return NTStatus.STATUS_SUCCESS;
} }

View file

@ -0,0 +1,35 @@
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("SMBLibrary.Adapters")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("none")]
[assembly: AssemblyProduct("SMBLibrary.Adapters")]
[assembly: AssemblyCopyright("Copyright © none 2020")]
[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("359460ac-a179-40cf-8491-e51a198e438c")]
// 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 Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.4.3.0")]
[assembly: AssemblyFileVersion("1.4.3.0")]

View file

@ -0,0 +1,60 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.50727</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{DF51D33B-F030-4B25-803A-3BEBC35E5BEC}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>SMBLibrary.Adapters</RootNamespace>
<AssemblyName>SMBLibrary.Adapters</AssemblyName>
</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="System" />
</ItemGroup>
<ItemGroup>
<Compile Include="NTFileSystemAdapter\IOExceptionHelper.cs" />
<Compile Include="NTFileSystemAdapter\NTFileSystemAdapter.cs" />
<Compile Include="NTFileSystemAdapter\NTFileSystemAdapter.Query.cs" />
<Compile Include="NTFileSystemAdapter\NTFileSystemAdapter.QueryDirectory.cs" />
<Compile Include="NTFileSystemAdapter\NTFileSystemAdapter.QueryFileSystem.cs" />
<Compile Include="NTFileSystemAdapter\NTFileSystemAdapter.Set.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\DiskAccessLibrary.FileSystems.Abstractions\DiskAccessLibrary.FileSystems.Abstractions.VS2005.csproj">
<Project>{9119EC7E-AF78-4814-BF03-F3823A29A471}</Project>
<Name>DiskAccessLibrary.FileSystems.Abstractions</Name>
</ProjectReference>
<ProjectReference Include="..\SMBLibrary\SMBLibrary.VS2005.csproj">
<Project>{8D9E8F5D-FD13-4E4C-9723-A333DA2034A7}</Project>
<Name>SMBLibrary.VS2005</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\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>

View file

@ -0,0 +1,21 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net20;net40;netstandard2.0</TargetFrameworks>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<AssemblyName>SMBLibrary.Adapters</AssemblyName>
<Version>1.4.3</Version>
<RootNamespace>SMBLibrary.Adapters</RootNamespace>
<Authors>Tal Aloni</Authors>
<PackageDescription>FileSystem adapters for SMBLibrary</PackageDescription>
<PackageLicenseExpression>LGPL-3.0-or-later</PackageLicenseExpression>
<PackageProjectUrl>https://github.com/TalAloni/SMBLibrary</PackageProjectUrl>
<RepositoryUrl>https://github.com/TalAloni/SMBLibrary</RepositoryUrl>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\DiskAccessLibrary.FileSystems.Abstractions\DiskAccessLibrary.FileSystems.Abstractions.csproj" />
<ProjectReference Include="..\SMBLibrary\SMBLibrary.csproj" />
</ItemGroup>
</Project>

View file

@ -1,4 +1,4 @@
/* Copyright (C) 2014-2017 Tal Aloni <tal.aloni.il@gmail.com>. All rights reserved. /* Copyright (C) 2014-2020 Tal Aloni <tal.aloni.il@gmail.com>. All rights reserved.
* *
* You can redistribute this program and/or modify it under the terms of * You can redistribute this program and/or modify it under the terms of
* the GNU Lesser Public License as published by the Free Software Foundation, * the GNU Lesser Public License as published by the Free Software Foundation,

View file

@ -102,13 +102,6 @@
<Compile Include="NetBios\SessionPackets\SessionPacket.cs" /> <Compile Include="NetBios\SessionPackets\SessionPacket.cs" />
<Compile Include="NetBios\SessionPackets\SessionRequestPacket.cs" /> <Compile Include="NetBios\SessionPackets\SessionRequestPacket.cs" />
<Compile Include="NetBios\SessionPackets\SessionRetargetResponsePacket.cs" /> <Compile Include="NetBios\SessionPackets\SessionRetargetResponsePacket.cs" />
<Compile Include="NTFileStore\Adapter\FileHandle.cs" />
<Compile Include="NTFileStore\Adapter\IOExceptionHelper.cs" />
<Compile Include="NTFileStore\Adapter\NTFileSystemAdapter.cs" />
<Compile Include="NTFileStore\Adapter\NTFileSystemAdapter.Query.cs" />
<Compile Include="NTFileStore\Adapter\NTFileSystemAdapter.QueryDirectory.cs" />
<Compile Include="NTFileStore\Adapter\NTFileSystemAdapter.QueryFileSystem.cs" />
<Compile Include="NTFileStore\Adapter\NTFileSystemAdapter.Set.cs" />
<Compile Include="NTFileStore\Enums\AccessMask\AccessMask.cs" /> <Compile Include="NTFileStore\Enums\AccessMask\AccessMask.cs" />
<Compile Include="NTFileStore\Enums\AccessMask\DirectoryAccessMask.cs" /> <Compile Include="NTFileStore\Enums\AccessMask\DirectoryAccessMask.cs" />
<Compile Include="NTFileStore\Enums\AccessMask\FileAccessMask.cs" /> <Compile Include="NTFileStore\Enums\AccessMask\FileAccessMask.cs" />
@ -130,6 +123,7 @@
<Compile Include="NTFileStore\Enums\NtCreateFile\ShareAccess.cs" /> <Compile Include="NTFileStore\Enums\NtCreateFile\ShareAccess.cs" />
<Compile Include="NTFileStore\Enums\SecurityInformation\ImpersonationLevel.cs" /> <Compile Include="NTFileStore\Enums\SecurityInformation\ImpersonationLevel.cs" />
<Compile Include="NTFileStore\Enums\SecurityInformation\SecurityInformation.cs" /> <Compile Include="NTFileStore\Enums\SecurityInformation\SecurityInformation.cs" />
<Compile Include="NTFileStore\FileHandle.cs" />
<Compile Include="NTFileStore\INTFileStore.cs" /> <Compile Include="NTFileStore\INTFileStore.cs" />
<Compile Include="NTFileStore\NamedPipeStore.cs" /> <Compile Include="NTFileStore\NamedPipeStore.cs" />
<Compile Include="NTFileStore\NTFileStoreHelper.cs" /> <Compile Include="NTFileStore\NTFileStoreHelper.cs" />
@ -597,10 +591,6 @@
<Content Include="RevisionHistory.txt" /> <Content Include="RevisionHistory.txt" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\DiskAccessLibrary.FileSystems.Abstractions\DiskAccessLibrary.FileSystems.Abstractions.VS2005.csproj">
<Project>{9119EC7E-AF78-4814-BF03-F3823A29A471}</Project>
<Name>DiskAccessLibrary.FileSystems.Abstractions.VS2005</Name>
</ProjectReference>
<ProjectReference Include="..\Utilities\Utilities.VS2005.csproj"> <ProjectReference Include="..\Utilities\Utilities.VS2005.csproj">
<Project>{6E0F2D1E-6167-4032-BA90-DEE3A99207D0}</Project> <Project>{6E0F2D1E-6167-4032-BA90-DEE3A99207D0}</Project>
<Name>Utilities</Name> <Name>Utilities</Name>

View file

@ -15,7 +15,6 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\DiskAccessLibrary.FileSystems.Abstractions\DiskAccessLibrary.FileSystems.Abstractions.csproj" />
<ProjectReference Include="..\Utilities\Utilities.csproj" PrivateAssets="All" /> <ProjectReference Include="..\Utilities\Utilities.csproj" PrivateAssets="All" />
</ItemGroup> </ItemGroup>

View file

@ -1,4 +1,4 @@
/* Copyright (C) 2014-2017 Tal Aloni <tal.aloni.il@gmail.com>. All rights reserved. /* Copyright (C) 2014-2020 Tal Aloni <tal.aloni.il@gmail.com>. All rights reserved.
* *
* You can redistribute this program and/or modify it under the terms of * You can redistribute this program and/or modify it under the terms of
* the GNU Lesser Public License as published by the Free Software Foundation, * the GNU Lesser Public License as published by the Free Software Foundation,
@ -6,7 +6,6 @@
*/ */
using System; using System;
using System.IO; using System.IO;
using DiskAccessLibrary.FileSystems.Abstractions;
namespace SMBLibrary.Server namespace SMBLibrary.Server
{ {
@ -29,13 +28,6 @@ namespace SMBLibrary.Server
m_cachingPolicy = cachingPolicy; m_cachingPolicy = cachingPolicy;
} }
public FileSystemShare(string shareName, IFileSystem fileSystem, CachingPolicy cachingPolicy)
{
m_name = shareName;
m_fileSystem = new NTFileSystemAdapter(fileSystem);
m_cachingPolicy = cachingPolicy;
}
public bool HasReadAccess(SecurityContext securityContext, string path) public bool HasReadAccess(SecurityContext securityContext, string path)
{ {
return HasAccess(securityContext, path, FileAccess.Read); return HasAccess(securityContext, path, FileAccess.Read);

View file

@ -1,4 +1,4 @@
/* Copyright (C) 2014-2017 Tal Aloni <tal.aloni.il@gmail.com>. All rights reserved. /* Copyright (C) 2014-2020 Tal Aloni <tal.aloni.il@gmail.com>. All rights reserved.
* *
* You can redistribute this program and/or modify it under the terms of * You can redistribute this program and/or modify it under the terms of
* the GNU Lesser Public License as published by the Free Software Foundation, * the GNU Lesser Public License as published by the Free Software Foundation,
@ -6,18 +6,11 @@
*/ */
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using DiskAccessLibrary.FileSystems.Abstractions;
namespace SMBLibrary.Server namespace SMBLibrary.Server
{ {
public class SMBShareCollection : List<FileSystemShare> public class SMBShareCollection : List<FileSystemShare>
{ {
public void Add(string shareName, IFileSystem fileSystem, CachingPolicy cachingPolicy)
{
FileSystemShare share = new FileSystemShare(shareName, fileSystem, cachingPolicy);
this.Add(share);
}
public bool Contains(string shareName, StringComparison comparisonType) public bool Contains(string shareName, StringComparison comparisonType)
{ {
return (this.IndexOf(shareName, comparisonType) != -1); return (this.IndexOf(shareName, comparisonType) != -1);

View file

@ -9,6 +9,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMBLibrary.VS2005", "SMBLib
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMBLibrary.Win32.VS2005", "SMBLibrary.Win32\SMBLibrary.Win32.VS2005.csproj", "{8CE25496-A52B-4841-822F-74C469D10EE7}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMBLibrary.Win32.VS2005", "SMBLibrary.Win32\SMBLibrary.Win32.VS2005.csproj", "{8CE25496-A52B-4841-822F-74C469D10EE7}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMBLibrary.Adapters.VS2005", "SMBLibrary.Adapters\SMBLibrary.Adapters.VS2005.csproj", "{DF51D33B-F030-4B25-803A-3BEBC35E5BEC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMBServer.VS2005", "SMBServer\SMBServer.VS2005.csproj", "{70D43E2A-26A2-4046-A472-5BA8C9437612}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMBServer.VS2005", "SMBServer\SMBServer.VS2005.csproj", "{70D43E2A-26A2-4046-A472-5BA8C9437612}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMBLibrary.Tests.VS2005", "SMBLibrary.Tests\SMBLibrary.Tests.VS2005.csproj", "{C79B06EB-32C1-44CA-B7E1-A891B8135658}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMBLibrary.Tests.VS2005", "SMBLibrary.Tests\SMBLibrary.Tests.VS2005.csproj", "{C79B06EB-32C1-44CA-B7E1-A891B8135658}"
@ -35,6 +37,10 @@ Global
{8CE25496-A52B-4841-822F-74C469D10EE7}.Debug|Any CPU.Build.0 = Debug|Any CPU {8CE25496-A52B-4841-822F-74C469D10EE7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8CE25496-A52B-4841-822F-74C469D10EE7}.Release|Any CPU.ActiveCfg = Release|Any CPU {8CE25496-A52B-4841-822F-74C469D10EE7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8CE25496-A52B-4841-822F-74C469D10EE7}.Release|Any CPU.Build.0 = Release|Any CPU {8CE25496-A52B-4841-822F-74C469D10EE7}.Release|Any CPU.Build.0 = Release|Any CPU
{DF51D33B-F030-4B25-803A-3BEBC35E5BEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DF51D33B-F030-4B25-803A-3BEBC35E5BEC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DF51D33B-F030-4B25-803A-3BEBC35E5BEC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DF51D33B-F030-4B25-803A-3BEBC35E5BEC}.Release|Any CPU.Build.0 = Release|Any CPU
{70D43E2A-26A2-4046-A472-5BA8C9437612}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {70D43E2A-26A2-4046-A472-5BA8C9437612}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{70D43E2A-26A2-4046-A472-5BA8C9437612}.Debug|Any CPU.Build.0 = Debug|Any CPU {70D43E2A-26A2-4046-A472-5BA8C9437612}.Debug|Any CPU.Build.0 = Debug|Any CPU
{70D43E2A-26A2-4046-A472-5BA8C9437612}.Release|Any CPU.ActiveCfg = Release|Any CPU {70D43E2A-26A2-4046-A472-5BA8C9437612}.Release|Any CPU.ActiveCfg = Release|Any CPU

View file

@ -11,6 +11,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SMBLibrary", "SMBLibrary\SM
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SMBLibrary.Win32", "SMBLibrary.Win32\SMBLibrary.Win32.csproj", "{8CE25496-A52B-4841-822F-74C469D10EE7}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SMBLibrary.Win32", "SMBLibrary.Win32\SMBLibrary.Win32.csproj", "{8CE25496-A52B-4841-822F-74C469D10EE7}"
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SMBLibrary.Adapters", "SMBLibrary.Adapters\SMBLibrary.Adapters.csproj", "{DF51D33B-F030-4B25-803A-3BEBC35E5BEC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SMBServer", "SMBServer\SMBServer.csproj", "{70D43E2A-26A2-4046-A472-5BA8C9437612}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SMBServer", "SMBServer\SMBServer.csproj", "{70D43E2A-26A2-4046-A472-5BA8C9437612}"
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SMBLibrary.Tests", "SMBLibrary.Tests\SMBLibrary.Tests.csproj", "{C79B06EB-32C1-44CA-B7E1-A891B8135658}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SMBLibrary.Tests", "SMBLibrary.Tests\SMBLibrary.Tests.csproj", "{C79B06EB-32C1-44CA-B7E1-A891B8135658}"
@ -37,6 +39,10 @@ Global
{8CE25496-A52B-4841-822F-74C469D10EE7}.Debug|Any CPU.Build.0 = Debug|Any CPU {8CE25496-A52B-4841-822F-74C469D10EE7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8CE25496-A52B-4841-822F-74C469D10EE7}.Release|Any CPU.ActiveCfg = Release|Any CPU {8CE25496-A52B-4841-822F-74C469D10EE7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8CE25496-A52B-4841-822F-74C469D10EE7}.Release|Any CPU.Build.0 = Release|Any CPU {8CE25496-A52B-4841-822F-74C469D10EE7}.Release|Any CPU.Build.0 = Release|Any CPU
{DF51D33B-F030-4B25-803A-3BEBC35E5BEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DF51D33B-F030-4B25-803A-3BEBC35E5BEC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DF51D33B-F030-4B25-803A-3BEBC35E5BEC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DF51D33B-F030-4B25-803A-3BEBC35E5BEC}.Release|Any CPU.Build.0 = Release|Any CPU
{70D43E2A-26A2-4046-A472-5BA8C9437612}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {70D43E2A-26A2-4046-A472-5BA8C9437612}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{70D43E2A-26A2-4046-A472-5BA8C9437612}.Debug|Any CPU.Build.0 = Debug|Any CPU {70D43E2A-26A2-4046-A472-5BA8C9437612}.Debug|Any CPU.Build.0 = Debug|Any CPU
{70D43E2A-26A2-4046-A472-5BA8C9437612}.Release|Any CPU.ActiveCfg = Release|Any CPU {70D43E2A-26A2-4046-A472-5BA8C9437612}.Release|Any CPU.ActiveCfg = Release|Any CPU