diff options
| author | Dan Engelbrecht <[email protected]> | 2022-11-18 12:02:41 +0100 |
|---|---|---|
| committer | Dan Engelbrecht <[email protected]> | 2022-11-25 10:17:34 +0100 |
| commit | 5041f3521c2b3074032c06ed04a391ed90a06c7e (patch) | |
| tree | fbe6c18c79de5abff79394b69d65e38004d9e39e /zenserver/cidstore.cpp | |
| parent | 0.1.9 (diff) | |
| download | zen-5041f3521c2b3074032c06ed04a391ed90a06c7e.tar.xz zen-5041f3521c2b3074032c06ed04a391ed90a06c7e.zip | |
reduce parsing of compressed headers
Diffstat (limited to 'zenserver/cidstore.cpp')
| -rw-r--r-- | zenserver/cidstore.cpp | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/zenserver/cidstore.cpp b/zenserver/cidstore.cpp index 5de347a17..2c760f7be 100644 --- a/zenserver/cidstore.cpp +++ b/zenserver/cidstore.cpp @@ -39,22 +39,22 @@ HttpCidService::HttpCidService(CidStore& Store) : m_CidStore(Store) case HttpVerb::kPut: { - IoBuffer Payload = ServerRequest.ReadPayload(); - CompressedBuffer Compressed = CompressedBuffer::FromCompressed(SharedBuffer(Payload)); + IoBuffer Payload = ServerRequest.ReadPayload(); + IoHash RawHash; + uint64_t RawSize; + CompressedBuffer Compressed = CompressedBuffer::FromCompressed(SharedBuffer(Payload), RawHash, RawSize); if (!Compressed) { return ServerRequest.WriteResponse(HttpResponseCode::UnsupportedMediaType); } - IoHash PayloadHash = IoHash::FromBLAKE3(Compressed.GetRawHash()); - // URI hash must match content hash - if (PayloadHash != Hash) + if (RawHash != Hash) { return ServerRequest.WriteResponse(HttpResponseCode::BadRequest); } - m_CidStore.AddChunk(Compressed); + m_CidStore.AddChunk(Payload, RawHash); return ServerRequest.WriteResponse(HttpResponseCode::OK); } @@ -85,18 +85,18 @@ HttpCidService::HandleRequest(zen::HttpServerRequest& Request) case HttpVerb::kPut: case HttpVerb::kPost: { - IoBuffer Payload = Request.ReadPayload(); - CompressedBuffer Compressed = CompressedBuffer::FromCompressed(SharedBuffer(Payload)); + IoBuffer Payload = Request.ReadPayload(); + IoHash RawHash; + uint64_t RawSize; + CompressedBuffer Compressed = CompressedBuffer::FromCompressed(SharedBuffer(Payload), RawHash, RawSize); if (!Compressed) { return Request.WriteResponse(HttpResponseCode::UnsupportedMediaType); } - IoHash PayloadHash = IoHash::FromBLAKE3(Compressed.GetRawHash()); - - ZEN_DEBUG("CID POST request for {} ({} bytes)", PayloadHash, Payload.Size()); + ZEN_DEBUG("CID POST request for {} ({} bytes)", RawHash, Payload.Size()); - auto InsertResult = m_CidStore.AddChunk(Compressed); + auto InsertResult = m_CidStore.AddChunk(Payload, RawHash); if (InsertResult.New) { |