On 05/31/13 14:36, Eric Blake wrote:
> On 05/28/2013 12:34 AM, Gerd Hoffmann wrote:
>> Fill unset CharDriverState->filename with the backend name, so
>> 'info chardev' will return at least the chardev type.  Don't
>> touch it in case the chardev init function filled it already,
>> like the socket+pty chardevs do for example.
>>
>> Signed-off-by: Gerd Hoffmann <kra...@redhat.com>
>> ---
>>   qemu-char.c |    3 +++
>>   1 file changed, 3 insertions(+)
>>
>> diff --git a/qemu-char.c b/qemu-char.c
>> index f825294..d04b429 100644
>> --- a/qemu-char.c
>> +++ b/qemu-char.c
>> @@ -3801,6 +3801,9 @@ ChardevReturn *qmp_chardev_add(const char *id, 
>> ChardevBackend *backend,
>>           chr->label = g_strdup(id);
>>           chr->avail_connections =
>>               (backend->kind == CHARDEV_BACKEND_KIND_MUX) ? MAX_MUX : 1;
>> +        if (!chr->filename) {
>> +            chr->filename = 
>> g_strdup(ChardevBackendKind_lookup[backend->kind]);
>> +        }
>>           QTAILQ_INSERT_TAIL(&chardevs, chr, next);
>>           return ret;
>>       } else {
>>
> 
> Peter was telling me on IRC that this patch is still broken with regards
> to libvirt; I've cc'd him to provide more details...
> 

Without this patch the returned message for "query-chardev" is:

{
    "return": [
        {
            "filename": "pty:/dev/pts/8",
            "label": "charserial0"
        },
        {
            "filename": "unix:/var/lib/libvirt/qemu/qemu-git.monitor,server",
            "label": "charmonitor"
        }
    ],
    "id": "libvirt-2"
}


this patch changes it to:

{
    "return": [
        {
            "filename": "pty",
            "label": "charserial0"
        },
        {
            "filename": "unix:/var/lib/libvirt/qemu/qemu-git.monitor,server",
            "label": "charmonitor"
        }
    ],
    "id": "libvirt-2"
}

It's apparent that some code being executed after the code in this patch
fills the actual pty path that was allocated. With it pre-allocated the
code ignores it. Libvirt is using the output to gather names of the pty
so that they can be used to connect to the console.

Peter

Reply via email to