| # -*- Mode: Python -*- |
| |
| ## |
| # = Socket data types |
| ## |
| |
| { 'include': 'common.json' } |
| |
| ## |
| # @NetworkAddressFamily: |
| # |
| # The network address family |
| # |
| # @ipv4: IPV4 family |
| # |
| # @ipv6: IPV6 family |
| # |
| # @unix: unix socket |
| # |
| # @vsock: vsock family (since 2.8) |
| # |
| # @unknown: otherwise |
| # |
| # Since: 2.1 |
| ## |
| { 'enum': 'NetworkAddressFamily', |
| 'data': [ 'ipv4', 'ipv6', 'unix', 'vsock', 'unknown' ] } |
| |
| ## |
| # @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. |
| # |
| # @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: 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 |
| # |
| # @ipv6: whether to accept IPv6 addresses, default try both IPv4 and IPv6 |
| # |
| # Since: 1.3 |
| ## |
| { 'struct': 'InetSocketAddress', |
| 'base': 'InetSocketAddressBase', |
| 'data': { |
| '*numeric': 'bool', |
| '*to': 'uint16', |
| '*ipv4': 'bool', |
| '*ipv6': 'bool' } } |
| |
| ## |
| # @UnixSocketAddress: |
| # |
| # Captures a socket address in the local ("Unix socket") namespace. |
| # |
| # @path: filesystem path to use |
| # |
| # Since: 1.3 |
| ## |
| { 'struct': 'UnixSocketAddress', |
| 'data': { |
| 'path': 'str' } } |
| |
| ## |
| # @VsockSocketAddress: |
| # |
| # Captures a socket address in the vsock namespace. |
| # |
| # @cid: unique host identifier |
| # @port: port |
| # |
| # Note: string types are used to allow for possible future hostname or |
| # service resolution support. |
| # |
| # Since: 2.8 |
| ## |
| { 'struct': 'VsockSocketAddress', |
| 'data': { |
| 'cid': 'str', |
| 'port': 'str' } } |
| |
| ## |
| # @SocketAddressLegacy: |
| # |
| # Captures the address of a socket, which could also be a named file descriptor |
| # |
| # Note: This type is deprecated in favor of SocketAddress. The |
| # difference between SocketAddressLegacy and SocketAddress is that the |
| # latter is a flat union rather than a simple union. Flat is nicer |
| # because it avoids nesting on the wire, i.e. that form has fewer {}. |
| |
| # |
| # Since: 1.3 |
| ## |
| { 'union': 'SocketAddressLegacy', |
| 'data': { |
| 'inet': 'InetSocketAddress', |
| 'unix': 'UnixSocketAddress', |
| 'vsock': 'VsockSocketAddress', |
| 'fd': 'String' } } |
| |
| ## |
| # @SocketAddressType: |
| # |
| # Available SocketAddress types |
| # |
| # @inet: Internet address |
| # |
| # @unix: Unix domain socket |
| # |
| # @vsock: VMCI address |
| # |
| # @fd: decimal is for file descriptor number, otherwise a file descriptor name. |
| # Named file descriptors are permitted in monitor commands, in combination |
| # with the 'getfd' command. Decimal file descriptors are permitted at |
| # startup or other contexts where no monitor context is active. |
| # |
| # Since: 2.9 |
| ## |
| { 'enum': 'SocketAddressType', |
| 'data': [ 'inet', 'unix', 'vsock', 'fd' ] } |
| |
| ## |
| # @SocketAddress: |
| # |
| # Captures the address of a socket, which could also be a named file |
| # descriptor |
| # |
| # @type: Transport type |
| # |
| # Since: 2.9 |
| ## |
| { 'union': 'SocketAddress', |
| 'base': { 'type': 'SocketAddressType' }, |
| 'discriminator': 'type', |
| 'data': { 'inet': 'InetSocketAddress', |
| 'unix': 'UnixSocketAddress', |
| 'vsock': 'VsockSocketAddress', |
| 'fd': 'String' } } |