From patchwork Mon Sep 7 16:06:07 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gerd Hoffmann X-Patchwork-Id: 33089 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by bilbo.ozlabs.org (Postfix) with ESMTPS id 98AC9B70C4 for ; Tue, 8 Sep 2009 02:17:59 +1000 (EST) Received: from localhost ([127.0.0.1]:51488 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Mkgug-0005EK-Ny for incoming@patchwork.ozlabs.org; Mon, 07 Sep 2009 12:17:54 -0400 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Mkgjn-0007PT-HV for qemu-devel@nongnu.org; Mon, 07 Sep 2009 12:06:39 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Mkgjh-0007LR-3D for qemu-devel@nongnu.org; Mon, 07 Sep 2009 12:06:37 -0400 Received: from [199.232.76.173] (port=34942 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Mkgjg-0007L1-Re for qemu-devel@nongnu.org; Mon, 07 Sep 2009 12:06:32 -0400 Received: from mx1.redhat.com ([209.132.183.28]:62877) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Mkgjg-0003Tu-3O for qemu-devel@nongnu.org; Mon, 07 Sep 2009 12:06:32 -0400 Received: from int-mx03.intmail.prod.int.phx2.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.16]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id n87G6VAg016580 for ; Mon, 7 Sep 2009 12:06:31 -0400 Received: from zweiblum.home.kraxel.org (vpn2-9-74.ams2.redhat.com [10.36.9.74]) by int-mx03.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with SMTP id n87G6SiU010153; Mon, 7 Sep 2009 12:06:28 -0400 Received: by zweiblum.home.kraxel.org (Postfix, from userid 500) id 36117700E2; Mon, 7 Sep 2009 18:06:26 +0200 (CEST) From: Gerd Hoffmann To: qemu-devel@nongnu.org Date: Mon, 7 Sep 2009 18:06:07 +0200 Message-Id: <1252339585-27797-6-git-send-email-kraxel@redhat.com> In-Reply-To: <1252339585-27797-1-git-send-email-kraxel@redhat.com> References: <1252339585-27797-1-git-send-email-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.67 on 10.5.11.16 X-detected-operating-system: by monty-python.gnu.org: Genre and OS details not recognized. Cc: Gerd Hoffmann Subject: [Qemu-devel] [PATCH 05/23] sockets: add unix_connect_opts X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org 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 --- qemu-sockets.c | 34 +++++++++++++++++++++++++++++++++- qemu_socket.h | 3 +++ 2 files changed, 36 insertions(+), 1 deletions(-) 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) diff --git a/qemu_socket.h b/qemu_socket.h index fc5b588..7ca4af7 100644 --- a/qemu_socket.h +++ b/qemu_socket.h @@ -29,6 +29,8 @@ int inet_aton(const char *cp, struct in_addr *ia); #endif /* !_WIN32 */ +#include "qemu-option.h" + /* misc helpers */ void socket_set_nonblock(int fd); int send_all(int fd, const void *buf, int len1); @@ -39,6 +41,7 @@ int inet_listen(const char *str, char *ostr, int olen, int inet_connect(const char *str, int socktype); int unix_listen(const char *path, char *ostr, int olen); +int unix_connect_opts(QemuOpts *opts); int unix_connect(const char *path); /* Old, ipv4 only bits. Don't use for new code. */