diff mbox

[v3,13/21] char-socket: add 'addr' property

Message ID 20170316092121.25672-14-marcandre.lureau@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Marc-André Lureau March 16, 2017, 9:21 a.m. UTC
Add a property to lookup the connection details.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 chardev/char-socket.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

Comments

Philippe Mathieu-Daudé April 11, 2017, 2:57 a.m. UTC | #1
On 03/16/2017 06:21 AM, Marc-André Lureau wrote:
> Add a property to lookup the connection details.
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

> ---
>  chardev/char-socket.c | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
>
> diff --git a/chardev/char-socket.c b/chardev/char-socket.c
> index 4325a05387..81021c5863 100644
> --- a/chardev/char-socket.c
> +++ b/chardev/char-socket.c
> @@ -1006,6 +1006,15 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
>      sock->addr = addr;
>  }
>
> +static void
> +char_socket_get_addr(Object *obj, Visitor *v, const char *name,
> +                     void *opaque, Error **errp)
> +{
> +    SocketChardev *s = SOCKET_CHARDEV(obj);
> +
> +    visit_type_SocketAddress(v, name, &s->addr, errp);
> +}
> +
>  static void char_socket_class_init(ObjectClass *oc, void *data)
>  {
>      ChardevClass *cc = CHARDEV_CLASS(oc);
> @@ -1021,6 +1030,10 @@ static void char_socket_class_init(ObjectClass *oc, void *data)
>      cc->chr_add_client = tcp_chr_add_client;
>      cc->chr_add_watch = tcp_chr_add_watch;
>      cc->chr_update_read_handler = tcp_chr_update_read_handler;
> +
> +    object_class_property_add(oc, "addr", "SocketAddress",
> +                              char_socket_get_addr, NULL,
> +                              NULL, NULL, &error_abort);
>  }
>
>  static const TypeInfo char_socket_type_info = {
>
diff mbox

Patch

diff --git a/chardev/char-socket.c b/chardev/char-socket.c
index 4325a05387..81021c5863 100644
--- a/chardev/char-socket.c
+++ b/chardev/char-socket.c
@@ -1006,6 +1006,15 @@  static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
     sock->addr = addr;
 }
 
+static void
+char_socket_get_addr(Object *obj, Visitor *v, const char *name,
+                     void *opaque, Error **errp)
+{
+    SocketChardev *s = SOCKET_CHARDEV(obj);
+
+    visit_type_SocketAddress(v, name, &s->addr, errp);
+}
+
 static void char_socket_class_init(ObjectClass *oc, void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
@@ -1021,6 +1030,10 @@  static void char_socket_class_init(ObjectClass *oc, void *data)
     cc->chr_add_client = tcp_chr_add_client;
     cc->chr_add_watch = tcp_chr_add_watch;
     cc->chr_update_read_handler = tcp_chr_update_read_handler;
+
+    object_class_property_add(oc, "addr", "SocketAddress",
+                              char_socket_get_addr, NULL,
+                              NULL, NULL, &error_abort);
 }
 
 static const TypeInfo char_socket_type_info = {