On 04/11/2013 06:45 AM, Peter Krempa wrote: > Instead of always using HMP use the QMP send-key command introduced in qemu 1.3. > --- > +++ b/src/qemu/qemu_monitor.c > @@ -3008,14 +3008,15 @@ int qemuMonitorInjectNMI(qemuMonitorPtr mon) > int qemuMonitorSendKey(qemuMonitorPtr mon, > unsigned int holdtime, > unsigned int *keycodes, > - unsigned int nkeycodes) > + unsigned int nkeycodes, > + bool useQMP) > { > int ret; > > VIR_DEBUG("mon=%p, holdtime=%u, nkeycodes=%u", > mon, holdtime, nkeycodes); > > - if (mon->json) > + if (mon->json && useQMP) > ret = qemuMonitorJSONSendKey(mon, holdtime, keycodes, nkeycodes); > else > ret = qemuMonitorTextSendKey(mon, holdtime, keycodes, nkeycodes); I'm not sure I like adding the useQMP parameter. That makes for a leaky abstraction (the caller is burdened with telling us which version of a polymorphic function to dispatch to). What we have done in other cases is to always dispatch to the json code, and then have the json code _try_ the command, and if the command fails, fall back to the hmp command. See for example qemuMonitorJSONInjectNMI. And if you do it that way, you don't even need a qemu_capabilities bit, and the caller no longer has to care about which version of monitor it is talking to. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list