sockets: Make abstract UnixSocketAddress depend on CONFIG_LINUX
commit8acefc79deaab1c7ee2ab07b540b0e3edf0f9f47
authorMarkus Armbruster <armbru@redhat.com>
Mon, 2 Nov 2020 09:44:22 +0000 (2 10:44 +0100)
committerDaniel P. Berrangé <berrange@redhat.com>
Tue, 3 Nov 2020 13:17:25 +0000 (3 13:17 +0000)
tree1481759a0b868fe0ecef50509c97feee5063eced
parentef298e3826e574c712d10e38a5f2a3629d6f5e01
sockets: Make abstract UnixSocketAddress depend on CONFIG_LINUX

The abstract socket namespace is a non-portable Linux extension.  An
attempt to use it elsewhere should fail with ENOENT (the abstract
address looks like a "" pathname, which does not resolve).  We report
this failure like

    Failed to connect socket abc: No such file or directory

Tolerable, although ENOTSUP would be better.

However, introspection lies: it has @abstract regardless of host
support.  Easy enough to fix: since Linux provides them since 2.2,
'if': 'defined(CONFIG_LINUX)' should do.

The above failure becomes

    Parameter 'backend.data.addr.data.abstract' is unexpected

I consider this an improvement.

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
chardev/char-socket.c
chardev/char.c
qapi/sockets.json
tests/test-util-sockets.c
util/qemu-sockets.c