summaryrefslogtreecommitdiff
path: root/src/buildtool/serve_api/serve_service/target.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildtool/serve_api/serve_service/target.cpp')
-rw-r--r--src/buildtool/serve_api/serve_service/target.cpp20
1 files changed, 6 insertions, 14 deletions
diff --git a/src/buildtool/serve_api/serve_service/target.cpp b/src/buildtool/serve_api/serve_service/target.cpp
index d7e48402..341b326e 100644
--- a/src/buildtool/serve_api/serve_service/target.cpp
+++ b/src/buildtool/serve_api/serve_service/target.cpp
@@ -67,21 +67,13 @@ auto TargetService::GetDispatchList(
dispatch_info.ToString())};
}
// parse content
- try {
- auto parsed = ParseDispatch(*dispatch_str);
- if (parsed.index() == 0) {
- // pass the parsing error forward
- return ::grpc::Status{::grpc::StatusCode::FAILED_PRECONDITION,
- std::get<0>(parsed)};
- }
- return std::get<1>(parsed);
- } catch (std::exception const& e) {
- return ::grpc::Status{::grpc::StatusCode::INTERNAL,
- fmt::format("Parsing dispatch blob {} "
- "unexpectedly failed with:\n{}",
- dispatch_digest.hash(),
- e.what())};
+ auto parsed = ParseDispatch(*dispatch_str);
+ if (not parsed) {
+ // pass the parsing error forward
+ return ::grpc::Status{::grpc::StatusCode::FAILED_PRECONDITION,
+ std::move(parsed).error()};
}
+ return *std::move(parsed);
}
auto TargetService::HandleFailureLog(