summaryrefslogtreecommitdiff
path: root/src/vdagentd.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/vdagentd.c')
-rw-r--r--src/vdagentd.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/vdagentd.c b/src/vdagentd.c
index 2288671..cfb7acc 100644
--- a/src/vdagentd.c
+++ b/src/vdagentd.c
@@ -58,6 +58,7 @@ static const char *portdev = "/dev/virtio-ports/com.redhat.spice.0";
static const char *vdagentd_socket = VDAGENTD_SOCKET;
static const char *uinput_device = "/dev/uinput";
static int debug = 0;
+static int uinput_fake = 0;
static struct udscs_server *server = NULL;
static struct vdagent_virtio_port *virtio_port = NULL;
static GHashTable *active_xfers = NULL;
@@ -317,7 +318,8 @@ int virtio_port_read_complete(
agent_data->height,
agent_data->screen_info,
agent_data->screen_count,
- debug > 1);
+ debug > 1,
+ uinput_fake);
if (!uinput) {
syslog(LOG_CRIT, "Fatal uinput error");
retval = 1;
@@ -488,7 +490,8 @@ static void check_xorg_resolution(void)
agent_data->height,
agent_data->screen_info,
agent_data->screen_count,
- debug > 1);
+ debug > 1,
+ uinput_fake);
else
vdagentd_uinput_update_size(&uinput,
agent_data->width,
@@ -867,6 +870,11 @@ int main(int argc, char *argv[])
}
}
+ if (strncmp(uinput_device, "/dev", 4) != 0) {
+ syslog(LOG_INFO, "using fake uinput");
+ uinput_fake = 1;
+ }
+
memset(&act, 0, sizeof(act));
act.sa_flags = SA_RESTART;
act.sa_handler = quit_handler;
@@ -899,7 +907,7 @@ int main(int argc, char *argv[])
#ifdef WITH_STATIC_UINPUT
uinput = vdagentd_uinput_create(uinput_device, 1024, 768, NULL, 0,
- debug > 1);
+ debug > 1, uinput_fake);
if (!uinput) {
udscs_destroy_server(server);
return 1;