MCPcopy Create free account
hub / github.com/bailey27/cppcryptfs / check_node_clean

Method check_node_clean

libcppcryptfs/filename/casecache.cpp:107–141  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

105}
106
107bool CaseCache::check_node_clean(CaseCacheNode *node)
108{
109
110 if (!m_ttl || (GetTickCount64() - node->m_timestamp < m_ttl))
111 return true;
112
113 wstring enc_path;
114
115 if (!encrypt_path(m_con, node->m_path.c_str(), enc_path, NULL))
116 return false;
117
118 HANDLE hFile = CreateFile(enc_path.c_str(), FILE_READ_ATTRIBUTES, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, NULL,
119 OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);
120
121 if (hFile == INVALID_HANDLE_VALUE)
122 return false;
123
124 FILETIME LastWriteTime;
125
126 BOOL bResult = GetFileTime(hFile, NULL, NULL, &LastWriteTime);
127
128 CloseHandle(hFile);
129
130 if (!bResult)
131 return false;
132
133 bResult = CompareFileTime(&node->m_filetime, &LastWriteTime) >= 0;
134
135 if (bResult) {
136 node->m_timestamp = GetTickCount64();
137 return true;
138 } else {
139 return false;
140 }
141}
142
143void CaseCache::update_lru(CaseCacheNode *node)
144{

Callers

nothing calls this directly

Calls 1

encrypt_pathFunction · 0.85

Tested by

no test coverage detected