mirror of
https://git.proxmox.com/git/fwupd
synced 2025-08-19 08:42:26 +00:00
Export the device protocol to the client --verbose output
It turns out this is useful for debugging.
This commit is contained in:
parent
19d948ea39
commit
4f023420c6
@ -44,6 +44,7 @@ typedef struct {
|
|||||||
gchar *vendor_id;
|
gchar *vendor_id;
|
||||||
gchar *homepage;
|
gchar *homepage;
|
||||||
gchar *plugin;
|
gchar *plugin;
|
||||||
|
gchar *protocol;
|
||||||
gchar *version;
|
gchar *version;
|
||||||
gchar *version_lowest;
|
gchar *version_lowest;
|
||||||
gchar *version_bootloader;
|
gchar *version_bootloader;
|
||||||
@ -62,6 +63,7 @@ enum {
|
|||||||
PROP_0,
|
PROP_0,
|
||||||
PROP_VERSION_FORMAT,
|
PROP_VERSION_FORMAT,
|
||||||
PROP_FLAGS,
|
PROP_FLAGS,
|
||||||
|
PROP_PROTOCOL,
|
||||||
PROP_LAST
|
PROP_LAST
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -844,6 +846,42 @@ fwupd_device_set_plugin (FwupdDevice *device, const gchar *plugin)
|
|||||||
priv->plugin = g_strdup (plugin);
|
priv->plugin = g_strdup (plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* fwupd_device_get_protocol:
|
||||||
|
* @device: A #FwupdDevice
|
||||||
|
*
|
||||||
|
* Gets the protocol that the device uses for updating.
|
||||||
|
*
|
||||||
|
* Returns: the protocol name, or %NULL if unset
|
||||||
|
*
|
||||||
|
* Since: 1.3.6
|
||||||
|
**/
|
||||||
|
const gchar *
|
||||||
|
fwupd_device_get_protocol (FwupdDevice *device)
|
||||||
|
{
|
||||||
|
FwupdDevicePrivate *priv = GET_PRIVATE (device);
|
||||||
|
g_return_val_if_fail (FWUPD_IS_DEVICE (device), NULL);
|
||||||
|
return priv->protocol;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* fwupd_device_set_protocol:
|
||||||
|
* @device: A #FwupdDevice
|
||||||
|
* @protocol: the protocol name, e.g. `com.hughski.colorhug`
|
||||||
|
*
|
||||||
|
* Sets the protocol that is used to update the device.
|
||||||
|
*
|
||||||
|
* Since: 1.3.6
|
||||||
|
**/
|
||||||
|
void
|
||||||
|
fwupd_device_set_protocol (FwupdDevice *device, const gchar *protocol)
|
||||||
|
{
|
||||||
|
FwupdDevicePrivate *priv = GET_PRIVATE (device);
|
||||||
|
g_return_if_fail (FWUPD_IS_DEVICE (device));
|
||||||
|
g_free (priv->protocol);
|
||||||
|
priv->protocol = g_strdup (protocol);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* fwupd_device_get_flags:
|
* fwupd_device_get_flags:
|
||||||
* @device: A #FwupdDevice
|
* @device: A #FwupdDevice
|
||||||
@ -1061,6 +1099,8 @@ fwupd_device_incorporate (FwupdDevice *self, FwupdDevice *donor)
|
|||||||
fwupd_device_set_vendor_id (self, priv_donor->vendor_id);
|
fwupd_device_set_vendor_id (self, priv_donor->vendor_id);
|
||||||
if (priv->plugin == NULL)
|
if (priv->plugin == NULL)
|
||||||
fwupd_device_set_plugin (self, priv_donor->plugin);
|
fwupd_device_set_plugin (self, priv_donor->plugin);
|
||||||
|
if (priv->protocol == NULL)
|
||||||
|
fwupd_device_set_protocol (self, priv_donor->protocol);
|
||||||
if (priv->update_error == NULL)
|
if (priv->update_error == NULL)
|
||||||
fwupd_device_set_update_error (self, priv_donor->update_error);
|
fwupd_device_set_update_error (self, priv_donor->update_error);
|
||||||
if (priv->update_message == NULL)
|
if (priv->update_message == NULL)
|
||||||
@ -1197,6 +1237,11 @@ fwupd_device_to_variant_full (FwupdDevice *device, FwupdDeviceFlags flags)
|
|||||||
FWUPD_RESULT_KEY_PLUGIN,
|
FWUPD_RESULT_KEY_PLUGIN,
|
||||||
g_variant_new_string (priv->plugin));
|
g_variant_new_string (priv->plugin));
|
||||||
}
|
}
|
||||||
|
if (priv->protocol != NULL) {
|
||||||
|
g_variant_builder_add (&builder, "{sv}",
|
||||||
|
FWUPD_RESULT_KEY_PROTOCOL,
|
||||||
|
g_variant_new_string (priv->protocol));
|
||||||
|
}
|
||||||
if (priv->version != NULL) {
|
if (priv->version != NULL) {
|
||||||
g_variant_builder_add (&builder, "{sv}",
|
g_variant_builder_add (&builder, "{sv}",
|
||||||
FWUPD_RESULT_KEY_VERSION,
|
FWUPD_RESULT_KEY_VERSION,
|
||||||
@ -1379,6 +1424,10 @@ fwupd_device_from_key_value (FwupdDevice *device, const gchar *key, GVariant *va
|
|||||||
fwupd_device_set_plugin (device, g_variant_get_string (value, NULL));
|
fwupd_device_set_plugin (device, g_variant_get_string (value, NULL));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (g_strcmp0 (key, FWUPD_RESULT_KEY_PROTOCOL) == 0) {
|
||||||
|
fwupd_device_set_protocol (device, g_variant_get_string (value, NULL));
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (g_strcmp0 (key, FWUPD_RESULT_KEY_VERSION) == 0) {
|
if (g_strcmp0 (key, FWUPD_RESULT_KEY_VERSION) == 0) {
|
||||||
fwupd_device_set_version (device, g_variant_get_string (value, NULL));
|
fwupd_device_set_version (device, g_variant_get_string (value, NULL));
|
||||||
return;
|
return;
|
||||||
@ -1731,6 +1780,7 @@ fwupd_device_to_json (FwupdDevice *device, JsonBuilder *builder)
|
|||||||
fwupd_device_json_add_string (builder, FWUPD_RESULT_KEY_SUMMARY, priv->summary);
|
fwupd_device_json_add_string (builder, FWUPD_RESULT_KEY_SUMMARY, priv->summary);
|
||||||
fwupd_device_json_add_string (builder, FWUPD_RESULT_KEY_DESCRIPTION, priv->description);
|
fwupd_device_json_add_string (builder, FWUPD_RESULT_KEY_DESCRIPTION, priv->description);
|
||||||
fwupd_device_json_add_string (builder, FWUPD_RESULT_KEY_PLUGIN, priv->plugin);
|
fwupd_device_json_add_string (builder, FWUPD_RESULT_KEY_PLUGIN, priv->plugin);
|
||||||
|
fwupd_device_json_add_string (builder, FWUPD_RESULT_KEY_PROTOCOL, priv->protocol);
|
||||||
if (priv->flags != FWUPD_DEVICE_FLAG_NONE) {
|
if (priv->flags != FWUPD_DEVICE_FLAG_NONE) {
|
||||||
json_builder_set_member_name (builder, FWUPD_RESULT_KEY_FLAGS);
|
json_builder_set_member_name (builder, FWUPD_RESULT_KEY_FLAGS);
|
||||||
json_builder_begin_array (builder);
|
json_builder_begin_array (builder);
|
||||||
@ -1843,6 +1893,7 @@ fwupd_device_to_string (FwupdDevice *device)
|
|||||||
fwupd_pad_kv_str (str, FWUPD_RESULT_KEY_SUMMARY, priv->summary);
|
fwupd_pad_kv_str (str, FWUPD_RESULT_KEY_SUMMARY, priv->summary);
|
||||||
fwupd_pad_kv_str (str, FWUPD_RESULT_KEY_DESCRIPTION, priv->description);
|
fwupd_pad_kv_str (str, FWUPD_RESULT_KEY_DESCRIPTION, priv->description);
|
||||||
fwupd_pad_kv_str (str, FWUPD_RESULT_KEY_PLUGIN, priv->plugin);
|
fwupd_pad_kv_str (str, FWUPD_RESULT_KEY_PLUGIN, priv->plugin);
|
||||||
|
fwupd_pad_kv_str (str, FWUPD_RESULT_KEY_PROTOCOL, priv->protocol);
|
||||||
fwupd_pad_kv_dfl (str, FWUPD_RESULT_KEY_FLAGS, priv->flags);
|
fwupd_pad_kv_dfl (str, FWUPD_RESULT_KEY_FLAGS, priv->flags);
|
||||||
for (guint i = 0; i < priv->checksums->len; i++) {
|
for (guint i = 0; i < priv->checksums->len; i++) {
|
||||||
const gchar *checksum = g_ptr_array_index (priv->checksums, i);
|
const gchar *checksum = g_ptr_array_index (priv->checksums, i);
|
||||||
@ -1897,6 +1948,9 @@ fwupd_device_get_property (GObject *object, guint prop_id,
|
|||||||
case PROP_FLAGS:
|
case PROP_FLAGS:
|
||||||
g_value_set_uint64 (value, priv->flags);
|
g_value_set_uint64 (value, priv->flags);
|
||||||
break;
|
break;
|
||||||
|
case PROP_PROTOCOL:
|
||||||
|
g_value_set_string (value, priv->protocol);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
break;
|
break;
|
||||||
@ -1915,6 +1969,9 @@ fwupd_device_set_property (GObject *object, guint prop_id,
|
|||||||
case PROP_FLAGS:
|
case PROP_FLAGS:
|
||||||
fwupd_device_set_flags (self, g_value_get_uint64 (value));
|
fwupd_device_set_flags (self, g_value_get_uint64 (value));
|
||||||
break;
|
break;
|
||||||
|
case PROP_PROTOCOL:
|
||||||
|
fwupd_device_set_protocol (self, g_value_get_string (value));
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
break;
|
break;
|
||||||
@ -1946,6 +2003,11 @@ fwupd_device_class_init (FwupdDeviceClass *klass)
|
|||||||
G_PARAM_READWRITE |
|
G_PARAM_READWRITE |
|
||||||
G_PARAM_STATIC_NAME);
|
G_PARAM_STATIC_NAME);
|
||||||
g_object_class_install_property (object_class, PROP_FLAGS, pspec);
|
g_object_class_install_property (object_class, PROP_FLAGS, pspec);
|
||||||
|
|
||||||
|
pspec = g_param_spec_string ("protocol", NULL, NULL, NULL,
|
||||||
|
G_PARAM_READWRITE |
|
||||||
|
G_PARAM_STATIC_NAME);
|
||||||
|
g_object_class_install_property (object_class, PROP_PROTOCOL, pspec);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -1976,6 +2038,7 @@ fwupd_device_finalize (GObject *object)
|
|||||||
g_free (priv->vendor);
|
g_free (priv->vendor);
|
||||||
g_free (priv->vendor_id);
|
g_free (priv->vendor_id);
|
||||||
g_free (priv->plugin);
|
g_free (priv->plugin);
|
||||||
|
g_free (priv->protocol);
|
||||||
g_free (priv->update_error);
|
g_free (priv->update_error);
|
||||||
g_free (priv->update_message);
|
g_free (priv->update_message);
|
||||||
g_free (priv->version);
|
g_free (priv->version);
|
||||||
|
@ -92,6 +92,9 @@ void fwupd_device_add_checksum (FwupdDevice *device,
|
|||||||
const gchar *fwupd_device_get_plugin (FwupdDevice *device);
|
const gchar *fwupd_device_get_plugin (FwupdDevice *device);
|
||||||
void fwupd_device_set_plugin (FwupdDevice *device,
|
void fwupd_device_set_plugin (FwupdDevice *device,
|
||||||
const gchar *plugin);
|
const gchar *plugin);
|
||||||
|
const gchar *fwupd_device_get_protocol (FwupdDevice *device);
|
||||||
|
void fwupd_device_set_protocol (FwupdDevice *device,
|
||||||
|
const gchar *protocol);
|
||||||
const gchar *fwupd_device_get_vendor (FwupdDevice *device);
|
const gchar *fwupd_device_get_vendor (FwupdDevice *device);
|
||||||
void fwupd_device_set_vendor (FwupdDevice *device,
|
void fwupd_device_set_vendor (FwupdDevice *device,
|
||||||
const gchar *vendor);
|
const gchar *vendor);
|
||||||
|
@ -35,6 +35,7 @@ G_BEGIN_DECLS
|
|||||||
#define FWUPD_RESULT_KEY_NAME "Name" /* s */
|
#define FWUPD_RESULT_KEY_NAME "Name" /* s */
|
||||||
#define FWUPD_RESULT_KEY_NAME_VARIANT_SUFFIX "NameVariantSuffix" /* s */
|
#define FWUPD_RESULT_KEY_NAME_VARIANT_SUFFIX "NameVariantSuffix" /* s */
|
||||||
#define FWUPD_RESULT_KEY_PLUGIN "Plugin" /* s */
|
#define FWUPD_RESULT_KEY_PLUGIN "Plugin" /* s */
|
||||||
|
#define FWUPD_RESULT_KEY_PROTOCOL "Protocol" /* s */
|
||||||
#define FWUPD_RESULT_KEY_RELEASE "Release" /* a{sv} */
|
#define FWUPD_RESULT_KEY_RELEASE "Release" /* a{sv} */
|
||||||
#define FWUPD_RESULT_KEY_REMOTE_ID "RemoteId" /* s */
|
#define FWUPD_RESULT_KEY_REMOTE_ID "RemoteId" /* s */
|
||||||
#define FWUPD_RESULT_KEY_SERIAL "Serial" /* s */
|
#define FWUPD_RESULT_KEY_SERIAL "Serial" /* s */
|
||||||
|
@ -405,3 +405,10 @@ LIBFWUPD_1.3.4 {
|
|||||||
fwupd_client_get_daemon_interactive;
|
fwupd_client_get_daemon_interactive;
|
||||||
local: *;
|
local: *;
|
||||||
} LIBFWUPD_1.3.3;
|
} LIBFWUPD_1.3.3;
|
||||||
|
|
||||||
|
LIBFWUPD_1.3.6 {
|
||||||
|
global:
|
||||||
|
fwupd_device_get_protocol;
|
||||||
|
fwupd_device_set_protocol;
|
||||||
|
local: *;
|
||||||
|
} LIBFWUPD_1.3.4;
|
||||||
|
@ -36,7 +36,6 @@ typedef struct {
|
|||||||
gchar *equivalent_id;
|
gchar *equivalent_id;
|
||||||
gchar *physical_id;
|
gchar *physical_id;
|
||||||
gchar *logical_id;
|
gchar *logical_id;
|
||||||
gchar *protocol;
|
|
||||||
FuDevice *alternate;
|
FuDevice *alternate;
|
||||||
FuDevice *parent; /* noref */
|
FuDevice *parent; /* noref */
|
||||||
FuQuirks *quirks;
|
FuQuirks *quirks;
|
||||||
@ -66,7 +65,6 @@ enum {
|
|||||||
PROP_PROGRESS,
|
PROP_PROGRESS,
|
||||||
PROP_PHYSICAL_ID,
|
PROP_PHYSICAL_ID,
|
||||||
PROP_LOGICAL_ID,
|
PROP_LOGICAL_ID,
|
||||||
PROP_PROTOCOL,
|
|
||||||
PROP_QUIRKS,
|
PROP_QUIRKS,
|
||||||
PROP_PARENT,
|
PROP_PARENT,
|
||||||
PROP_LAST
|
PROP_LAST
|
||||||
@ -94,9 +92,6 @@ fu_device_get_property (GObject *object, guint prop_id,
|
|||||||
case PROP_LOGICAL_ID:
|
case PROP_LOGICAL_ID:
|
||||||
g_value_set_string (value, priv->logical_id);
|
g_value_set_string (value, priv->logical_id);
|
||||||
break;
|
break;
|
||||||
case PROP_PROTOCOL:
|
|
||||||
g_value_set_string (value, priv->protocol);
|
|
||||||
break;
|
|
||||||
case PROP_QUIRKS:
|
case PROP_QUIRKS:
|
||||||
g_value_set_object (value, priv->quirks);
|
g_value_set_object (value, priv->quirks);
|
||||||
break;
|
break;
|
||||||
@ -128,9 +123,6 @@ fu_device_set_property (GObject *object, guint prop_id,
|
|||||||
case PROP_LOGICAL_ID:
|
case PROP_LOGICAL_ID:
|
||||||
fu_device_set_logical_id (self, g_value_get_string (value));
|
fu_device_set_logical_id (self, g_value_get_string (value));
|
||||||
break;
|
break;
|
||||||
case PROP_PROTOCOL:
|
|
||||||
fu_device_set_protocol (self, g_value_get_string (value));
|
|
||||||
break;
|
|
||||||
case PROP_QUIRKS:
|
case PROP_QUIRKS:
|
||||||
fu_device_set_quirks (self, g_value_get_object (value));
|
fu_device_set_quirks (self, g_value_get_object (value));
|
||||||
break;
|
break;
|
||||||
@ -1493,9 +1485,8 @@ fu_device_set_logical_id (FuDevice *self, const gchar *logical_id)
|
|||||||
const gchar *
|
const gchar *
|
||||||
fu_device_get_protocol (FuDevice *self)
|
fu_device_get_protocol (FuDevice *self)
|
||||||
{
|
{
|
||||||
FuDevicePrivate *priv = GET_PRIVATE (self);
|
|
||||||
g_return_val_if_fail (FU_IS_DEVICE (self), NULL);
|
g_return_val_if_fail (FU_IS_DEVICE (self), NULL);
|
||||||
return priv->protocol;
|
return fwupd_device_get_protocol (FWUPD_DEVICE (self));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1510,10 +1501,8 @@ fu_device_get_protocol (FuDevice *self)
|
|||||||
void
|
void
|
||||||
fu_device_set_protocol (FuDevice *self, const gchar *protocol)
|
fu_device_set_protocol (FuDevice *self, const gchar *protocol)
|
||||||
{
|
{
|
||||||
FuDevicePrivate *priv = GET_PRIVATE (self);
|
|
||||||
g_return_if_fail (FU_IS_DEVICE (self));
|
g_return_if_fail (FU_IS_DEVICE (self));
|
||||||
g_free (priv->protocol);
|
fwupd_device_set_protocol (FWUPD_DEVICE (self), protocol);
|
||||||
priv->protocol = g_strdup (protocol);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1844,8 +1833,6 @@ fu_device_add_string (FuDevice *self, guint idt, GString *str)
|
|||||||
fu_common_string_append_kv (str, idt + 1, "PhysicalId", priv->physical_id);
|
fu_common_string_append_kv (str, idt + 1, "PhysicalId", priv->physical_id);
|
||||||
if (priv->logical_id != NULL)
|
if (priv->logical_id != NULL)
|
||||||
fu_common_string_append_kv (str, idt + 1, "LogicalId", priv->logical_id);
|
fu_common_string_append_kv (str, idt + 1, "LogicalId", priv->logical_id);
|
||||||
if (priv->protocol != NULL)
|
|
||||||
fu_common_string_append_kv (str, idt + 1, "Protocol", priv->protocol);
|
|
||||||
if (priv->size_min > 0) {
|
if (priv->size_min > 0) {
|
||||||
g_autofree gchar *sz = g_strdup_printf ("%" G_GUINT64_FORMAT, priv->size_min);
|
g_autofree gchar *sz = g_strdup_printf ("%" G_GUINT64_FORMAT, priv->size_min);
|
||||||
fu_common_string_append_kv (str, idt + 1, "FirmwareSizeMin", sz);
|
fu_common_string_append_kv (str, idt + 1, "FirmwareSizeMin", sz);
|
||||||
@ -2573,8 +2560,6 @@ fu_device_incorporate (FuDevice *self, FuDevice *donor)
|
|||||||
fu_device_set_physical_id (self, priv_donor->physical_id);
|
fu_device_set_physical_id (self, priv_donor->physical_id);
|
||||||
if (priv->logical_id == NULL && priv_donor->logical_id != NULL)
|
if (priv->logical_id == NULL && priv_donor->logical_id != NULL)
|
||||||
fu_device_set_logical_id (self, priv_donor->logical_id);
|
fu_device_set_logical_id (self, priv_donor->logical_id);
|
||||||
if (priv->protocol == NULL && priv_donor->protocol != NULL)
|
|
||||||
fu_device_set_protocol (self, priv_donor->protocol);
|
|
||||||
if (priv->quirks == NULL)
|
if (priv->quirks == NULL)
|
||||||
fu_device_set_quirks (self, fu_device_get_quirks (donor));
|
fu_device_set_quirks (self, fu_device_get_quirks (donor));
|
||||||
g_rw_lock_reader_lock (&priv_donor->parent_guids_mutex);
|
g_rw_lock_reader_lock (&priv_donor->parent_guids_mutex);
|
||||||
@ -2676,11 +2661,6 @@ fu_device_class_init (FuDeviceClass *klass)
|
|||||||
G_PARAM_STATIC_NAME);
|
G_PARAM_STATIC_NAME);
|
||||||
g_object_class_install_property (object_class, PROP_LOGICAL_ID, pspec);
|
g_object_class_install_property (object_class, PROP_LOGICAL_ID, pspec);
|
||||||
|
|
||||||
pspec = g_param_spec_string ("protocol", NULL, NULL, NULL,
|
|
||||||
G_PARAM_READWRITE |
|
|
||||||
G_PARAM_STATIC_NAME);
|
|
||||||
g_object_class_install_property (object_class, PROP_PROTOCOL, pspec);
|
|
||||||
|
|
||||||
pspec = g_param_spec_uint ("progress", NULL, NULL,
|
pspec = g_param_spec_uint ("progress", NULL, NULL,
|
||||||
0, 100, 0,
|
0, 100, 0,
|
||||||
G_PARAM_READWRITE |
|
G_PARAM_READWRITE |
|
||||||
@ -2739,7 +2719,6 @@ fu_device_finalize (GObject *object)
|
|||||||
g_free (priv->equivalent_id);
|
g_free (priv->equivalent_id);
|
||||||
g_free (priv->physical_id);
|
g_free (priv->physical_id);
|
||||||
g_free (priv->logical_id);
|
g_free (priv->logical_id);
|
||||||
g_free (priv->protocol);
|
|
||||||
|
|
||||||
G_OBJECT_CLASS (fu_device_parent_class)->finalize (object);
|
G_OBJECT_CLASS (fu_device_parent_class)->finalize (object);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user