Commit Graph

19 Commits

Author SHA1 Message Date
yuriy odonnell
257f18b5b6 unsync - Split OpenID config out of FAuthDesc into a separate structure and use auth desc to generate token cache key instead of just server address
* Avoids unnecessary login steps when using different proxy servers that share auth config

[CL 29877767 by yuriy odonnell in ue5-main branch]
2023-11-21 18:25:48 -05:00
yuriy odonnell
cc9c8ca84c unsync - Move code related to building the target file into a separate .h/cpp
[CL 29701697 by yuriy odonnell in ue5-main branch]
2023-11-13 19:34:29 -05:00
yuriy odonnell
149778ff91 unsync - Always use the specified proxy server for performing authentication instead of auto-selected closest, fix few other minor issues
* Use correct TLS subject after auto-selecting a proxy (previously the root proxy address was used)

[CL 29051065 by yuriy odonnell in ue5-main branch]
2023-10-24 15:07:43 -04:00
yuriy odonnell
3cf6f9a0c0 unsync - Add search query to discover available builds through proxy
#rb none

[CL 28166018 by yuriy odonnell in ue5-main branch]
2023-09-22 20:13:26 -04:00
yuriy odonnell
54072f0aee unsync - Set a 60 second timeout on socket recv operations by default
* Use --no-timeout flag to disable

#rb none

[CL 27942659 by yuriy odonnell in ue5-main branch]
2023-09-15 22:24:38 -04:00
yuriy odonnell
a02ea83d83 unsync - Use multiple concurrent connections during file download query
* Bump version to 1.0.54

#rb none

[CL 27714879 by yuriy odonnell in ue5-main branch]
2023-09-08 12:19:57 -04:00
yuriy odonnell
8c7bdecb04 unsync - Add support for direct manifest download from proxy server (bypassing SMB)
* Add --login flag to sync command
* Add in-process token cache
* Add auth token when quering server features
* Use direct download path when supported by server

#jira UE-192913
#rb none

[CL 27535921 by yuriy odonnell in ue5-main branch]
2023-08-31 16:20:09 -04:00
yuriy odonnell
c9dc86cb37 unsync - Add dedicated login command and make output more machine-friendly
* Make TLS a mandatory required library
* Redirect human-readable log messages of login and query commands to stderr, while only directing machine-readable messages to stdout

#rb none

[CL 27471298 by yuriy odonnell in ue5-main branch]
2023-08-29 19:18:18 -04:00
yuriy odonnell
0cb9903591 unsync - Automatically refresh access token only when it's close to expiration
- Add FHttpRequest::BearerToken field
- Validate credentials using login endpoint

#jira UE-192913
#rb none

[CL 27233166 by yuriy odonnell in ue5-main branch]
2023-08-20 19:45:21 -04:00
yuriy odonnell
37b1da7fde unsync - Groundwork for user authentication
#jira UE-192913
#rb none

[CL 27227985 by yuriy odonnell in ue5-main branch]
2023-08-18 21:41:29 -04:00
yuriy odonnell
74e05813ad unsync - Skip automatic proxy selection for query command, use dedicated ping endpoint, refactor query helpers and download result mechanism
#rb none

[CL 27153277 by yuriy odonnell in ue5-main branch]
2023-08-16 16:34:36 -04:00
Yuriy ODonnell
1702de7c3f unsync - Add available disk check before starting sync, add anonymized machine name to telemetry
#rb none
#preflight none

[CL 22490002 by Yuriy ODonnell in ue5-main branch]
2022-10-12 20:45:24 -04:00
Yuriy ODonnell
0bed95e711 unsync - Use TLS during handshake if running with --tls option, skip all certificate validation with --insecure option
#preflight skip

[CL 21066879 by Yuriy ODonnell in ue5-main branch]
2022-07-12 22:10:46 -04:00
Yuriy ODonnell
10b0e773a3 unsync - Fix crash when initial proxy handshake fails
Also use plain (non-TLS) connection for handshake by default

#preflight none
#rb none

[CL 21039956 by Yuriy ODonnell in ue5-main branch]
2022-07-11 10:31:33 -04:00
Yuriy ODonnell
72d8aecd98 unsync - Add client version string to telemetry data
#preflight skip
#rb none

[CL 20998114 by Yuriy ODonnell in ue5-main branch]
2022-07-07 22:34:43 -04:00
Yuriy ODonnell
15ae7848a8 unsync - Send basic sync stat telemetry to the server (if server supports it)
#preflight skip

[CL 20938659 by Yuriy ODonnell in ue5-main branch]
2022-07-04 23:38:13 -04:00
Yuriy ODonnell
fa2684b9d7 unsync - Remove std::filesystem namespace alias and add wrappers for various filesystem functions
#rb none
#preflight skip

[CL 19301694 by Yuriy ODonnell in ue5-main branch]
2022-03-08 08:17:08 -05:00
Yuriy ODonnell
bae920b60e unsync - Fix build errors on Linux, remove the bundled blake3 version (use existing UE package)
#rb Martin.Ridgers
#preflight skip

[CL 19069588 by Yuriy ODonnell in ue5-main branch]
2022-02-22 02:09:06 -05:00
Yuriy ODonnell
b5709042fb Import Unsync into the main source tree
This is a binary patching and incremental downloading tool, similar to rsync or zsync. It aims to improve the large binary download processes that previously were served by robocopy (i.e. full packages produced by the build farm).

The original code can be found in `//depot/usr/yuriy.odonnell/unsync`. This commit is a branch from the original location to preserve history.

While the codebase is designed to be self-contained and does not depend on any engine libraries, it mostly follows the UE coding guidelines and can be built with UBT.

Currently only Windows is supported, however the tool is expected to also work on Mac and Linux in the future.

#rb Martin.Ridgers
#preflight skip

[CL 18993571 by Yuriy ODonnell in ue5-main branch]
2022-02-15 04:30:27 -05:00