summary refs log tree commit diff stats
path: root/include/qemu/sockets.h
diff options
context:
space:
mode:
authorMarkus Armbruster <armbru@redhat.com>2017-03-30 19:43:15 +0200
committerMax Reitz <mreitz@redhat.com>2017-04-03 17:11:39 +0200
commit216411b83967ae19e3c9c520e13ceb8bb383890c (patch)
tree6b6a983a5e3aeadcf39ed6180287607ff3478d3b /include/qemu/sockets.h
parent8bc0673f6dc2485b46da6de8204aaca2a711acea (diff)
downloadfocaccia-qemu-216411b83967ae19e3c9c520e13ceb8bb383890c.tar.gz
focaccia-qemu-216411b83967ae19e3c9c520e13ceb8bb383890c.zip
sockets: New helper socket_address_crumple()
SocketAddress is a simple union, and simple unions are awkward: they
have their variant members wrapped in a "data" object on the wire, and
require additional indirections in C.  I intend to limit its use to
existing external interfaces.  New ones should use SocketAddressFlat.
I further intend to convert all internal interfaces to
SocketAddressFlat.  This helper should go away then.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-id: 1490895797-29094-8-git-send-email-armbru@redhat.com
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
Diffstat (limited to 'include/qemu/sockets.h')
-rw-r--r--include/qemu/sockets.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/include/qemu/sockets.h b/include/qemu/sockets.h
index 5f1bab9b3e..7842f6d150 100644
--- a/include/qemu/sockets.h
+++ b/include/qemu/sockets.h
@@ -119,4 +119,15 @@ SocketAddress *socket_remote_address(int fd, Error **errp);
  */
 char *socket_address_to_string(struct SocketAddress *addr, Error **errp);
 
+/**
+ * socket_address_crumple:
+ * @addr_flat: the socket address to crumple
+ *
+ * Convert SocketAddressFlat to SocketAddress.  Caller is responsible
+ * for freeing with qapi_free_SocketAddress().
+ *
+ * Returns: the argument converted to SocketAddress.
+ */
+SocketAddress *socket_address_crumple(SocketAddressFlat *addr_flat);
+
 #endif /* QEMU_SOCKETS_H */