1
0

Fixed timeout

This commit is contained in:
Scott E. Graves
2017-03-31 23:09:50 -05:00
parent ab69cf82f9
commit 7e3c4e13e1

View File

@@ -749,7 +749,7 @@ private:
CEventSystem::EventSystem.NotifyEvent(CreateSystemEvent(DokanReadFile(filePath)));
auto openFileInfo = reinterpret_cast<OpenFileInfo*>(dokanFileInfo->Context);
if (openFileInfo->Dummy)
if (openFileInfo && openFileInfo->Dummy)
{
// TODO taking too long
if (!AddFileToCache(*openFileInfo, dokanFileInfo))
@@ -758,7 +758,7 @@ private:
}
}
HANDLE tempHandle = openFileInfo->FileHandle;
HANDLE tempHandle = openFileInfo ? openFileInfo->FileHandle : 0;
BOOL opened = FALSE;
if (!tempHandle || (tempHandle == INVALID_HANDLE_VALUE))
{
@@ -808,7 +808,7 @@ private:
auto openFileInfo = reinterpret_cast<OpenFileInfo*>(dokanFileInfo->Context);
BOOL opened = FALSE;
HANDLE tempHandle = openFileInfo->FileHandle;
HANDLE tempHandle = openFileInfo ? openFileInfo->FileHandle : 0;
if (!tempHandle || (tempHandle == INVALID_HANDLE_VALUE))
{
tempHandle = ::CreateFile(&filePath[0], GENERIC_WRITE, FILE_SHARE_WRITE, nullptr, OPEN_EXISTING, 0, nullptr);
@@ -888,7 +888,8 @@ private:
if (::WriteFile(tempHandle, buffer, bytesToWrite, bytesWritten, nullptr))
{
openFileInfo->Changed = true;
if (openFileInfo)
openFileInfo->Changed = true;
}
else
{
@@ -898,9 +899,11 @@ private:
return DokanNtStatusFromWin32(error);
}
// close the file when it is reopene bxkjuoqoa'qq d
if (opened)
CloseHandle(tempHandle);
if (opened)
{
// TODO HandleSiaFileClose
CloseHandle(tempHandle);
}
return STATUS_SUCCESS;
}
@@ -914,7 +917,7 @@ private:
CEventSystem::EventSystem.NotifyEvent(CreateSystemEvent(DokanSetEndOfFile(filePath)));
auto openFileInfo = reinterpret_cast<OpenFileInfo*>(dokanFileInfo->Context);
if (!openFileInfo->FileHandle || (openFileInfo->FileHandle == INVALID_HANDLE_VALUE))
if (!openFileInfo || !openFileInfo->FileHandle || (openFileInfo->FileHandle == INVALID_HANDLE_VALUE))
{
ret = STATUS_INVALID_HANDLE;
}
@@ -994,7 +997,7 @@ private:
CEventSystem::EventSystem.NotifyEvent(CreateSystemEvent(DokanFlushFileBuffers(filePath)));
auto openFileInfo = reinterpret_cast<OpenFileInfo*>(dokanFileInfo->Context);
if (!openFileInfo->FileHandle || (openFileInfo->FileHandle == INVALID_HANDLE_VALUE))
if (!openFileInfo || !openFileInfo->FileHandle || (openFileInfo->FileHandle == INVALID_HANDLE_VALUE))
{
return STATUS_SUCCESS;
}
@@ -1065,7 +1068,7 @@ private:
{
ret = STATUS_ACCESS_DENIED;
}
else if (openFileInfo->FileHandle && (openFileInfo->FileHandle != INVALID_HANDLE_VALUE))
else if (openFileInfo && openFileInfo->FileHandle && (openFileInfo->FileHandle != INVALID_HANDLE_VALUE))
{
FILE_DISPOSITION_INFO fdi;
fdi.DeleteFile = dokanFileInfo->DeleteOnClose;
@@ -1088,7 +1091,7 @@ private:
CEventSystem::EventSystem.NotifyEvent(CreateSystemEvent(DokanMoveFileW(filePath, newFilePath)));
auto openFileInfo = reinterpret_cast<OpenFileInfo*>(dokanFileInfo->Context);
if (!openFileInfo->FileHandle || (openFileInfo->FileHandle == INVALID_HANDLE_VALUE))
if (!openFileInfo || !openFileInfo->FileHandle || (openFileInfo->FileHandle == INVALID_HANDLE_VALUE))
{
ret = STATUS_INVALID_HANDLE;
}
@@ -1204,7 +1207,7 @@ private:
CEventSystem::EventSystem.NotifyEvent(CreateSystemEvent(DokanSetFileSecurityW(filePath)));
auto openFileInfo = reinterpret_cast<OpenFileInfo*>(dokanFileInfo->Context);
if (!openFileInfo->FileHandle || (openFileInfo->FileHandle == INVALID_HANDLE_VALUE))
if (!openFileInfo || !openFileInfo->FileHandle || (openFileInfo->FileHandle == INVALID_HANDLE_VALUE))
{
return STATUS_INVALID_HANDLE;
}
@@ -1226,7 +1229,7 @@ private:
CEventSystem::EventSystem.NotifyEvent(CreateSystemEvent(DokanSetFileTime(filePath)));
auto openFileInfo = reinterpret_cast<OpenFileInfo*>(dokanFileInfo->Context);
if (!openFileInfo->FileHandle || (openFileInfo->FileHandle == INVALID_HANDLE_VALUE))
if (!openFileInfo || !openFileInfo->FileHandle || (openFileInfo->FileHandle == INVALID_HANDLE_VALUE))
{
return STATUS_INVALID_HANDLE;
}
@@ -1248,7 +1251,7 @@ private:
CEventSystem::EventSystem.NotifyEvent(CreateSystemEvent(DokanSetAllocationSize(filePath)));
auto openFileInfo = reinterpret_cast<OpenFileInfo*>(dokanFileInfo->Context);
if (!openFileInfo->FileHandle || (openFileInfo->FileHandle == INVALID_HANDLE_VALUE))
if (!openFileInfo || !openFileInfo->FileHandle || (openFileInfo->FileHandle == INVALID_HANDLE_VALUE))
{
ret = STATUS_INVALID_HANDLE;
}