blob: 32d26a9f6a3db8945bd8561596aff36b88e70615 [file] [log] [blame]
// Copyright 2020 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include <iostream>
#include <sys/socket.h>
#include <linux/vm_sockets.h> // Needs to come after sys/socket.h
#include <base/strings/stringprintf.h>
#include <vm_protos/proto_bindings/vm_crash.grpc.pb.h>
#include <chromeos/constants/vm_tools.h>
#include <grpcpp/grpcpp.h>
int main(int argc, char* argv[]) {
if (argc != 2) {
std::cerr << "This tool must be called as ./guest_service_failure_notifier "
"service_name"
<< std::endl;
return 1;
}
std::shared_ptr<grpc::Channel> chan =
grpc::CreateChannel(base::StringPrintf("vsock:%u:%u", VMADDR_CID_HOST,
vm_tools::kCrashListenerPort),
grpc::InsecureChannelCredentials());
vm_tools::cicerone::CrashListener::Stub stub{chan};
grpc::ClientContext ctx;
vm_tools::EmptyMessage empty;
vm_tools::cicerone::FailureReport failure_report;
failure_report.set_failed_process(argv[1]);
stub.SendFailureReport(&ctx, failure_report, &empty);
return 0;
}