* Fixed so casentries collected through populating from disk have their verified and exists set to true
* Changed so copyorlink the cas data to temporary folders for execution are never linked on macos.. for some reason this does not always work which is strange
[CL 35908391 by henrik karlsson in ue5-main branch]
* Fixed so PopulateCasFromDirs now use file lookup table to prevent cas calculation if file has been calculated before
[CL 35730628 by henrik karlsson in ue5-main branch]
* Added support for including log lines in cache entries. Design is based on that the log lines are the same most of the time and we store a shared log line per cache key that is part of the response when requesting cache entries for a key. If entries have different log lines inside the same key we will receive those as part of the ReportUsedEntry message.
* Fixed linux arm compile error
[CL 35145540 by henrik karlsson in ue5-main branch]
* Fixed so bad file path entries are not saved to casdb file
* Added so allow proxy can be set from config files
* Added assert for if bad files have entered the cas entry directory on disk
[CL 34476627 by henrik karlsson in ue5-main branch]
* Added support for strings and comments in config files
* Added tests
* Fixed for uba to work integrated in other programs (proper dll exports)
* Added process id to process info in visualizer
[CL 34364596 by henrik karlsson in ue5-main branch]
* Fixed bug where renamed file reported wrong stringkey for name to session from detoured process
* Fixed so compressed obj files wrote the right size on disk to file lookuptable
[CL 34184061 by henrik karlsson in ue5-main branch]
* Changed so casdb entry is not invalidated when file is stored from helper since we already have caskey and everything ready
* Added options to disable usage of cache hits in cacheclient.. this is a debugging feature
* Added option to not use path roots in cache client
* Added more debug information to try to figure out bug where cache client sees wrong cas key of file
[CL 34170695 by henrik karlsson in ue5-main branch]
* Reverted back to use OpenFile/GetFileInformation instead of GetFileAttributes because weirdly enough it seems to be much faster on cloud setups like AWS.. and I don't know why. You would think 1 syscall is faster than three (open,getinfo.close). GetFileInformation even contains more info than GetFileAttributes :-)
[CL 34144760 by henrik karlsson in ue5-main branch]
* Added more debug logging to writetocache mismatch
* Renamed all "entry" to either casEntry or fileEntry in order to be able to more easily do find-in-files
* Fixed so store entry done message is sent on fail as well (so server can clean up)
[CL 34142236 by henrik karlsson in ue5-main branch]
* Attempt at fixing problem with cache client seeing the wrong file when writing to cache. Problem is related to a race condition between directory crawler threads and writing files. We can end up in this scenario
1. Crawler query directory, file information gets stored in temporary state. and crawler starts traversing state
2. File is written and new date is set to file on disk, and file db entry is set to verified false.
3. Crawler hits the same file and now checks temporary state with file db entry and notice the lastwritten is the same, and set it back to verified. (but it is not the same)
[CL 34132081 by henrik karlsson in ue5-main branch]
* Added extra validation when writing cache entries
* Disabled directory preparsing when fetching cache entries for now
[CL 34100764 by henrik karlsson in ue5-main branch]
* Removed duplicated code
* Added asserts to make sure no compressed obj files are used to calculate cas key
* Added missing locks around some code that should have locks
[CL 34072568 by henrik karlsson in ue5-main branch]
* Added directory preparsing in UbaCacheClient where it parse the entire folder when needing the hash of a file
[CL 34060027 by henrik karlsson in ue5-main branch]
* Renamed system stats to kernel stats
* Changed all stats storing to use bitfield first to say which fields that are non-zero
[CL 34058881 by henrik karlsson in ue5-main branch]
* Optimized cache entry matching
* Added StoreCasKey and changed some StoreCasFile to StoreCasKey in CacheClient which does not need to store cas files
* Changed some parts of the code to use string keys instead of strings since the keys are designed to have correct casing
[CL 34027529 by henrik karlsson in ue5-main branch]
* Fixed bug in previous submit.. FileExists would return true for directories.. while OpenForRead would return false for directories
[CL 33986027 by henrik karlsson in ue5-main branch]
* Added more stats to cache fetch to be able to figure out where time goes
* Changed code to use FileExists instead of GetFileInformation.. since we only need information that can be fetched with FileExists
* Removed usage of sprintf when creating cas filename
[CL 33979482 by henrik karlsson in ue5-main branch]
* Added -expiration=<seconds> to UbaCacheService.. This controls when cache entries should be deleted. If an entry has been unused for more than <expiration> time it gets deleted. Defaults to two days.
* Added reason why cache entries are deleted
* Changed so cas database is always checked in startup.
[CL 33963630 by henrik karlsson in ue5-main branch]
* Added StringView type and replaced a ton of string+stringLen to StringView
* Fixed bug in obj file preloader.
* Fixed so clang targets can used compressed obj files
* Fixed bug in cache client when entry count is zero
* Added magic to compressed obj file header to be able to see if an obj file is compressed or not
* Moved ParseArguments to its own file and added so it can handle both char and wchar
[CL 33933853 by henrik karlsson in ue5-main branch]