From 2af2bf6760d9b2190b5a76487577075578c475d6 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Thu, 10 Sep 2009 10:58:37 +0200 Subject: sockets: add unix_connect_opts Add unix_connect_opts(). Does the same as unix_connect(), but uses QemuOpts. unix_connect() is a compatibility wrapper for unix_connect_opts() now and should go away some day. Signed-off-by: Gerd Hoffmann Signed-off-by: Anthony Liguori --- qemu-sockets.c | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) (limited to 'qemu-sockets.c') diff --git a/qemu-sockets.c b/qemu-sockets.c index bd49d29..732d3e0 100644 --- a/qemu-sockets.c +++ b/qemu-sockets.c @@ -29,6 +29,19 @@ static int sockets_debug = 0; static const int on=1, off=0; +/* used temporarely until all users are converted to QemuOpts */ +QemuOptsList dummy_opts = { + .name = "dummy", + .head = TAILQ_HEAD_INITIALIZER(dummy_opts.head), + .desc = { + { + .name = "path", + .type = QEMU_OPT_STRING, + }, + { /* end if list */ } + }, +}; + static int inet_getport(struct addrinfo *e) { struct sockaddr_in *i4; @@ -376,11 +389,17 @@ err: return -1; } -int unix_connect(const char *path) +int unix_connect_opts(QemuOpts *opts) { struct sockaddr_un un; + const char *path = qemu_opt_get(opts, "path"); int sock; + if (NULL == path) { + fprintf(stderr, "unix connect: no path specified\n"); + return -1; + } + sock = socket(PF_UNIX, SOCK_STREAM, 0); if (sock < 0) { perror("socket(unix)"); @@ -400,6 +419,19 @@ int unix_connect(const char *path) return sock; } +/* compatibility wrapper */ +int unix_connect(const char *path) +{ + QemuOpts *opts; + int sock; + + opts = qemu_opts_create(&dummy_opts, NULL, 0); + qemu_opt_set(opts, "path", path); + sock = unix_connect_opts(opts); + qemu_opts_del(opts); + return sock; +} + #else int unix_listen(const char *path, char *ostr, int olen) -- cgit v1.1