/** \internal * Internal method that the other findFilesInFs can call after they * have opened FS_INFO. * @returns OK, STOP, or ERR (error message will already have been registered) */ TSK_RETVAL_ENUM TskAuto::findFilesInFsInt(TSK_FS_INFO * a_fs_info, TSK_INUM_T a_inum) { // see if the super class wants us to proceed TSK_FILTER_ENUM retval = filterFs(a_fs_info); if ((retval == TSK_FILTER_STOP) || (m_stopAllProcessing)) return TSK_STOP; else if (retval == TSK_FILTER_SKIP) return TSK_OK; /* Walk the files, starting at the given inum */ if (tsk_fs_dir_walk(a_fs_info, a_inum, (TSK_FS_DIR_WALK_FLAG_ENUM) (TSK_FS_DIR_WALK_FLAG_RECURSE | m_fileFilterFlags), dirWalkCb, this)) { tsk_error_set_errstr2( "Error walking directory in file system at offset %" PRIuOFF, a_fs_info->offset); registerError(); return TSK_ERR; } if (m_stopAllProcessing) return TSK_STOP; /* We could do some analysis of unallocated blocks at this point... */ return TSK_OK; }
/* Internal method that the other findFilesInFs can call after they * have opened FS_INFO. */ TSK_RETVAL_ENUM TskAuto::findFilesInFsInt(TSK_FS_INFO * a_fs_info, TSK_INUM_T a_inum) { TSK_FILTER_ENUM retval = filterFs(a_fs_info); if (retval == TSK_FILTER_STOP) return TSK_STOP; else if (retval == TSK_FILTER_SKIP) return TSK_OK; /* Walk the files, starting at the given inum */ if (tsk_fs_dir_walk(a_fs_info, a_inum, (TSK_FS_DIR_WALK_FLAG_ENUM) (TSK_FS_DIR_WALK_FLAG_RECURSE | m_fileFilterFlags), dirWalkCb, this)) { char msg[1024]; snprintf(msg, 1024, "Error walking directory in file system at offset %" PRIuOFF " (%s)", a_fs_info->offset, tsk_error_get()); if (tsk_verbose) fprintf(stderr, "%s\n", msg); handleNotification(msg); return TSK_ERR; } /* We could do some analysis of unallocated blocks at this point... */ return TSK_OK; }