summary refs log tree commit diff stats
path: root/include/qemu/sockets.h
diff options
context:
space:
mode:
authorDaniel P. Berrange <berrange@redhat.com>2015-02-27 16:19:33 +0000
committerDaniel P. Berrange <berrange@redhat.com>2015-12-18 12:18:31 +0000
commit559607ea173a0003efda7f884bec73b242f923fb (patch)
tree63e923e55537ea0add19a0a8bb7c1a238d6cb3e9 /include/qemu/sockets.h
parentb02db2d9203ccfd1c26e55f7d975f0c05caee0ce (diff)
downloadfocaccia-qemu-559607ea173a0003efda7f884bec73b242f923fb.tar.gz
focaccia-qemu-559607ea173a0003efda7f884bec73b242f923fb.zip
io: add QIOChannelSocket class
Implement a QIOChannel subclass that supports sockets I/O.
The implementation is able to manage a single socket file
descriptor, whether a TCP/UNIX listener, TCP/UNIX connection,
or a UDP datagram. It provides APIs which can listen and
connect either asynchronously or synchronously. Since there
is no asynchronous DNS lookup API available, it uses the
QIOTask helper for spawning a background thread to ensure
non-blocking operation.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Diffstat (limited to 'include/qemu/sockets.h')
-rw-r--r--include/qemu/sockets.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/include/qemu/sockets.h b/include/qemu/sockets.h
index 5a183c570d..74c692d432 100644
--- a/include/qemu/sockets.h
+++ b/include/qemu/sockets.h
@@ -89,6 +89,25 @@ int parse_host_port(struct sockaddr_in *saddr, const char *str);
 int socket_init(void);
 
 /**
+ * socket_sockaddr_to_address:
+ * @sa: socket address struct
+ * @salen: size of @sa struct
+ * @errp: pointer to uninitialized error object
+ *
+ * Get the string representation of the socket
+ * address. A pointer to the allocated address information
+ * struct will be returned, which the caller is required to
+ * release with a call qapi_free_SocketAddress when no
+ * longer required.
+ *
+ * Returns: the socket address struct, or NULL on error
+ */
+SocketAddress *
+socket_sockaddr_to_address(struct sockaddr_storage *sa,
+                           socklen_t salen,
+                           Error **errp);
+
+/**
  * socket_local_address:
  * @fd: the socket file handle
  * @errp: pointer to uninitialized error object