[Yunq] Check identify byte and ensure users check status code.

This commit is contained in:
Drew Galbraith 2023-12-01 09:42:11 -08:00
parent 7d9f9a7ae9
commit 3eba0bd9d8
21 changed files with 142 additions and 67 deletions

View file

@ -48,7 +48,11 @@ glcr::ErrorCode DenaliClient::Read(const ReadRequest& request, ReadResponse& res
RET_ERR(buffer_.At<uint64_t>(8));
response.ParseFromBytes(buffer_, 16, cap_buffer_);
// TODO: Return status.
auto status = response.ParseFromBytes(buffer_, 16, cap_buffer_);
if (!status) {
return status.code();
}
return glcr::OK;
@ -87,7 +91,11 @@ glcr::ErrorCode DenaliClient::ReadMany(const ReadManyRequest& request, ReadRespo
RET_ERR(buffer_.At<uint64_t>(8));
response.ParseFromBytes(buffer_, 16, cap_buffer_);
// TODO: Return status.
auto status = response.ParseFromBytes(buffer_, 16, cap_buffer_);
if (!status) {
return status.code();
}
return glcr::OK;

View file

@ -25,7 +25,7 @@ glcr::Status ReadRequest::ParseFromBytes(const glcr::ByteBuffer& bytes, uint64_t
}
glcr::Status ReadRequest::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
RETURN_ERROR(yunq::CheckHeader(bytes));
RETURN_ERROR(yunq::CheckHeader(bytes, offset));
// Parse device_id.
set_device_id(bytes.At<uint64_t>(offset + header_size + (8 * 0)));
// Parse lba.
@ -79,7 +79,7 @@ glcr::Status ReadManyRequest::ParseFromBytes(const glcr::ByteBuffer& bytes, uint
}
glcr::Status ReadManyRequest::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
RETURN_ERROR(yunq::CheckHeader(bytes));
RETURN_ERROR(yunq::CheckHeader(bytes, offset));
// Parse device_id.
set_device_id(bytes.At<uint64_t>(offset + header_size + (8 * 0)));
// Parse lba.
@ -200,7 +200,7 @@ glcr::Status ReadResponse::ParseFromBytes(const glcr::ByteBuffer& bytes, uint64_
}
glcr::Status ReadResponse::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
RETURN_ERROR(yunq::CheckHeader(bytes));
RETURN_ERROR(yunq::CheckHeader(bytes, offset));
// Parse device_id.
set_device_id(bytes.At<uint64_t>(offset + header_size + (8 * 0)));
// Parse size.

View file

@ -16,8 +16,8 @@ class ReadRequest {
ReadRequest(const ReadRequest&) = delete;
ReadRequest(ReadRequest&&) = delete;
glcr::Status ParseFromBytes(const glcr::ByteBuffer&, uint64_t offset);
glcr::Status ParseFromBytes(const glcr::ByteBuffer&, uint64_t offset, const glcr::CapBuffer&);
[[nodiscard]] glcr::Status ParseFromBytes(const glcr::ByteBuffer&, uint64_t offset);
[[nodiscard]] glcr::Status ParseFromBytes(const glcr::ByteBuffer&, uint64_t offset, const glcr::CapBuffer&);
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
const uint64_t& device_id() const { return device_id_; }
@ -42,8 +42,8 @@ class ReadManyRequest {
ReadManyRequest(const ReadManyRequest&) = delete;
ReadManyRequest(ReadManyRequest&&) = delete;
glcr::Status ParseFromBytes(const glcr::ByteBuffer&, uint64_t offset);
glcr::Status ParseFromBytes(const glcr::ByteBuffer&, uint64_t offset, const glcr::CapBuffer&);
[[nodiscard]] glcr::Status ParseFromBytes(const glcr::ByteBuffer&, uint64_t offset);
[[nodiscard]] glcr::Status ParseFromBytes(const glcr::ByteBuffer&, uint64_t offset, const glcr::CapBuffer&);
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
const uint64_t& device_id() const { return device_id_; }
@ -68,8 +68,8 @@ class ReadResponse {
ReadResponse(const ReadResponse&) = delete;
ReadResponse(ReadResponse&&) = delete;
glcr::Status ParseFromBytes(const glcr::ByteBuffer&, uint64_t offset);
glcr::Status ParseFromBytes(const glcr::ByteBuffer&, uint64_t offset, const glcr::CapBuffer&);
[[nodiscard]] glcr::Status ParseFromBytes(const glcr::ByteBuffer&, uint64_t offset);
[[nodiscard]] glcr::Status ParseFromBytes(const glcr::ByteBuffer&, uint64_t offset, const glcr::CapBuffer&);
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
const uint64_t& device_id() const { return device_id_; }

View file

@ -103,7 +103,11 @@ glcr::ErrorCode DenaliServerBase::HandleRequest(const glcr::ByteBuffer& request,
ReadRequest yunq_request;
yunq_request.ParseFromBytes(request, kHeaderSize, req_caps);
// TODO: Return status.
auto status = yunq_request.ParseFromBytes(request, kHeaderSize, req_caps);
if (!status) {
return status.code();
}
@ -123,7 +127,11 @@ glcr::ErrorCode DenaliServerBase::HandleRequest(const glcr::ByteBuffer& request,
ReadManyRequest yunq_request;
yunq_request.ParseFromBytes(request, kHeaderSize, req_caps);
// TODO: Return status.
auto status = yunq_request.ParseFromBytes(request, kHeaderSize, req_caps);
if (!status) {
return status.code();
}