Data from network are always little endian, convert to host
convention.
Signed-off-by: Frediano Ziglio <[email protected]>
---
server/char-device.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/server/char-device.c b/server/char-device.c
index 03ac9907..e7c6dfa8 100644
--- a/server/char-device.c
+++ b/server/char-device.c
@@ -855,7 +855,7 @@ void
red_char_device_migrate_data_marshall_empty(SpiceMarshaller *m)
mig_data = (SpiceMigrateDataCharDevice *)spice_marshaller_reserve_space(m,
sizeof(*mig_data));
memset(mig_data, 0, sizeof(*mig_data));
- mig_data->version = SPICE_MIGRATE_DATA_CHAR_DEVICE_VERSION;
+ mig_data->version = GUINT32_TO_LE(SPICE_MIGRATE_DATA_CHAR_DEVICE_VERSION);
mig_data->connected = FALSE;
}
@@ -926,14 +926,23 @@ void red_char_device_migrate_data_marshall(RedCharDevice
*dev,
}
bool red_char_device_restore(RedCharDevice *dev,
- SpiceMigrateDataCharDevice *mig_data)
+ SpiceMigrateDataCharDevice *mig_data_le)
{
RedCharDeviceClient *dev_client;
uint32_t client_tokens_window;
+ SpiceMigrateDataCharDevice mig_data[1];
spice_assert(g_list_length(dev->priv->clients) == 1 &&
dev->priv->wait_for_migrate_data);
+ mig_data->version = GUINT32_FROM_LE(mig_data_le->version);
+ mig_data->connected = mig_data_le->connected;
+ mig_data->num_client_tokens =
GUINT32_FROM_LE(mig_data_le->num_client_tokens);
+ mig_data->num_send_tokens = GUINT32_FROM_LE(mig_data_le->num_send_tokens);
+ mig_data->write_size = GUINT32_FROM_LE(mig_data_le->write_size);
+ mig_data->write_num_client_tokens =
GUINT32_FROM_LE(mig_data_le->write_num_client_tokens);
+ mig_data->write_data_ptr = GUINT32_FROM_LE(mig_data_le->write_data_ptr);
+
dev_client = g_list_last(dev->priv->clients)->data;
if (mig_data->version > SPICE_MIGRATE_DATA_CHAR_DEVICE_VERSION) {
spice_error("dev %p error: migration data version %u is bigger than
self %u",
--
2.21.0
_______________________________________________
Spice-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/spice-devel