ms-nfs41-client/build.vc10/daemon.vcxproj.filters

175 lines
5.9 KiB
Text
Raw Normal View History

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{b39281cd-23c6-401e-844b-3d6c763da90b}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\daemon\daemon_debug.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\daemon\getattr.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\daemon\lock.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\daemon\mount.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\daemon\nfs41_client.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\daemon\nfs41_compound.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\daemon\nfs41_daemon.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\daemon\nfs41_ops.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\daemon\nfs41_rpc.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\daemon\nfs41_server.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\daemon\nfs41_session.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\daemon\nfs41_superblock.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\daemon\nfs41_xdr.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\daemon\open.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\daemon\pnfs_debug.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\daemon\pnfs_device.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\daemon\pnfs_layout.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\daemon\readdir.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\daemon\readwrite.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\daemon\setattr.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\daemon\upcall.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\daemon\util.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\daemon\pnfs_io.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\daemon\lookup.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\daemon\name_cache.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\daemon\namespace.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\daemon\volume.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\daemon\callback_server.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\daemon\callback_xdr.c">
<Filter>Source Files</Filter>
</ClCompile>
2010-10-12 09:57:40 -04:00
<ClCompile Include="..\daemon\service.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\daemon\symlink.c">
<Filter>Source Files</Filter>
</ClCompile>
idmap.c for ldap caching and configuration struct idmap_context contains configuration data (struct idmap_config), a cache for users, and a cache for groups. idmap_context is declared in idmap.c, and only available as an opaque pointer (nfs41_idmapper) elsewhere. similarly, Winldap.h is only included by idmap.c, and not needed elsewhere nfs41_idmap_create() allocates the idmap_context, loads the configuration from file, and calls ldap_init(). it does not call ldap_connect(); we'll still be able to start the daemon if ldap isn't configured, or the ldap server is down. calling ldap_connect() is optional, as any ldap operation that requires a connection will establish it internally. this behavior, along with the LDAP_OPT_AUTO_RECONNECT option (defaults to on), means that we shouldn't have to maintain a separate connection for each thread nfs41_idmap_*() functions return windows errors codes. LDAP_RETCODEs are mapped to windows errors with LdapMapErrorToWin32() the user and group caches share a common generic interface in struct idmap_cache, which uses a linked list for storage, and protects access with a SRWLOCK. expiration of cache entries can be adjusted by the config option 'cache_ttl' struct config_option g_options[] is a table of available config options and their default values. this patch adds a 'ms-nfs41-idmap.conf' file with all possible options set to default values, and commented out. the daemon expects to find this file under c:\etc\, and won't start if it can't be opened or parsed Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
2010-11-05 09:04:39 -04:00
<ClCompile Include="..\daemon\idmap.c">
<Filter>Source Files</Filter>
</ClCompile>
first stab at handling security irp 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?
2011-03-15 16:31:52 -04:00
<ClCompile Include="..\daemon\acl.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\daemon\daemon_debug.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\daemon\from_kernel.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\daemon\nfs41.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\daemon\nfs41_compound.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\daemon\nfs41_const.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\daemon\nfs41_ops.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\daemon\nfs41_types.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\daemon\nfs41_xdr.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\daemon\pnfs.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\daemon\upcall.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\daemon\util.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\daemon\list.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\daemon\name_cache.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\daemon\nfs41_callback.h">
<Filter>Header Files</Filter>
</ClInclude>
2010-10-12 09:57:40 -04:00
<ClInclude Include="..\daemon\service.h">
<Filter>Header Files</Filter>
</ClInclude>
idmap.c for ldap caching and configuration struct idmap_context contains configuration data (struct idmap_config), a cache for users, and a cache for groups. idmap_context is declared in idmap.c, and only available as an opaque pointer (nfs41_idmapper) elsewhere. similarly, Winldap.h is only included by idmap.c, and not needed elsewhere nfs41_idmap_create() allocates the idmap_context, loads the configuration from file, and calls ldap_init(). it does not call ldap_connect(); we'll still be able to start the daemon if ldap isn't configured, or the ldap server is down. calling ldap_connect() is optional, as any ldap operation that requires a connection will establish it internally. this behavior, along with the LDAP_OPT_AUTO_RECONNECT option (defaults to on), means that we shouldn't have to maintain a separate connection for each thread nfs41_idmap_*() functions return windows errors codes. LDAP_RETCODEs are mapped to windows errors with LdapMapErrorToWin32() the user and group caches share a common generic interface in struct idmap_cache, which uses a linked list for storage, and protects access with a SRWLOCK. expiration of cache entries can be adjusted by the config option 'cache_ttl' struct config_option g_options[] is a table of available config options and their default values. this patch adds a 'ms-nfs41-idmap.conf' file with all possible options set to default values, and commented out. the daemon expects to find this file under c:\etc\, and won't start if it can't be opened or parsed Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
2010-11-05 09:04:39 -04:00
<ClInclude Include="..\daemon\idmap.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\daemon\tree.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="..\daemon\sources">
<Filter>Resource Files</Filter>
</None>
</ItemGroup>
2010-10-12 09:57:40 -04:00
</Project>