示例#1
0
int
MultiServer::wstat(ServerContext& s, const char *path, file_stat_t& fileStat, uint32_t mask)
{
	string subdir;
	FileServer *server = getServer(s, path, subdir);
	if (fileStat.fs_rename.length() > 0)
	{
		string newname;
		FileServer *server2 = getServer(s, fileStat.fs_rename.c_str(), newname);
		if (server2 && server == server2)
		{
			fileStat.fs_rename = newname;
		}
		else
		{
			return -EPERM;
		}
	}
	if (server && !server->readOnly(s))
	{
		return server->wstat(s, subdir.c_str(), fileStat, mask);
	}
	// MemoryServer::wstat(s, path, fileStat, mask));
	return -EPERM;
}