#include <windows.h>
#include <stdio.h>
#include <strsafe.h>
#include "nfs41_ops.h"
#include "name_cache.h"
#include "upcall.h"
#include "daemon_debug.h"
Go to the source code of this file.
◆ handle_getattr()
Definition at line 76 of file getattr.c.
77{
82
87 }
88
95 }
96
97 switch (
args->query_class) {
101 break;
104 break;
109 break;
111 args->intr_info.IndexNumber.QuadPart =
info.fileid;
112 break;
115 break;
116 default:
117 eprintf(
"unhandled file query class %d\n",
args->query_class);
119 break;
120 }
123}
void nfs_to_standard_info(IN const nfs41_file_info *info, OUT PFILE_STANDARD_INFO std_out)
ULONG nfs_file_info_to_attributes(IN const nfs41_file_info *info)
void nfs_to_network_openinfo(IN const nfs41_file_info *info, OUT PFILE_NETWORK_OPEN_INFORMATION net_out)
void nfs_to_basic_info(IN const nfs41_file_info *info, OUT PFILE_BASIC_INFO basic_out)
void eprintf(LPCSTR format,...)
#define ERROR_INVALID_PARAMETER
@ FileInternalInformation
@ FileAttributeTagInformation
@ FileNetworkOpenInformation
int nfs41_cached_getattr(IN nfs41_session *session, IN nfs41_path_fh *file, OUT nfs41_file_info *info)
nfs41_updowncall_list upcall
int nfs41_symlink_follow(IN nfs41_root *root, IN nfs41_session *session, IN nfs41_path_fh *symlink, OUT nfs41_file_info *info)
#define FileStandardInformation
#define IO_REPARSE_TAG_SYMLINK
◆ marshall_getattr()
Definition at line 125 of file getattr.c.
126{
130
131 switch (
args->query_class) {
133 info_len =
sizeof(
args->basic_info);
138 break;
140 info_len =
sizeof(
args->std_info);
145 break;
147 info_len =
sizeof(
args->tag_info);
152 break;
154 info_len =
sizeof(
args->intr_info);
159 break;
161 info_len =
sizeof(
args->network_info);
166 break;
167 default:
168 eprintf(
"unknown file query class %d\n",
args->query_class);
171 }
174 dprintf(1,
"NFS41_FILE_QUERY: downcall changattr=%llu\n",
args->ctime);
177}
int safe_write(unsigned char **pos, uint32_t *remaining, void *src, uint32_t src_len)
GLuint GLsizei GLsizei * length
◆ nfs41_cached_getattr()
Definition at line 32 of file getattr.c.
36{
38
39
42
44
47
50 eprintf(
"nfs41_getattr() failed with %s\n",
53 }
54 }
56}
int nfs_to_windows_error(int status, int default_error)
const char * nfs_error_string(int status)
int nfs41_attr_cache_lookup(IN struct nfs41_name_cache *cache, IN uint64_t fileid, OUT nfs41_file_info *info_out)
static __inline struct nfs41_name_cache * session_name_cache(IN nfs41_session *session)
static __inline void nfs41_superblock_getattr_mask(IN const nfs41_superblock *superblock, OUT bitmap4 *attrs)
int nfs41_getattr(IN nfs41_session *session, IN OPTIONAL nfs41_path_fh *file, IN bitmap4 *attr_request, OUT nfs41_file_info *info)
#define ERROR_BAD_NET_RESP
Referenced by handle_getattr(), and readdir_add_dots().
◆ parse_getattr()
Definition at line 59 of file getattr.c.
60{
63
68
69 dprintf(1,
"parsing NFS41_FILE_QUERY: info_class=%d buf_len=%d file=%.*s\n",
71 upcall->state_ref->path.path);
74}
int safe_read(unsigned char **pos, uint32_t *remaining, void *dest, uint32_t dest_len)
◆ nfs41_op_getattr
Initial value:= {
}
static int marshall_getattr(unsigned char *buffer, uint32_t *length, nfs41_upcall *upcall)
static int parse_getattr(unsigned char *buffer, uint32_t length, nfs41_upcall *upcall)
static int handle_getattr(nfs41_upcall *upcall)
Definition at line 180 of file getattr.c.