summaryrefslogtreecommitdiff
path: root/src/sysupdate/sysupdate-cache.h
blob: d6a789739938e15d5589806ea6e35399ecab871c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once

#include "hashmap.h"

typedef struct WebCacheItem {
        char *url;
        bool verified;
        size_t size;
        uint8_t data[];
} WebCacheItem;

/* A simple in-memory cache for downloaded manifests. Very likely multiple transfers will use the same
 * manifest URLs, hence let's make sure we only download them once within each sysupdate invocation. */

int web_cache_add_item(Hashmap **cache, const char *url, bool verified, const void *data, size_t size);

WebCacheItem* web_cache_get_item(Hashmap *cache, const char *url, bool verified);