diff options
author | Alberto Sartori <alberto.sartori@huawei.com> | 2025-02-24 14:16:42 +0100 |
---|---|---|
committer | Alberto Sartori <alberto.sartori@huawei.com> | 2025-02-25 11:27:16 +0100 |
commit | 455003d0e924414db339395e8367166e7820c5da (patch) | |
tree | 54d117565ea7edf059f4a18ebb1aaceca764ec5c /src/buildtool/serve_api/serve_service/configuration.hpp | |
parent | e61131b18ad90e9fc067e6036cbcd6c64b28c986 (diff) | |
download | justbuild-455003d0e924414db339395e8367166e7820c5da.tar.gz |
just serve: allow clients to access execution endpoint with a different address
To properly use `just serve`, both the client and the serve instance
must talk to the very same execution endpoint. Typically, both the
client and serve can reach out to the execution endpoint via the same
IP address. However, it might be possible that the client and a serve
instance know the same execution endpoint by means of differnet IP
addresses. For example, the client knows the execution endpoint
address through an _external_ IP address, while the serve instance,
deployed within the same network infrastructure, only knows the
_internal_ IP address.
This patch adds the subkey `"client address"` -- of the key
`"execution endpoint"` -- in the serve configuration file, to specify
the alternative pair `address:port` used by the client.
Diffstat (limited to 'src/buildtool/serve_api/serve_service/configuration.hpp')
-rw-r--r-- | src/buildtool/serve_api/serve_service/configuration.hpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/buildtool/serve_api/serve_service/configuration.hpp b/src/buildtool/serve_api/serve_service/configuration.hpp index 35431b7f..ce37c31d 100644 --- a/src/buildtool/serve_api/serve_service/configuration.hpp +++ b/src/buildtool/serve_api/serve_service/configuration.hpp @@ -22,6 +22,7 @@ #include "justbuild/just_serve/just_serve.pb.h" #include "src/buildtool/crypto/hash_function.hpp" #include "src/buildtool/execution_api/remote/config.hpp" +#include "src/buildtool/serve_api/remote/config.hpp" // This service can be used by the client to double-check the server // configuration. @@ -30,9 +31,11 @@ class ConfigurationService final public: explicit ConfigurationService( HashFunction::Type hash_type, - gsl::not_null<RemoteExecutionConfig const*> const& - remote_config) noexcept - : hash_type_{hash_type}, remote_config_{*remote_config} {}; + gsl::not_null<RemoteExecutionConfig const*> const& remote_config, + gsl::not_null<RemoteServeConfig const*> const& serve_config) noexcept + : hash_type_{hash_type}, + remote_config_{*remote_config}, + serve_config_{*serve_config} {} // Returns the address of the associated remote endpoint, if set, // or an empty string signaling that the serve endpoint acts also @@ -58,6 +61,7 @@ class ConfigurationService final private: HashFunction::Type hash_type_; RemoteExecutionConfig const& remote_config_; + RemoteServeConfig const& serve_config_; }; #endif // INCLUDED_SRC_BUILD_SERVE_API_SERVE_SERVICE_CONFIGURATION_HPP |