Basic handling of owner and group security query (no dacl). Added new upcall for NFS41_ACL_QUERY (driver and daemon code). Daemon, upon getting NFS41_ACL_QUERY first places a getattr that has owner, group attribute request. We currently don't cache them!!! Then, we parse nfs4name format (ie user@domain or group@domain) into user and domain. We currently ignore domain part!!! Then, we assume that whatever we are mapping is "known" locally (ie LookupAccountName() api which retrieves a SID for a given name). Mapping from name to SID can only be done in the userland. We then copy the bytes via the upcall pipe to the kernel. If the received user or group cant be mapped via LookupAccoundName(), we create a well known null SID as the reply. Kernel creates a security descriptor in the absolute-format and adds owner and group sids to it. Important: RtlSetOwner/Group functions only work with absolute-format security descriptor, however the reply to the user needs to be in the self-relative format. The way security query works is that it passes us a buffer to be filled with the security context. However the user doesn't know how big the buffer should be so, the user is allowed to pass a null buffer and have the kernel return how much memory is needed. This leads to 2 security queries => 2 NFS41_ACL_QUERY upcalls => 2 getattr rpcs... It should be improved. TODO: - need to add caching of owner/group attributes for a file? - need to add calls to LDAP for more general mapping? - need to cache reply of the ACL if supplied length is 0?
259 lines
No EOL
15 KiB
XML
259 lines
No EOL
15 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
<ItemGroup Label="ProjectConfigurations">
|
|
<ProjectConfiguration Include="Debug|Win32">
|
|
<Configuration>Debug</Configuration>
|
|
<Platform>Win32</Platform>
|
|
</ProjectConfiguration>
|
|
<ProjectConfiguration Include="Debug|x64">
|
|
<Configuration>Debug</Configuration>
|
|
<Platform>x64</Platform>
|
|
</ProjectConfiguration>
|
|
<ProjectConfiguration Include="Release|Win32">
|
|
<Configuration>Release</Configuration>
|
|
<Platform>Win32</Platform>
|
|
</ProjectConfiguration>
|
|
<ProjectConfiguration Include="Release|x64">
|
|
<Configuration>Release</Configuration>
|
|
<Platform>x64</Platform>
|
|
</ProjectConfiguration>
|
|
</ItemGroup>
|
|
<PropertyGroup Label="Globals">
|
|
<ProjectGuid>{D0D81A98-2946-4A16-A4A1-800387C3F3D1}</ProjectGuid>
|
|
<RootNamespace>daemon</RootNamespace>
|
|
</PropertyGroup>
|
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
<ConfigurationType>Application</ConfigurationType>
|
|
<CharacterSet>MultiByte</CharacterSet>
|
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
|
<ConfigurationType>Application</ConfigurationType>
|
|
<CharacterSet>MultiByte</CharacterSet>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
|
<ConfigurationType>Application</ConfigurationType>
|
|
<CharacterSet>MultiByte</CharacterSet>
|
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
|
<ConfigurationType>Application</ConfigurationType>
|
|
<CharacterSet>MultiByte</CharacterSet>
|
|
</PropertyGroup>
|
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
<ImportGroup Label="ExtensionSettings">
|
|
</ImportGroup>
|
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
<Import Project="env.props" />
|
|
</ImportGroup>
|
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
<Import Project="env.props" />
|
|
</ImportGroup>
|
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
<Import Project="env.props" />
|
|
</ImportGroup>
|
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
<Import Project="env.props" />
|
|
</ImportGroup>
|
|
<PropertyGroup Label="UserMacros" />
|
|
<PropertyGroup>
|
|
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
|
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
|
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
|
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
|
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
|
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
|
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
|
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
|
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
|
|
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
|
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
|
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
|
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
|
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
|
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
|
|
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
|
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
|
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">nfsd</TargetName>
|
|
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">nfsd</TargetName>
|
|
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">nfsd</TargetName>
|
|
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">nfsd</TargetName>
|
|
</PropertyGroup>
|
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
<ClCompile>
|
|
<AdditionalOptions>/Wall /wd4100 /wd4127 /wd4255 /wd4574 /wd4619 /wd4668 /wd4710 /wd4711 /wd4820 %(AdditionalOptions)</AdditionalOptions>
|
|
<Optimization>Disabled</Optimization>
|
|
<AdditionalIncludeDirectories>..\sys;..\xdr;..\dll;..\libtirpc\tirpc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<PreprocessorDefinitions>WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
<MinimalRebuild>true</MinimalRebuild>
|
|
<ExceptionHandling>
|
|
</ExceptionHandling>
|
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
|
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
|
<WarningLevel>Level4</WarningLevel>
|
|
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
|
<CompileAs>CompileAsC</CompileAs>
|
|
</ClCompile>
|
|
<Link>
|
|
<AdditionalDependencies>ws2_32.lib;iphlpapi.lib;wldap32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
<TargetMachine>MachineX86</TargetMachine>
|
|
</Link>
|
|
</ItemDefinitionGroup>
|
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
<Midl>
|
|
<TargetEnvironment>X64</TargetEnvironment>
|
|
</Midl>
|
|
<ClCompile>
|
|
<AdditionalOptions>/Wall /wd4100 /wd4127 /wd4255 /wd4574 /wd4619 /wd4668 /wd4710 /wd4711 /wd4820 %(AdditionalOptions)</AdditionalOptions>
|
|
<Optimization>Disabled</Optimization>
|
|
<AdditionalIncludeDirectories>..\sys;..\xdr;..\dll;..\libtirpc\tirpc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<PreprocessorDefinitions>WIN32_LEAN_AND_MEAN;STANDALONE_NFSD;NO_CB_4_KRB5P;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
<MinimalRebuild>true</MinimalRebuild>
|
|
<ExceptionHandling>
|
|
</ExceptionHandling>
|
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
|
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
|
<WarningLevel>Level4</WarningLevel>
|
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
|
<CompileAs>CompileAsC</CompileAs>
|
|
</ClCompile>
|
|
<Link>
|
|
<AdditionalDependencies>ws2_32.lib;iphlpapi.lib;wldap32.lib;kernel32.lib;advapi32.lib;shell32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
<TargetMachine>MachineX64</TargetMachine>
|
|
</Link>
|
|
</ItemDefinitionGroup>
|
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
<ClCompile>
|
|
<AdditionalOptions>/Wall /wd4100 /wd4127 /wd4255 /wd4574 /wd4619 /wd4668 /wd4710 /wd4711 /wd4820 %(AdditionalOptions)</AdditionalOptions>
|
|
<Optimization>MaxSpeed</Optimization>
|
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
<AdditionalIncludeDirectories>..\sys;..\xdr;..\dll;..\libtirpc\tirpc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<PreprocessorDefinitions>WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
<ExceptionHandling>
|
|
</ExceptionHandling>
|
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
|
<WarningLevel>Level4</WarningLevel>
|
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
|
<CompileAs>CompileAsC</CompileAs>
|
|
</ClCompile>
|
|
<Link>
|
|
<AdditionalDependencies>ws2_32.lib;iphlpapi.lib;wldap32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
<OptimizeReferences>true</OptimizeReferences>
|
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
<TargetMachine>MachineX86</TargetMachine>
|
|
</Link>
|
|
</ItemDefinitionGroup>
|
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
<Midl>
|
|
<TargetEnvironment>X64</TargetEnvironment>
|
|
</Midl>
|
|
<ClCompile>
|
|
<AdditionalOptions>/Wall /wd4100 /wd4127 /wd4255 /wd4574 /wd4619 /wd4668 /wd4710 /wd4711 /wd4820 %(AdditionalOptions)</AdditionalOptions>
|
|
<Optimization>MaxSpeed</Optimization>
|
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
<AdditionalIncludeDirectories>..\sys;..\xdr;..\dll;..\libtirpc\tirpc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<PreprocessorDefinitions>WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
<ExceptionHandling>
|
|
</ExceptionHandling>
|
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
|
<WarningLevel>Level4</WarningLevel>
|
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
|
<CompileAs>CompileAsC</CompileAs>
|
|
</ClCompile>
|
|
<Link>
|
|
<AdditionalDependencies>ws2_32.lib;iphlpapi.lib;wldap32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
<OptimizeReferences>true</OptimizeReferences>
|
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
<TargetMachine>MachineX64</TargetMachine>
|
|
</Link>
|
|
</ItemDefinitionGroup>
|
|
<ItemGroup>
|
|
<ClCompile Include="..\daemon\acl.c" />
|
|
<ClCompile Include="..\daemon\callback_xdr.c" />
|
|
<ClCompile Include="..\daemon\callback_server.c" />
|
|
<ClCompile Include="..\daemon\daemon_debug.c" />
|
|
<ClCompile Include="..\daemon\getattr.c" />
|
|
<ClCompile Include="..\daemon\idmap.c" />
|
|
<ClCompile Include="..\daemon\lock.c" />
|
|
<ClCompile Include="..\daemon\lookup.c" />
|
|
<ClCompile Include="..\daemon\mount.c" />
|
|
<ClCompile Include="..\daemon\namespace.c" />
|
|
<ClCompile Include="..\daemon\name_cache.c" />
|
|
<ClCompile Include="..\daemon\nfs41_client.c" />
|
|
<ClCompile Include="..\daemon\nfs41_compound.c" />
|
|
<ClCompile Include="..\daemon\nfs41_daemon.c" />
|
|
<ClCompile Include="..\daemon\nfs41_ops.c" />
|
|
<ClCompile Include="..\daemon\nfs41_rpc.c" />
|
|
<ClCompile Include="..\daemon\nfs41_server.c" />
|
|
<ClCompile Include="..\daemon\nfs41_session.c" />
|
|
<ClCompile Include="..\daemon\nfs41_superblock.c" />
|
|
<ClCompile Include="..\daemon\nfs41_xdr.c" />
|
|
<ClCompile Include="..\daemon\open.c" />
|
|
<ClCompile Include="..\daemon\pnfs_debug.c" />
|
|
<ClCompile Include="..\daemon\pnfs_device.c" />
|
|
<ClCompile Include="..\daemon\pnfs_io.c" />
|
|
<ClCompile Include="..\daemon\pnfs_layout.c" />
|
|
<ClCompile Include="..\daemon\readdir.c" />
|
|
<ClCompile Include="..\daemon\readwrite.c" />
|
|
<ClCompile Include="..\daemon\service.c" />
|
|
<ClCompile Include="..\daemon\setattr.c" />
|
|
<ClCompile Include="..\daemon\symlink.c" />
|
|
<ClCompile Include="..\daemon\upcall.c" />
|
|
<ClCompile Include="..\daemon\util.c" />
|
|
<ClCompile Include="..\daemon\volume.c" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<ClInclude Include="..\daemon\daemon_debug.h" />
|
|
<ClInclude Include="..\daemon\from_kernel.h" />
|
|
<ClInclude Include="..\daemon\idmap.h" />
|
|
<ClInclude Include="..\daemon\list.h" />
|
|
<ClInclude Include="..\daemon\name_cache.h" />
|
|
<ClInclude Include="..\daemon\nfs41.h" />
|
|
<ClInclude Include="..\daemon\nfs41_callback.h" />
|
|
<ClInclude Include="..\daemon\nfs41_compound.h" />
|
|
<ClInclude Include="..\daemon\nfs41_const.h" />
|
|
<ClInclude Include="..\daemon\nfs41_ops.h" />
|
|
<ClInclude Include="..\daemon\nfs41_types.h" />
|
|
<ClInclude Include="..\daemon\nfs41_xdr.h" />
|
|
<ClInclude Include="..\daemon\pnfs.h" />
|
|
<ClInclude Include="..\daemon\service.h" />
|
|
<ClInclude Include="..\daemon\tree.h" />
|
|
<ClInclude Include="..\daemon\upcall.h" />
|
|
<ClInclude Include="..\daemon\util.h" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<None Include="..\daemon\sources" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<ProjectReference Include="libtirpc.vcxproj">
|
|
<Project>{2d918a9b-de52-470a-93d5-78ea2c8113a1}</Project>
|
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
|
</ProjectReference>
|
|
</ItemGroup>
|
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
<ImportGroup Label="ExtensionTargets">
|
|
</ImportGroup>
|
|
</Project> |