qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* Re: [Qemu-devel] [Qemu-trivial] [PATCH] qmp: Report path ambiguity error.
       [not found] <1398725186-8202-1-git-send-email-kroosec@gmail.com>
@ 2014-05-03  8:38 ` Michael Tokarev
  2014-05-05  9:12   ` Michael Tokarev
  2014-05-05  9:37 ` [Qemu-devel] " Andreas Färber
  1 sibling, 1 reply; 5+ messages in thread
From: Michael Tokarev @ 2014-05-03  8:38 UTC (permalink / raw)
  To: Hani Benhabiles, qemu-devel
  Cc: qemu-trivial, Andreas Färber, lcapitulino

29.04.2014 02:46, Hani Benhabiles wrote:
> Signed-off-by: Hani Benhabiles <hani@linux.com>
> Suggested-by: Andreas Färber <afaerber@suse.de>
> ---
>  qmp.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/qmp.c b/qmp.c
> index 74107be..0d49abf 100644
> --- a/qmp.c
> +++ b/qmp.c
> @@ -199,7 +199,10 @@ ObjectPropertyInfoList *qmp_qom_list(const char *path, Error **errp)
>      ObjectProperty *prop;
>  
>      obj = object_resolve_path(path, &ambiguous);
> -    if (obj == NULL) {
> +    if (ambiguous) {
> +        error_setg(errp, "Path '%s' is ambiguous", path);
> +        return NULL;
> +    } else if (obj == NULL) {
>          error_set(errp, QERR_DEVICE_NOT_FOUND, path);
>          return NULL;
>      }

How about this:

--- a/qmp.c
+++ b/qmp.c
@@ -200,7 +200,9 @@ ObjectPropertyInfoList *qmp_qom_list(const char *path, Error **errp)

     obj = object_resolve_path(path, &ambiguous);
     if (obj == NULL) {
-        error_set(errp, QERR_DEVICE_NOT_FOUND, path);
+        error_set(errp,
+                  ambiguous ? "Path '%s' is ambiguous" : QERR_DEVICE_NOT_FOUND,
+                  path);
         return NULL;
     }

The difference here is that we test "ambiguous" variable only if obj is NULL,
ie, only on error path.  Please note that object_resolve_path() does not
initialize *ambiguous in all code paths.

Thanks,

/mjt

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [Qemu-trivial] [PATCH] qmp: Report path ambiguity error.
  2014-05-03  8:38 ` [Qemu-devel] [Qemu-trivial] [PATCH] qmp: Report path ambiguity error Michael Tokarev
@ 2014-05-05  9:12   ` Michael Tokarev
  2014-05-05  9:26     ` Andreas Färber
  0 siblings, 1 reply; 5+ messages in thread
From: Michael Tokarev @ 2014-05-05  9:12 UTC (permalink / raw)
  To: Hani Benhabiles, qemu-devel
  Cc: qemu-trivial, Andreas Färber, lcapitulino

03.05.2014 12:38, Michael Tokarev wrote:
[]
> --- a/qmp.c
> +++ b/qmp.c
> @@ -200,7 +200,9 @@ ObjectPropertyInfoList *qmp_qom_list(const char *path, Error **errp)
> 
>      obj = object_resolve_path(path, &ambiguous);
>      if (obj == NULL) {
> -        error_set(errp, QERR_DEVICE_NOT_FOUND, path);
> +        error_set(errp,
> +                  ambiguous ? "Path '%s' is ambiguous" : QERR_DEVICE_NOT_FOUND,
> +                  path);
>          return NULL;
>      }

I've applied this version.

Thanks,

/mjt

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [Qemu-trivial] [PATCH] qmp: Report path ambiguity error.
  2014-05-05  9:12   ` Michael Tokarev
@ 2014-05-05  9:26     ` Andreas Färber
  2014-05-05  9:31       ` Michael Tokarev
  0 siblings, 1 reply; 5+ messages in thread
From: Andreas Färber @ 2014-05-05  9:26 UTC (permalink / raw)
  To: Michael Tokarev, Hani Benhabiles, qemu-devel; +Cc: qemu-trivial, lcapitulino

Am 05.05.2014 11:12, schrieb Michael Tokarev:
> 03.05.2014 12:38, Michael Tokarev wrote:
> []
>> --- a/qmp.c
>> +++ b/qmp.c
>> @@ -200,7 +200,9 @@ ObjectPropertyInfoList *qmp_qom_list(const char *path, Error **errp)
>>
>>      obj = object_resolve_path(path, &ambiguous);
>>      if (obj == NULL) {
>> -        error_set(errp, QERR_DEVICE_NOT_FOUND, path);
>> +        error_set(errp,
>> +                  ambiguous ? "Path '%s' is ambiguous" : QERR_DEVICE_NOT_FOUND,
>> +                  path);
>>          return NULL;
>>      }
> 
> I've applied this version.

Please undo. error_set() unlike error_setg() expects an ErrorClass
argument before the string. QERR_* macro contains *two* comma-separated
values, so it is on top filling in the device-not-found message as path
in the ambiguous case.

Regards,
Andreas

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [Qemu-trivial] [PATCH] qmp: Report path ambiguity error.
  2014-05-05  9:26     ` Andreas Färber
@ 2014-05-05  9:31       ` Michael Tokarev
  0 siblings, 0 replies; 5+ messages in thread
From: Michael Tokarev @ 2014-05-05  9:31 UTC (permalink / raw)
  To: Andreas Färber, Hani Benhabiles, qemu-devel
  Cc: qemu-trivial, lcapitulino

05.05.2014 13:26, Andreas Färber пишет:
>> 03.05.2014 12:38, Michael Tokarev wrote:

>>> +        error_set(errp,
>>> +                  ambiguous ? "Path '%s' is ambiguous" : QERR_DEVICE_NOT_FOUND,
>>> +                  path);

>> I've applied this version.
> 
> Please undo. error_set() unlike error_setg() expects an ErrorClass
> argument before the string. QERR_* macro contains *two* comma-separated
> values, so it is on top filling in the device-not-found message as path
> in the ambiguous case.

Heh, I havent tried to compile it yet ;)  Ofcourse I'd find this out before
sending the pull request.  Actually this is a classic ENOCOFFEE, twice.

I'll fix this for real.  This makes way too many iterations.

/mjt

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [PATCH] qmp: Report path ambiguity error.
       [not found] <1398725186-8202-1-git-send-email-kroosec@gmail.com>
  2014-05-03  8:38 ` [Qemu-devel] [Qemu-trivial] [PATCH] qmp: Report path ambiguity error Michael Tokarev
@ 2014-05-05  9:37 ` Andreas Färber
  1 sibling, 0 replies; 5+ messages in thread
From: Andreas Färber @ 2014-05-05  9:37 UTC (permalink / raw)
  To: Hani Benhabiles, Michael Tokarev; +Cc: qemu-trivial, qemu-devel, lcapitulino

Am 29.04.2014 00:46, schrieb Hani Benhabiles:
> Signed-off-by: Hani Benhabiles <hani@linux.com>
> Suggested-by: Andreas Färber <afaerber@suse.de>
> ---
>  qmp.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/qmp.c b/qmp.c
> index 74107be..0d49abf 100644
> --- a/qmp.c
> +++ b/qmp.c
> @@ -199,7 +199,10 @@ ObjectPropertyInfoList *qmp_qom_list(const char *path, Error **errp)
>      ObjectProperty *prop;
>  
>      obj = object_resolve_path(path, &ambiguous);
> -    if (obj == NULL) {
> +    if (ambiguous) {
> +        error_setg(errp, "Path '%s' is ambiguous", path);
> +        return NULL;
> +    } else if (obj == NULL) {
>          error_set(errp, QERR_DEVICE_NOT_FOUND, path);
>          return NULL;
>      }

This is not quite what I suggested, but assuming bool ambiguous gets
initialized to false, this variant should work too.

Hani, please note that your Signed-off-by should be the last line in the
commit message. No need to resend just for that. I'll try to dig out the
code for a proper Rb later.

Regards,
Andreas

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-05-05  9:37 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <1398725186-8202-1-git-send-email-kroosec@gmail.com>
2014-05-03  8:38 ` [Qemu-devel] [Qemu-trivial] [PATCH] qmp: Report path ambiguity error Michael Tokarev
2014-05-05  9:12   ` Michael Tokarev
2014-05-05  9:26     ` Andreas Färber
2014-05-05  9:31       ` Michael Tokarev
2014-05-05  9:37 ` [Qemu-devel] " Andreas Färber

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).