mirror of
https://git.proxmox.com/git/fwupd
synced 2025-05-03 10:51:03 +00:00
39 lines
945 B
C
39 lines
945 B
C
/*
|
|
* Copyright (C) 2017 Richard Hughes <richard@hughsie.com>
|
|
*
|
|
* SPDX-License-Identifier: LGPL-2.1+
|
|
*/
|
|
|
|
#define G_LOG_DOMAIN "FuCommonCab"
|
|
|
|
#include "config.h"
|
|
|
|
#include "fu-cabinet.h"
|
|
#include "fu-common-cab.h"
|
|
|
|
/**
|
|
* fu_common_cab_build_silo: (skip):
|
|
* @blob: A readable blob
|
|
* @size_max: the maximum size of the archive
|
|
* @error: A #FuEndianType, e.g. %G_LITTLE_ENDIAN
|
|
*
|
|
* Create an AppStream silo from a cabinet archive.
|
|
*
|
|
* Returns: (transfer full): a #XbSilo, or %NULL on error
|
|
*
|
|
* Since: 1.2.0
|
|
**/
|
|
XbSilo *
|
|
fu_common_cab_build_silo (GBytes *blob, guint64 size_max, GError **error)
|
|
{
|
|
g_autoptr(FuCabinet) cabinet = fu_cabinet_new ();
|
|
|
|
g_return_val_if_fail (blob != NULL, NULL);
|
|
g_return_val_if_fail (error == NULL || *error == NULL, NULL);
|
|
|
|
fu_cabinet_set_size_max (cabinet, size_max);
|
|
if (!fu_cabinet_parse (cabinet, blob, FU_CABINET_PARSE_FLAG_NONE, error))
|
|
return NULL;
|
|
return fu_cabinet_get_silo (cabinet);
|
|
}
|