diff --git a/server/char-device.cpp b/server/char-device.cpp index e28a1919..cf527001 100644 --- a/server/char-device.cpp +++ b/server/char-device.cpp @@ -947,3 +947,14 @@ RedCharDevice::RedCharDevice(RedsState *reds, SpiceCharDeviceInstance *sin, g_queue_init(&priv->write_queue); } + +int RedCharDevice::read(uint8_t *buf, int len) +{ + auto sif = spice_char_device_get_interface(priv->sin); + + int ret = sif->read(priv->sin, buf, len); + if (ret > 0) { + priv->active = true; + } + return ret; +} diff --git a/server/char-device.h b/server/char-device.h index 0f910bc0..5c453b78 100644 --- a/server/char-device.h +++ b/server/char-device.h @@ -174,6 +174,11 @@ public: SpiceCharDeviceInstance *get_device_instance(); + /** + * Read data from device + */ + int read(uint8_t *buf, int len); + red::unique_link priv; //protected: