On Sun, Dec 02, 2018 at 23:10:13 -0600, Chris Venteicher wrote:
> Qemu process code for capababilities doesn't use monitor callbacks and
> defines empty callback functions.
> 
> Allow NULL to be passed to qemuMonitorOpen for callbacks and remove the
> empty functions from the QMP process code.
> 
> Signed-off-by: Chris Venteicher <cvent...@redhat.com>
> ---
>  src/qemu/qemu_monitor.c |  4 ++--
>  src/qemu/qemu_process.c | 14 +-------------
>  2 files changed, 3 insertions(+), 15 deletions(-)
> 
> diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
> index a65d638ab8..84065c59dc 100644
> --- a/src/qemu/qemu_monitor.c
> +++ b/src/qemu/qemu_monitor.c
> @@ -813,12 +813,12 @@ qemuMonitorOpenInternal(virDomainObjPtr vm,
>  {
>      qemuMonitorPtr mon;
>  
> -    if (!cb->eofNotify) {
> +    if (cb && !cb->eofNotify) {
>          virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
>                         _("EOF notify callback must be supplied"));
>          return NULL;
>      }
> -    if (!cb->errorNotify) {
> +    if (cb && !cb->errorNotify) {
>          virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
>                         _("Error notify callback must be supplied"));
>          return NULL;
> diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
> index 1b6adf1b64..24945b1d17 100644
> --- a/src/qemu/qemu_process.c
> +++ b/src/qemu/qemu_process.c
> @@ -8095,18 +8095,6 @@ qemuProcessReconnectAll(virQEMUDriverPtr driver)
>  }
>  
>  
> -static void virQEMUCapsMonitorNotify(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
> -                                     virDomainObjPtr vm ATTRIBUTE_UNUSED,
> -                                     void *opaque ATTRIBUTE_UNUSED)
> -{
> -}
> -
> -static qemuMonitorCallbacks callbacks = {
> -    .eofNotify = virQEMUCapsMonitorNotify,
> -    .errorNotify = virQEMUCapsMonitorNotify,
> -};
> -
> -
>  /**
>   * qemuProcessQmpFree:
>   * @proc: Stores Process and Connection State
> @@ -8302,7 +8290,7 @@ qemuProcessQmpConnectMonitor(qemuProcessQmpPtr proc)
>      bool retry = true;
>      bool enableJson = true;
>      virQEMUDriverPtr driver = NULL;
> -    qemuMonitorCallbacksPtr monCallbacks = &callbacks;
> +    qemuMonitorCallbacksPtr monCallbacks = NULL;
>      virDomainXMLOptionPtr xmlopt = NULL;
>      virDomainChrSourceDef monConfig;

So qemuMonitorOpenInternal would not report an error anymore, but
qemuMonitorIO would just crash on error or eof. This doesn't sound like
a change in the right direction, does it?

Sure, we could make the code tolerant to NULL callbacks, but I think
it's actually better to require the callbacks than covering possible
programmer's errors.

Drop this patch, please.

Jirka

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to