blob: d1ce07bd8007e3ef6fb34cc8dc00bd295301023e [file] [log] [blame]
// Copyright 2020 The Fuchsia 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 "src/storage/blobfs/blob_corruption_notifier.h"
#include <fuchsia/blobfs/c/fidl.h>
#include <lib/syslog/cpp/macros.h>
#include <zircon/status.h>
namespace blobfs {
void FidlBlobCorruptionNotifier::NotifyCorruptBlob(const digest::Digest& digest) const {
FX_LOGS(ERROR) << "Corrupt blob: " << digest.ToString();
if (corruption_handler_.is_valid()) {
fidl::WireCall(corruption_handler_)
.CorruptBlob(fidl::VectorView<uint8_t>::FromExternal(const_cast<uint8_t*>(digest.get()),
digest.len()));
} else {
// We normally expect the updater system to be registered for corrupted blobs.
FX_LOGS(INFO) << "No corruption handler registered while processing corrupt blob.";
}
}
} // namespace blobfs