public fattr(fhandle fh) { FileEntry file = FileTable.LookupFileEntry(fh); if (file == null) { Console.WriteLine("fattr on invalid file handle:{0}", fh.Index); throw new NFSStatusException(NFSStatus.NFSERR_STALE); } FileInfo fileInfo = new FileInfo(file.Name); if (fileInfo.Exists == false) { if (new DirectoryInfo(file.Name).Exists == false) { throw new System.IO.FileNotFoundException(); } } if ((fileInfo.Attributes & FileAttributes.Directory) != 0) { type = ftype.NFDIR; mode |= (uint)modes.DIR; size = 4096; blocksize = 4096; blocks = 8; atime = new timeval(fileInfo.LastAccessTime); mtime = new timeval(fileInfo.LastWriteTime); } else { if (fileInfo.Extension == ".sl") { type |= ftype.NFLNK; mode = (uint)modes.LNK; } else { type = ftype.NFREG; mode |= (uint)modes.REG; } size = (uint)fileInfo.Length; blocks = (size / 4096) + (4096 - (size % 4096)); atime = new timeval(fileInfo.LastAccessTime); mtime = new timeval(fileInfo.LastWriteTime); } if ((fileInfo.Attributes & FileAttributes.ReadOnly) == 0) { mode |= (uint)modes.WOWN; } fileid = fh.Index; //Console.WriteLine("fattr name:{0}, fileid:{1}, attrs:{2}, readonly:{3}", file.Name, fileid, fileInfo.Attributes, (fileInfo.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly); }
public sattr(rpcCracker cracker) { mode = cracker.get_uint32(); uid = cracker.get_uint32(); gid = cracker.get_uint32(); size = cracker.get_uint32(); atime = new timeval(cracker); mtime = new timeval(cracker); }
public fattr(fhandle fh) { FileEntry file = FileTable.LookupFileEntry(fh); if (file == null) { Console.WriteLine("fattr on invalid file handle:{0}", fh.Index); throw new NFSStatusException(NFSStatus.NFSERR_STALE); } FileInfo fileInfo = new FileInfo(file.Name); if (fileInfo.Exists == false) if (new DirectoryInfo(file.Name).Exists == false) throw new System.IO.FileNotFoundException(); if ((fileInfo.Attributes & FileAttributes.Directory) != 0) { type = ftype.NFDIR; mode |= (uint)modes.DIR; size = 4096; blocksize = 4096; blocks = 8; atime = new timeval(fileInfo.LastAccessTime); mtime = new timeval(fileInfo.LastWriteTime); } else { if (fileInfo.Extension == ".sl") { type |= ftype.NFLNK; mode = (uint)modes.LNK; } else { type = ftype.NFREG; mode |= (uint)modes.REG; } size = (uint)fileInfo.Length; blocks = (size / 4096) + (4096 - (size % 4096)); atime = new timeval(fileInfo.LastAccessTime); mtime = new timeval(fileInfo.LastWriteTime); } if ((fileInfo.Attributes & FileAttributes.ReadOnly) == 0) mode |= (uint)modes.WOWN; fileid = fh.Index; //Console.WriteLine("fattr name:{0}, fileid:{1}, attrs:{2}, readonly:{3}", file.Name, fileid, fileInfo.Attributes, (fileInfo.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly); }