Go to file
Marek Marczykowski-Górecki 8e36a2ac61
app: re-register event handler after libvirt daemon restart
When libvirt daemon is restarted, qubesd attempt to re-connect to the
new instance transparently (through virConnect object wrapper). But the
code lacked re-registering event handlers.
Fix this by adding reconnect callback argument to virConnectWrappper, to
be called after new connection is established. This callback will
additionally get old connection as an argument, if any cleanup is
needed. The old connection is closed just after callback returns.

Use this to re-register event handler, but also unregister old handler
first. While full unregister wont work on since old libvirt daemon
instance is dead already, it will still cleanup client structures.

Since the old libvirt connection is closed now, adjust also domain
reconnection logic, to handle stale connection object. In that case
isAlive() call throws an exception.

Fixes QubesOS/qubes-issues#5303
2019-09-26 01:57:59 +02:00
ci Remove qrexec related files - moved to core-qrexec repository 2019-04-11 04:29:04 +02:00
contrib events: add support for async event handlers 2017-07-04 13:04:22 +02:00
doc Merge branch 'remove-qrexec' 2019-06-07 05:10:54 +02:00
etc Replace pool config parsing logic 2016-04-25 07:16:37 +02:00
linux Remove qrexec related files - moved to core-qrexec repository 2019-04-11 04:29:04 +02:00
qubes app: re-register event handler after libvirt daemon restart 2019-09-26 01:57:59 +02:00
qubes-rpc Merge remote-tracking branch 'origin/pr/279' 2019-09-10 03:40:07 +02:00
qubes-rpc-policy qubes-rpc: add qubes.ConnectTCP 2019-08-08 12:28:30 +02:00
qvm-tools admin.vm.Console: fix error message on management dispvm 2019-05-11 11:59:56 +02:00
relaxng Change license to LGPL v2.1+ 2017-10-12 00:11:50 +02:00
rpm_spec Merge remote-tracking branch 'origin/pr/279' 2019-09-10 03:40:07 +02:00
templates libvirt xml: fix DNS address broadcasted by DHCP server 2019-06-21 20:40:04 +02:00
test-packages Fix starting VM with kernel=None 2017-12-14 23:26:52 +01:00
tests tests: migrate qvm-block tests to core3 2018-10-10 00:44:15 +02:00
.coveragerc add config for coverage.py 2015-10-12 16:40:46 +02:00
.gitignore run-tests: Script for running tests in repo 2016-04-20 13:54:56 +02:00
.pylintrc Remove obsolete options from .pylintrc 2016-07-21 12:21:00 +02:00
.travis.yml Remove qrexec related files - moved to core-qrexec repository 2019-04-11 04:29:04 +02:00
installer.wxs windows/installer: configurable destination directory 2014-11-19 12:50:31 +01:00
LICENSE Change license to LGPL v2.1+ 2017-10-12 00:11:50 +02:00
Makefile Add qubes.ConnectTCP RPC for allowing dom0 sockets binding 2019-08-29 11:40:20 +02:00
Makefile.builder rpm: integrate -doc package into main one 2017-05-12 18:43:35 +02:00
README.md Update readme 2017-10-16 04:16:23 +02:00
run-tests tests: rearrage LVM thin tests to run at least some in devel env 2017-05-12 18:10:17 +02:00
setup.cfg Add yapf configuration to setup.cfg 2016-07-21 12:11:34 +02:00
setup.py Remove qrexec related files - moved to core-qrexec repository 2019-04-11 04:29:04 +02:00
version version 4.1.2 2019-08-11 06:50:33 +02:00

Qubes core, version 3

Build Status

This is master branch of the Qubes OS core.

API documentation is available: https://dev.qubes-os.org/projects/core-admin/en/latest/.