aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* maint: fix up copyright notice inconsistenciesEric Blake2012-09-203-3/+3
| | | | | | | | | https://www.gnu.org/licenses/gpl-howto.html recommends that the 'If not, see <url>.' phrase be a separate sentence. * tests/securityselinuxhelper.c: Remove doubled line. * tests/securityselinuxtest.c: Likewise. * globally: s/; If/. If/
* examples: Fix event detail printing in python testJiri Denemark2012-09-071-2/+2
| | | | | | | | | | | | If there is only one detail string for a particular event, we need to pu comma after the string otherwise the string itself will be taken as a list and only its first character will be printed out. For example, myDomainEventCallback1 EVENT: Domain fedora17(12) Shutdown F instead of the desired myDomainEventCallback1 EVENT: Domain fedora17(12) Shutdown Finished
* Add PMSUSPENDED life cycle eventJiri Denemark2012-09-072-1/+13
| | | | | While PMSUSPENDED state was added a long time ago, we didn't have corresponding life cycle event.
* Fix PMSuspend and PMWakeup eventsJiri Denemark2012-09-071-2/+2
| | | | | | The unused reason parameter of PM{Suspend,Wakeup} event callbacks was completely ignored in lot of places and those events were not actually working at all.
* examples: Update strings for event detailsJiri Denemark2012-08-092-4/+4
|
* apparmor: QEMU bridge helper policy updatesRicha Marwaha2012-08-061-1/+20
| | | | | | | | | This patch provides AppArmor policy updates for the QEMU bridge helper. The QEMU bridge helper is a SUID executable exec'd by QEMU that drops capabilities to CAP_NET_ADMIN and adds a tap device to a network bridge. Signed-off-by: Richa Marwaha <rmarwah@linux.vnet.ibm.com> Signed-off-by: Corey Bryant<coreyb@linux.vnet.ibm.com>
* Extend events demo to show close callbacks in useDaniel P. Berrange2012-07-301-2/+31
| | | | | | | Use a driver close callback to trigger shutdown of the events demo program Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* maint: avoid regression on copyright listingsEric Blake2012-07-273-6/+6
| | | | | | | | | | | | | | | | | | | | | | | Commit f9ce7dad6 tried to kill uses of a raw street address, but missed a few instances. Automate things so we don't introduce new problems in the future. * cfg.mk (sc_copyright_address): New rule. (exclude_file_name_regexp--sc_copyright_address): Add exemption. * bootstrap.conf: Adjust offenders. * build-aux/augeas-gentest.pl: Likewise. * examples/systemtap/events.stp: Likewise. * examples/systemtap/qemu-monitor.stp: Likewise. * examples/systemtap/rpc-monitor.stp: Likewise. * src/dtrace2systemtap.pl: Likewise. * src/esx/esx_vi_generator.py: Likewise. * src/hyperv/hyperv_wmi_generator.py: Likewise. * src/remote/qemu_protocol.x: Likewise. * src/remote/remote_protocol.x: Likewise. * src/rpc/gensystemtap.pl: Likewise. * src/rpc/virnetprotocol.x: Likewise. * tests/object-locking.ml: Likewise. * tools/virt-xml-validate.in: Likewise.
* adding handling EINTR to poll to make it more robustRoyce Lv2012-07-231-41/+46
| | | | | | | | | some system call and signal will interrupt poll, making event loop stops and fails to react events and keepalive message from libvirt. adding handling EINTR to poll to make it more robust Signed-off-by: Royce Lv <lvroyce@linux.vnet.ibm.com>
* Define public API for receiving guest memory balloon eventsDaniel P. Berrange2012-07-142-1/+24
| | | | | | | | | | | | | | | | | | | | | | | | When the guest changes its memory balloon applications may want to know what the new value is, without having to periodically poll on XML / domain info. Introduce a "balloon change" event to let apps see this * include/libvirt/libvirt.h.in: Define the virConnectDomainEventBalloonChangeCallback callback and VIR_DOMAIN_EVENT_ID_BALLOON_CHANGE constant * python/libvirt-override-virConnect.py, python/libvirt-override.c: Wire up helpers for new event * daemon/remote.c: Helper for serializing balloon event * examples/domain-events/events-c/event-test.c, examples/domain-events/events-python/event-test.py: Add example of balloon event usage * src/conf/domain_event.c, src/conf/domain_event.h: Handling of balloon events * src/remote/remote_driver.c: Add handler of balloon events * src/remote/remote_protocol.x: Define wire protocol for balloon events * src/remote_protocol-structs: Likewise. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* examples: add consolecallback example python scriptDave Allan2012-05-292-1/+90
| | | | | | | | | | A while back I wrote the attached code to demonstrate how to use events and serial console to create a serial console that stays up even when the VM is down. It might need some work, as I am not terribly strong with Python. * examples/python/consolecallback.py: New file. * examples/python/Makefile.am (EXTRA_DIST): Ship it.
* Revert "Refactor the libvirt RPM daemon pieces"Daniel Veillard2012-04-031-2/+0
| | | | This reverts commit 06a0d57f5a90e408a6280dc2f9db0badeeeb78ee.
* Fix client only RPM build & other misc RPM problemsDaniel P. Berrange2012-03-311-0/+2
| | | | | | | | | * libvirt.spec.in: Remove obsolete --with-remote-pid-file arg. Add missing %{without_libxl} statement. Fix handling of docs in client only build. Put systemtap files in -client RPM instead of -daemon RPM * examples/xml/nwfilter/Makefile.am: Don't install examples if nwfilter is disabled.
* Consistent style for usage of sizeof operatorDaniel P. Berrange2012-03-301-1/+1
| | | | | | | | | | | | | The code is splattered with a mix of sizeof foo sizeof (foo) sizeof(foo) Standardize on sizeof(foo) and add a syntax check rule to enforce it Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* Cleanup for a return statement in source filesMartin Kletzander2012-03-262-4/+4
| | | | | | | | | | | | | | | | | | | | | | Return statements with parameter enclosed in parentheses were modified and parentheses were removed. The whole change was scripted, here is how: List of files was obtained using this command: git grep -l -e '\<return\s*([^()]*\(([^()]*)[^()]*\)*)\s*;' | \ grep -e '\.[ch]$' -e '\.py$' Found files were modified with this command: sed -i -e \ 's_^\(.*\<return\)\s*(\(\([^()]*([^()]*)[^()]*\)*\))\s*\(;.*$\)_\1 \2\4_' \ -e 's_^\(.*\<return\)\s*(\([^()]*\))\s*\(;.*$\)_\1 \2\3_' Then checked for nonsense. The whole command looks like this: git grep -l -e '\<return\s*([^()]*\(([^()]*)[^()]*\)*)\s*;' | \ grep -e '\.[ch]$' -e '\.py$' | xargs sed -i -e \ 's_^\(.*\<return\)\s*(\(\([^()]*([^()]*)[^()]*\)*\))\s*\(;.*$\)_\1 \2\4_' \ -e 's_^\(.*\<return\)\s*(\([^()]*\))\s*\(;.*$\)_\1 \2\3_'
* qemu: Update domain status to running while wakeup event is emittedOsier Yang2012-03-231-0/+3
| | | | | | | | | | This introduces a new running reason VIR_DOMAIN_RUNNING_WAKEUP, and new suspend event type VIR_DOMAIN_EVENT_STARTED_WAKEUP. While a wakeup event is emitted, the domain which entered into VIR_DOMAIN_PMSUSPENDED will be transferred to "running" with reason VIR_DOMAIN_RUNNING_WAKEUP, and a new domain lifecycle event emitted with type VIR_DOMAIN_EVENT_STARTED_WAKEUP.
* Add support for the suspend eventOsier Yang2012-03-232-1/+23
| | | | | | | | | | | | | | | | | | This patch introduces a new event type for the QMP event SUSPEND: VIR_DOMAIN_EVENT_ID_PMSUSPEND The event doesn't take any data, but considering there might be reason for wakeup in future, the callback definition is: typedef void (*virConnectDomainEventSuspendCallback)(virConnectPtr conn, virDomainPtr dom, int reason, void *opaque); "reason" is unused currently, always passes "0".
* Add support for the wakeup eventOsier Yang2012-03-232-2/+23
| | | | | | | | | | | | | | | | | | This patch introduces a new event type for the QMP event WAKEUP: VIR_DOMAIN_EVENT_ID_PMWAKEUP The event doesn't take any data, but considering there might be reason for wakeup in future, the callback definition is: typedef void (*virConnectDomainEventWakeupCallback)(virConnectPtr conn, virDomainPtr dom, int reason, void *opaque); "reason" is unused currently, always passes "0".
* Add support for event tray moved of removable disksOsier Yang2012-03-232-1/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch introduces a new event type for the QMP event DEVICE_TRAY_MOVED, which occurs when the tray of a removable disk is moved (i.e opened or closed): VIR_DOMAIN_EVENT_ID_TRAY_CHANGE The event's data includes the device alias and the reason for tray status' changing, which indicates why the tray status was changed. Thus the callback definition for the event is: enum { VIR_DOMAIN_EVENT_TRAY_CHANGE_OPEN = 0, VIR_DOMAIN_EVENT_TRAY_CHANGE_CLOSE, \#ifdef VIR_ENUM_SENTINELS VIR_DOMAIN_EVENT_TRAY_CHANGE_LAST \#endif } virDomainEventTrayChangeReason; typedef void (*virConnectDomainEventTrayChangeCallback)(virConnectPtr conn, virDomainPtr dom, const char *devAlias, int reason, void *opaque);
* maint: consolidate several .gitignore filesEric Blake2012-02-035-26/+0
| | | | | | | | | | | | | | | | | | | | | | | Unlike .cvsignore under CVS, git allows for ignoring nested names. We weren't very consistent where new tests were being ignored (some in .gitignore, some in tests/.gitignore), and I found it easier to just consolidate everything. * .gitignore: Subsume entries from subdirectories. * daemon/.gitignore: Delete. * docs/.gitignore: Likewise. * docs/devhelp/.gitignore: Likewise. * docs/html/.gitignore: Likewise. * examples/dominfo/.gitignore: Likewise. * examples/domsuspend/.gitignore: Likewise. * examples/hellolibvirt/.gitignore: Likewise. * examples/openauth/.gitignore: Likewise. * examples/domain-events/events-c/.gitignore: Likewise. * include/libvirt/.gitignore: Likewise. * src/.gitignore: Likewise. * src/esx/.gitignore: Likewise. * tests/.gitignore: Likewise. * tools/.gitignore: Likewise.
* build: clean up CPPFLAGS/INCLUDES usageEric Blake2012-02-034-8/+8
| | | | | | | | | | | | | | | | | | | | | Our syntax checker missed all-lower-case variables (this will be fixed by the next .gnulib update). Additionally, anywhere that we mix in-tree files with generated files, automake recommends listing builddir prior to srcdir for VPATH builds. * src/Makefile.am (*_la_CFLAGS): Favor $(top_srcdir). (INCLUDES): Likewise, and follow automake recommendations on builddir before srcdir. * python/Makefile.am (INCLUDES): Swap directory order. * tests/Makefile.am (INCLUDES): Likewise. * tools/Makefile.am (INCLUDES): Likewise. * daemon/Makefile.am (INCLUDES): Likewise. (libvirtd.init, libvirtd.service): Favor $(). * examples/hellolibvirt/Makefile.am (hellolibvirt_LDADD): Likewise. * examples/openauth/Makefile.am (openauth_LDADD): Likewise. * examples/dominfo/Makefile.am (INCLUDES): Drop dead include. * examples/domsuspend/Makefile.am (INCLUDES): Likewise.
* Permission change for systemtap examples.Martin Kletzander2012-01-172-0/+0
| | | | | | Execute bit on *.stp files in examples/systemtap/ caused dependency when building RPM packages. Disabling execute permission should help the auto dependency resolver to see that systemtap is not needed.
* nwfilter: fix typing error in filterStefan Berger2012-01-171-3/+3
| | | | | | | | Fix a typing error in the no-ip-spoofing filter. Return DHCP request packets passing through this filter. Have the user use another filter to actually allow DHCP requests to be sent (action='accept').
* examples: Update event tests for shutdown eventJiri Denemark2011-12-052-8/+20
|
* Update of filters to handle multiple IP addressesStefan Berger2011-12-017-44/+52
| | | | | | | | | | | | | | | | With fragments borrowed from David Steven's previous submission and some further modifications: A set of modifications to filters to handle multiple IP addresses (and MAC addresses) per interface. Also: - enable DHCP traffic from VM to any DHCP server - will require an update to a libvirt-tck data file Signed-off-by: David L Stevens <dlstevens@us.ibm.com> Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
* examples: Correct the example command to use testnode.xmlOsier Yang2011-11-291-1/+1
| | | | | | | | * s/-connection/-c/ * Removes the redundant '/'. * Add "absolute" so that it's more clear. Pushed under trivial rule.
* examples: Use virConnectOpenAuth in events-cJiri Denemark2011-11-241-1/+3
|
* Add keepalive support into domain-events examplesJiri Denemark2011-11-242-2/+11
|
* Add APIs for virNetSocket for sending/receiving file descriptorsDaniel P. Berrange2011-10-281-0/+10
| | | | | | | | Add APIs to the virNetSocket object, to allow file descriptors to be sent/received over UNIX domain socket connections * src/rpc/virnetsocket.c, src/rpc/virnetsocket.h, src/libvirt_private.syms: Add APIs for FD send/recv
* Add a systemtap script for watching QEMU monitor interactionsDaniel P. Berrange2011-10-271-0/+80
| | | | | | | | | | | | | | This change adds some systemtap/dtrace probes to the QEMU monitor client code. In particular it allows watching of all operations for a VM * examples/systemtap/qemu-monitor.stp: Watch all monitor commands * src/Makefile.am: Passing libdir/bindir/sbindir to dtrace2systemtap.pl * src/dtrace2systemtap.pl: Accept libdir/bindir/sbindir as args and look for '# binary:' comment to mark probes against libvirtd vs libvirt.so * src/qemu/qemu_monitor.c, src/qemu/qemu_monitor_json.c, src/qemu/qemu_monitor_text.c: Add probes for key functions
* startupPolicy: Emit event on disk source droppingMichal Privoznik2011-10-252-1/+32
| | | | | | | | | | If a disk source gets dropped because it is not accessible, mgmt application might want to be informed about this. Therefore we need to emit an event. The event presented in this patch is however a bit superset of what written above. The reason is simple: an intention to be easily expanded, e.g. on 'user ejected disk in guest' events. Therefore, callback gets source string and disk alias (which should be unique among a domain) and reason (an integer);
* example: Support debug output and loop switchPhilipp Hahn2011-10-121-2/+11
| | | | | | | | Add support for enabling debug output via command line option. Allow to toggle the loop implementation between pure-Python and native-C. Signed-off-by: Philipp Hahn <hahn@univention.de>
* example: Redirect --help output to stdout/stderrPhilipp Hahn2011-10-121-4/+4
| | | | | | | When --help is requested, print usage() to stdout. When an illegal option is passed, print usage to stderr. Signed-off-by: Philipp Hahn <hahn@univention.de>
* example: Fix argument handlingPhilipp Hahn2011-10-121-2/+2
| | | | | | | | | | sys.argv contains the original command line arguments, while args only contains the arguments not handled by getopt(). Currently this is no problem since --help is the only command line option passable, which terminates the process, so the code is never reached. Any option added in the future will reveal the bug. Signed-off-by: Philipp Hahn <hahn@univention.de>
* Update examples for probing with systemtapDaniel P. Berrange2011-10-114-29/+293
| | | | | | | | | | | | | | | | | This removes the old example for legacy probes and adds two new scripts demonstrating many of the new probe point facilities. The rpc-monitor.stp script will print out friendly details of all RPC traffic between a libvirt client/server. This is incredibly useful in seeing what RPC calls are being made, and also debugging problems in the RPC protocol code The events.stp script will print out lots of info about the poll event loop, which is useful for debugging event handling problems * examples/systemtap/events.stp, examples/systemtap/rpc-monitor.stp: New examples * examples/systemtap/client.stp: Remove obsolete example
* snapshot: better events when starting pausedEric Blake2011-09-021-4/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | There are two classes of management apps that track events - one that only cares about on/off (and only needs to track EVENT_STARTED and EVENT_STOPPED), and one that cares about paused/running (also tracks EVENT_SUSPENDED/EVENT_RESUMED). To keep both classes happy, any transition that can go from inactive to paused must emit two back-to-back events - one for started and one for suspended (since later resuming of the domain will only send RESUMED, but the first class isn't tracking that). This also fixes a bug where virDomainCreateWithFlags with the VIR_DOMAIN_START_PAUSED flag failed to start paused when restoring from a managed save image. * include/libvirt/libvirt.h.in (VIR_DOMAIN_EVENT_SUSPENDED_RESTORED) (VIR_DOMAIN_EVENT_SUSPENDED_FROM_SNAPSHOT) (VIR_DOMAIN_EVENT_RESUMED_FROM_SNAPSHOT): New sub-events. * src/qemu/qemu_driver.c (qemuDomainRevertToSnapshot): Use them. (qemuDomainSaveImageStartVM): Likewise, and add parameter. (qemudDomainCreate, qemuDomainObjStart): Send suspended event when starting paused. (qemuDomainObjRestore): Add parameter. (qemuDomainObjStart, qemuDomainRestoreFlags): Update callers. * examples/domain-events/events-c/event-test.c (eventDetailToString): Map new detail strings.
* maint: add missing copyright noticesEric Blake2011-07-289-0/+23
| | | | | | | | | I went with the shorter license notice used by src/libvirt.c, rather than spelling out the full LGPLv2+ clause into each of these files. * configure.ac: Declare copyright. * all Makefile.am: Likewise.
* update apparmor security driver for new udev pathsJamie Strandboge2011-07-141-3/+3
| | | | | | | | | | | | | | | | | | | | | In the Ubuntu development release we recently got a new udev that moves /var/run to /run, /var/lock to /run/lock and /dev/shm to /run/shm. This change in udev requires updating the apparmor security driver in libvirt[1]. Attached is a patch that: * adjusts src/security/virt-aa-helper.c to allow both LOCALSTATEDIR/run/libvirt/**/%s.pid and /run/libvirt/**/%s.pid. While the profile is not as precise, LOCALSTATEDIR/run/ is typically a symlink to /run/ anyway, so there is no additional access (remember that apparmor resolves symlinks, which is why this is still required even if /var/run points to /run). * adjusts example/apparmor/libvirt-qemu paths for /dev/shm [1]https://launchpad.net/bugs/810270 -- Jamie Strandboge | http://www.canonical.com
* microblaze: Add architecture supportJohn Williams2011-07-071-0/+4
| | | | | | Add libvirt support for MicroBlaze architecture as a QEMU target. Based on mips/mipsel pattern. Signed-off-by: John Williams <john.williams@petalogix.com>
* python: events: Fix C->Python handle callback prototypeCole Robinson2011-06-211-4/+2
| | | | | | | | | | | | | | | If registering our own event loop implementation written in python, any handles or timeouts callbacks registered by libvirt C code must be wrapped in a python function. There is some argument trickery that makes this all work, by wrapping the user passed opaque value in a tuple, along with the callback function. Problem is, the current setup requires the user's event loop to know about this trickery, rather than just treating the opaque value as truly opaque. Fix this in a backwards compatible manner, and adjust the example python event loop to do things the proper way.
* Introduce a new event emitted when a virtualization failure occursDaniel P. Berrange2011-05-291-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This introduces a new domain VIR_DOMAIN_EVENT_ID_CONTROL_ERROR Which uses the existing generic callback typedef void (*virConnectDomainEventGenericCallback)(virConnectPtr conn, virDomainPtr dom, void *opaque); This event is intended to be emitted when there is a failure in some part of the domain virtualization system. Whether the domain continues to run/exist after the failure is an implementation detail specific to the hypervisor. The idea is that with some types of failure, hypervisors may prefer to leave the domain running in a "degraded" mode of operation. For example, if something goes wrong with the QEMU monitor, it is possible to leave the guest OS running quite happily. The mgmt app will simply loose the ability todo various tasks. The mgmt app can then choose how/when to deal with the failure that occured. * daemon/remote.c: Dispatch of new event * examples/domain-events/events-c/event-test.c: Demo catch of event * include/libvirt/libvirt.h.in: Define event ID and callback * src/conf/domain_event.c, src/conf/domain_event.h: Internal event handling * src/remote/remote_driver.c: Receipt of new event from daemon * src/remote/remote_protocol.x: Wire protocol for new event * src/remote_protocol-structs: add new event for checks
* nwfilter: enable filtering of gratuitous ARP packetsStefan Berger2011-05-231-1/+5
| | | | | | | | This patch enables filtering of gratuitous ARP packets using the following XML: <rule action='accept' direction='in' priority='425'> <arp gratuitous='true'/> </rule>
* build: avoid gcc preprocessor extensionsEric Blake2011-05-111-2/+1
| | | | | | | | | | | | Use of ',##__VA_ARGS__' is a gcc extension not guaranteed by C99; thankfully, we can avoid it by lumping the format argument into the var-args set. * src/util/logging.h (VIR_DEBUG_INT, VIR_INFO_INT, VIR_WARN_INT) (VIR_ERROR_INT, VIR_DEBUG, VIR_INFO, VIR_WARN, VIR_ERROR): Stick to C99 var-arg macro syntax. * examples/domain-events/events-c/event-test.c (VIR_DEBUG): Simplify.
* libvirt,logging: cleanup VIR_XXX0()Lai Jiangshan2011-05-111-6/+4
| | | | | | | | | | | | | | | | | | | | | | These VIR_XXXX0 APIs make us confused, use the non-0-suffix APIs instead. How do these coversions works? The magic is using the gcc extension of ##. When __VA_ARGS__ is empty, "##" will swallow the "," in "fmt," to avoid compile error. example: origin after CPP high_level_api("%d", a_int) low_level_api("%d", a_int) high_level_api("a string") low_level_api("a string") About 400 conversions. 8 special conversions: VIR_XXXX0("") -> VIR_XXXX("msg") (avoid empty format) 2 conversions VIR_XXXX0(string_literal_with_%) -> VIR_XXXX(%->%%) 0 conversions VIR_XXXX0(non_string_literal) -> VIR_XXXX("%s", non_string_literal) (for security) 6 conversions Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
* Fix domain events C example on Win32Daniel P. Berrange2011-03-311-2/+10
| | | | | | | | | | | printf on Win32 does not necessarily support %lld and we don't have GNULIBs wrapper for printf(). Switch to use asprintf() for which we do have a gnulib wrapper with %lld support * examples/domain-events/events-c/event-test.c: Fix formatting of %lld on Win32 * cfg.mk: Don't require use of virAsprintf since this is an example app for out of tree users to follow
* Update event loop example programs to demonstrate best practiceDaniel P. Berrange2011-03-292-163/+43
| | | | | | | | | | | | | | | | | | | | The example C event loop code is a nasty hack and not compliant with the require API semantics. Delete this, so that developers don't mistakenly copy it. Instead call the new public event loop APIs. Update the python event loop example, so that it can optionally use the public event APIs, as an alternative to the pure python code. The pure python event code is a good working example, so don't delete it. Also make the python example use a read only connection to avoid authentication prompts * examples/domain-events/events-c/event-test.c: Replace event loop code with use of public APIs * examples/domain-events/events-python/event-test.py: Allow optional use of new public event APIs
* maint: kill all remaining uses of old DEBUG macroEric Blake2011-02-211-14/+14
| | | | | | | | | | | | | Done mechanically with: $ git grep -l '\bDEBUG0\? *(' | xargs -L1 sed -i 's/\bDEBUG0\? *(/VIR_&/' followed by manual deletion of qemudDebug in daemon/libvirtd.c, along with a single 'make syntax-check' fallout in the same file, and the actual deletion in src/util/logging.h. * src/util/logging.h (DEBUG, DEBUG0): Delete. * daemon/libvirtd.h (qemudDebug): Likewise. * global: Change remaining clients over to VIR_DEBUG counterpart.
* Prevent overfilling of self-pipe in python event loopDaniel P. Berrange2011-01-281-1/+9
| | | | | | | | If the event loop takes a very long time todo something, it is possible for the 'self pipe' buffer to become full at which point the entire event loop + remote driver deadlock. Use a boolean flag to ensure we have strict one-in, one-out behaviour on writes/reads of the 'self pipe'
* event-test: Simplify debug on/offCole Robinson2011-01-101-18/+19
| | | | Make it easy to change debugging if being used by a client program.
* maint: avoid space-tabEric Blake2010-12-212-2/+4
| | | | | | | | | | | | | * daemon/Makefile.am: Avoid spurious space before tabs. * src/Makefile.am: Likewise. * examples/dominfo/Makefile.am: Likewise. * examples/domsuspend/Makefile.am: Likewise. * tools/Makefile.am: Likewise. * src/datatypes.h (VIR_CONNECT_MAGIC): Likewise. * src/internal.h (TODO): Likewise. * src/qemu/qemu_monitor.h (QEMU_MONITOR_MIGRATE): Likewise. * src/xen/xen_hypervisor.c (XEN_V2_OP_GETAVAILHEAP): Likewise. * src/xen/xs_internal.h: Likewise.