qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 20/25] qapi: add socket address types


From: Markus Armbruster
Subject: Re: [Qemu-devel] [PATCH 20/25] qapi: add socket address types
Date: Fri, 19 Oct 2012 10:10:02 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1 (gnu/linux)

Paolo Bonzini <address@hidden> writes:

> Il 17/10/2012 18:43, Markus Armbruster ha scritto:
>> Paolo Bonzini <address@hidden> writes:
>> 
>>> Acked-by: Luiz Capitulino <address@hidden>
>>> Signed-off-by: Paolo Bonzini <address@hidden>
>>> ---
>>>  qapi-schema.json | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
>>>  1 file modificato, 53 inserzioni(+)
>>>
>>> diff --git a/qapi-schema.json b/qapi-schema.json
>>> index f9dbdae..d40b5fc 100644
>>> --- a/qapi-schema.json
>>> +++ b/qapi-schema.json
>>> @@ -2505,6 +2505,59 @@
>>>      'opts': 'NetClientOptions' } }
>>>  
>>>  ##
>>> +# @IPSocketAddress
>>> +#
>>> +# Captures the destination address of an IP socket
>> 
>> What's a "destination address of an IP socket"?
>
> Any suggestions?

"socket address in the Internet namespace"?

Actually, it's either an address or an address range (when @to is
present).

>>> +#
>>> +# @host: host part of the address
>>> +#
>>> +# @port: port part of the address, or lowest port if @to is present
>>> +#
>>> +# @to: highest port to try
>>> +#
>>> +# @ipv4: whether to accept IPv4 addresses, default try both IPv4 and IPv6
>>> +#        #optional
>>> +#
>>> +# @ipv6: whether to accept IPv6 addresses, default try both IPv4 and IPv6
>>> +#        #optional
>>> +#
>>> +# Since 1.3
>>> +##
>>> +{ 'type': 'IPSocketAddress',
>>> +  'data': {
>>> +    'host': 'str',
>>> +    'port': 'str',
>>> +    '*to': 'uint16',
>> 
>> Two port members, one is 'str', the other is 'uint16'.  Ugly.
>
> This is because port can be a service name.  Using a union was deemed
> overkill.

Two ways to reduce the ugliness:

1. Make @to a string, too.  Yes, users don't normally want to specify
the upper bound as service name, but if a user wanted to, it would work
just fine.

2. Use a number of ports instead of an upper port bound: replace @to by
@address@hidden

>>> +    '*ipv4': 'bool',
>>> +    '*ipv6': 'bool' } }
>>> +
>>> +##
>>> +# @UnixSocketAddress
>>> +#
>>> +# Captures the destination address of a Unix socket
>> 
>> What's a "destination address of a Unix socket"?

"Socket address in the local namespace"

[...]
>>> +#
>>> +# @path: filesystem path to use
>>> +#
>>> +# Since 1.3
>>> +##
>>> +{ 'type': 'UnixSocketAddress',
>>> +  'data': {
>>> +    'path': 'str' } }
>>> +
>>> +##
>>> +# @SocketAddress
>>> +#
>>> +# Captures the address of a socket, which could also be a named
>>> file descriptor
>>> +#
>>> +# Since 1.3
>>> +##
>>> +{ 'union': 'SocketAddress',
>>> +  'data': {
>>> +    'inet': 'IPSocketAddress',
>> 
>> Call it InetSocketAddress, like 'inet', AF_INET, PF_INET, and so forth.
>
> Ok.  Luiz, at this point please unqueue the series.  I'll send a pull
> request myself to Anthony.
>
> Paolo
>
>>> +    'unix': 'UnixSocketAddress',
>>> +    'fd': 'String' } }

'String'?  Do you mean 'str'?

>>> +
>>> +##
>>>  # @getfd:
>>>  #
>>>  # Receive a file descriptor via SCM rights and assign it a name



reply via email to

[Prev in Thread] Current Thread [Next in Thread]