qga-win: changing --retry-path option behavior
commitb70d6afe4d7f252259d3344e12daa2d6baf006e2
authorBishara AbuHattoum <bishara@daynix.com>
Sun, 7 Oct 2018 11:02:23 +0000 (7 14:02 +0300)
committerMichael Roth <mdroth@linux.vnet.ibm.com>
Wed, 31 Oct 2018 14:04:20 +0000 (31 09:04 -0500)
tree51d8faa3c97c070316dfb96d0cb77353ea079b8b
parenta2c1ac4e22da848e0fef262086e0f29fbc6ff83a
qga-win: changing --retry-path option behavior

Currently whenever the qemu-ga's service doesn't find the virtio-serial
the run_agent() loops in a QGA_RETRY_INTERVAL (default 5 seconds)
intervals and try to restart the qemu-ga which causes a synchronous loop.
Changed to wait and listen for the serial events by registering for
notifications a proper serial event handler that deals with events:
  DBT_DEVICEARRIVAL        indicates that the device has been inserted and
                           is available
  DBT_DEVICEREMOVECOMPLETE indicates that the devive has been removed
Which allow us to determine when the channel path is available for the
qemu-ga to restart.

Signed-off-by: Bishara AbuHattoum <bishara@daynix.com>
Signed-off-by: Sameeh Jubran <sameeh@daynix.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
qga/main.c
qga/service-win32.h