aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* httpasio: Implemented some handling for Expect: headerStefan Boberg2021-10-181-17/+33
| | | | | | We do not actually send a 100 CONTINUE still though since this is not necessary with the changes we made UE-side Also tweaked some of the internal request state management and added some debug logging
* project store: DELETE {project} request now produces a correct HTTP responseStefan Boberg2021-10-181-0/+2
|
* httpsys: Added automatic translation of 200 OK -> 204 NO CONTENT for case ↵Stefan Boberg2021-10-181-2/+10
| | | | where there is no body (upset some clients)
* structured cache: Implemented GarbageCollect() for disk and memory bucketsStefan Boberg2021-10-161-26/+87
|
* Fixed up some more windows include issuesStefan Boberg2021-10-153-2/+7
|
* Fixed logic for picking a default http implementation, which was caused by ↵Stefan Boberg2021-10-151-5/+5
| | | | inconsistent preprocessor definitions
* zencore: Enabled MSC warning 4668 to get warnings when preprocessor macros ↵Stefan Boberg2021-10-1526-85/+77
| | | | | | | | are used without an explicit definition Also fixed up various code to compile with this, by using ZEN_THIRD_PARTY_INCLUDES_START/ZEN_THIRD_PARTY_INCLUDES_END macros Removed prewindows.h/postwindows.h since they are no longer to be used due to the above
* zencore: added ZEN_THIRD_PARTY_INCLUDES_START/ZEN_THIRD_PARTY_INCLUDES_ENDStefan Boberg2021-10-151-0/+17
| | | | These should be used around third party header includes to ensure they don't fire warnings we want to have enabled for our code
* structured cache: fixed mistake in back-off logicStefan Boberg2021-10-151-9/+14
| | | | this bug would make PUTs to clean zen instances very slow
* httpasio: Implemented support for specifying accept type via url suffixStefan Boberg2021-10-151-3/+37
|
* clang-formatStefan Boberg2021-10-156-10/+13
|
* httpasio: implemented proper handling of query stringsStefan Boberg2021-10-151-44/+63
| | | | Also removed fake dates from responses (there are in fact no date headers at all now)
* asio HTTP implementation (#23)Stefan Boberg2021-10-1421-164/+1375
| | | asio-based HTTP implementation
* Merge branch 'main' of https://github.com/EpicGames/zenStefan Boberg2021-10-132-6/+78
|\
| * Add remote execute functions (#15)Joe Kirchoff2021-10-132-6/+78
| | | | | | Also fix request type for exists, should be head.
* | projectstore: Removing support for requesting attachments by hash using ↵Stefan Boberg2021-10-131-55/+5
|/ | | | offset/length (not needed and we will remove this path entirely)
* Merge branch 'main' of https://github.com/EpicGames/zenStefan Boberg2021-10-132-49/+185
|\
| * Added support for decompressing from offset.Per Larsson2021-10-132-49/+185
| |
* | structuredcache: add code to handle conflict which can occur when multiple ↵Stefan Boberg2021-10-131-8/+27
|/ | | | PUTs of the same value occur close enough to cause issues due to file system races
* Ratios should not be percentages (this should be done in presentation)Stefan Boberg2021-10-112-4/+4
|
* stats: Added support for handler unregistrationStefan Boberg2021-10-115-6/+36
|
* Added lofreq timer update to httpsys main loopStefan Boberg2021-10-112-2/+8
|
* iobuffer: Changed MakeFromTemporaryFile so it accepts a path instead of a ↵Stefan Boberg2021-10-083-5/+5
| | | | character pointer
* zenstore: Added forcelink stuff to ensure we bring in filecas testsStefan Boberg2021-10-081-0/+2
|
* Added ScopedTemporaryDirectory which specifies a particular directory path ↵Stefan Boberg2021-10-082-0/+8
| | | | | | to use This is primarily for temporary debugging purposes, since it can be more convenient to use the same directory over and over
* Added another test exe name to GetExePath testStefan Boberg2021-10-081-2/+2
|
* filecas: stress test code to understand access denied errorsStefan Boberg2021-10-082-6/+132
| | | | | | Added stress test for file cas file rename strategy (compiled out by default), to understand behaviour and why we get access denied errors in some cases when opening a file Also added code to ensure source file is deleted in the case where we end up hitting this error condition
* Removed invalid commentStefan Boberg2021-10-081-1/+1
|
* basicfile: Added Write member functions accepting MemoryView for convenienceStefan Boberg2021-10-082-0/+14
|
* filecas: Added handling of error when a rename is attempted but the target ↵Stefan Boberg2021-10-081-1/+8
| | | | already exists
* Added shell32.dll to delay load list since it's only needed when no ↵Stefan Boberg2021-10-074-941/+2
| | | | | | directory is specified on the command line Also removed redundant vfs files
* NiceByteRateToBuffer could cause a divide-by-zero in some cases - fixedStefan Boberg2021-10-071-1/+11
|
* Only enable the MSVC debug output sink for sessions when the --debug mode is ↵Stefan Boberg2021-10-061-1/+1
| | | | | | enabled Previously it would always be enabled if an attached debugger was detected but it impacts performance quite severely so now it is opt-in
* structured cache: Added locking around large cache value updates to prevent ↵Stefan Boberg2021-10-061-13/+37
| | | | races leading to file sharing violations
* Support for asynchronous HTTP response processing (#19)Stefan Boberg2021-10-0614-190/+627
| | | | | | | | This change introduces WriteResponseAsync which can be used to move potentially slow request handler code (like upstream lookups) off the I/O service thread to ensure we are always able to serve as many HTTP requests as possible. The current implementation defaults to 16 async worker threads and there is currently no back-pressure. - Added RequestStats - Metrics for network requests. Aggregates tracking of duration, payload sizes into a single class for ease of use - Added some metrics on upstream communication Co-authored-by: Per Larsson <[email protected]>
* Added option to specify path to logfile.Per Larsson2021-10-063-1/+4
|
* clang-formatStefan Boberg2021-10-054-4/+7
|
* MergedStefan Boberg2021-10-051-1/+1
|\
| * Merge branch 'main' of https://github.com/EpicGames/zen into mainStefan Boberg2021-10-051-3/+48
| |\
| | * Serialize JSON NaN numbers to null.Per Larsson2021-10-051-3/+48
| | |
| * | Added Ref<> constructor which allows casting from derived types to parent typesStefan Boberg2021-10-051-0/+9
| | |
| * | Merge branch 'main' of https://github.com/EpicGames/zen into mainStefan Boberg2021-10-0526-232/+720
| |\|
| | * Pass logger from Zen client to session instead from spdlog registry.Per Larsson2021-10-052-3/+8
| | |
| | * status: Exposed global status at /status/statusStefan Boberg2021-10-041-13/+50
| | |
| | * stats: Implemented new stats endpointStefan Boberg2021-10-048-23/+99
| | | | | | | | | | | | | | | | | | | | | | | | Stats are exposed under /stats/{id}, so for example structured cache stats are exposed under /stats/z$ The separate endpoint makes it easier to separate request handling to ensure stats/status endpoints still respond if the regular request queue is somehow saturated or otherwise not behaving There is also a /status endpoint which is similar and is targeted towards lightweight health monitoring
| | * filesystem: Added comment for future optimization opportunities in ↵Stefan Boberg2021-10-041-0/+7
| | | | | | | | | | | | CreateDirectories
| | * http: strip any known content-type suffixes from URI before passing it to a ↵Stefan Boberg2021-10-041-9/+14
| | | | | | | | | | | | service
| | * zenserver: Changed initialization flowStefan Boberg2021-10-046-155/+296
| | | | | | | | | | | | | | | | | | | | | - HTTP server is now started earlier, so it can be queried while scrubbing/recovery runs - Stats/status services are initialized before anything else, so they can be used to monitor progress while scrubbing happens - Structured cache initialization is now in a separate function - Scrubbing now emits some summary stats at the point of completion
| | * monitoring: added stubs for /stats and /status endpointsStefan Boberg2021-10-046-0/+132
| | | | | | | | | | | | this is a tactical check-in to allow me to merge some other changes
| | * clang-formatStefan Boberg2021-10-042-2/+2
| | |