rbd: Reject -blockdev server.*.{numeric, to, ipv4, ipv6}
We use InetSocketAddress in the QAPI schema. However, the code doesn't use inet_connect_saddr(), but formats "host" and "port" into a configuration string for rados_conf_set(). Thus, members "numeric", "to", "ipv4" and "ipv6" are silently ignored. Not nice. Example: -blockdev rbd,node-name=nn,pool=p,image=i,server.0.host=h0,server.0.port=12345,server.0.ipv4=off Factor a suitable InetSocketAddressBase out of InetSocketAddress, and use that. "numeric", "to", "ipv4" and "ipv6" are now rejected. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Jeff Cody <jcody@redhat.com> Message-id: 1490691368-32099-2-git-send-email-armbru@redhat.com Signed-off-by: Jeff Cody <jcody@redhat.com>
This commit is contained in:
parent
142b9ca51d
commit
eb87203b64
@ -4050,20 +4050,28 @@
|
||||
{ 'enum': 'NetFilterDirection',
|
||||
'data': [ 'all', 'rx', 'tx' ] }
|
||||
|
||||
##
|
||||
# @InetSocketAddressBase:
|
||||
#
|
||||
# @host: host part of the address
|
||||
# @port: port part of the address
|
||||
##
|
||||
{ 'struct': 'InetSocketAddressBase',
|
||||
'data': {
|
||||
'host': 'str',
|
||||
'port': 'str' } }
|
||||
|
||||
##
|
||||
# @InetSocketAddress:
|
||||
#
|
||||
# Captures a socket address or address range in the Internet namespace.
|
||||
#
|
||||
# @host: host part of the address
|
||||
#
|
||||
# @port: port part of the address, or lowest port if @to is present
|
||||
#
|
||||
# @numeric: true if the host/port are guaranteed to be numeric,
|
||||
# false if name resolution should be attempted. Defaults to false.
|
||||
# (Since 2.9)
|
||||
#
|
||||
# @to: highest port to try
|
||||
# @to: If present, this is range of possible addresses, with port
|
||||
# between @port and @to.
|
||||
#
|
||||
# @ipv4: whether to accept IPv4 addresses, default try both IPv4 and IPv6
|
||||
#
|
||||
@ -4072,9 +4080,8 @@
|
||||
# Since: 1.3
|
||||
##
|
||||
{ 'struct': 'InetSocketAddress',
|
||||
'base': 'InetSocketAddressBase',
|
||||
'data': {
|
||||
'host': 'str',
|
||||
'port': 'str',
|
||||
'*numeric': 'bool',
|
||||
'*to': 'uint16',
|
||||
'*ipv4': 'bool',
|
||||
|
@ -2652,7 +2652,7 @@
|
||||
'*conf': 'str',
|
||||
'*snapshot': 'str',
|
||||
'*user': 'str',
|
||||
'*server': ['InetSocketAddress'],
|
||||
'*server': ['InetSocketAddressBase'],
|
||||
'*auth-supported': ['RbdAuthMethod'],
|
||||
'*password-secret': 'str' } }
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user