}
else
{
- tUserHandles *ent;
int pid = Threads_GetPID();
int maxhandles = *Threads_GetMaxFD();
- ent = VFS_int_GetUserHandles(pid, 0);
+ tUserHandles *ent = VFS_int_GetUserHandles(pid, 0);
if(!ent) {
Log_Error("VFS", "Client %i does not have a handle list (>)", pid);
return NULL;
return -1;
}
+
+void VFS_ClearHandles(int PID)
+{
+ // Find the PID's handle list
+ tUserHandles *ent = VFS_int_GetUserHandles(PID, 0);
+ if( !ent ) return;
+ // Get a handle
+ int maxhandles = *Threads_GetMaxFD();
+ for( int i = 0; i < maxhandles; i ++ )
+ {
+ if(ent->Handles[i].Node) continue;
+ _CloseNode(ent->Handles[i].Node);
+ ent->Handles[i].Node = NULL;
+ }
+}