From patchwork Tue May 31 09:27:19 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ashijeet Acharya X-Patchwork-Id: 9144097 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id C4A7160757 for ; Tue, 31 May 2016 09:44:31 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B615527B89 for ; Tue, 31 May 2016 09:44:31 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id AAFD328188; Tue, 31 May 2016 09:44:31 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 4C78D27B89 for ; Tue, 31 May 2016 09:44:31 +0000 (UTC) Received: from localhost ([::1]:35536 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b7gDt-0005cv-A3 for patchwork-qemu-devel@patchwork.kernel.org; Tue, 31 May 2016 05:44:29 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41040) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b7fxk-0008FE-0o for qemu-devel@nongnu.org; Tue, 31 May 2016 05:27:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1b7fxd-0007pq-RT for qemu-devel@nongnu.org; Tue, 31 May 2016 05:27:46 -0400 Received: from mail-pf0-x243.google.com ([2607:f8b0:400e:c00::243]:34907) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b7fxd-0007pl-H2 for qemu-devel@nongnu.org; Tue, 31 May 2016 05:27:41 -0400 Received: by mail-pf0-x243.google.com with SMTP id f144so18326794pfa.2 for ; Tue, 31 May 2016 02:27:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=gtcPHV9Yhu/06VhkemXYeQv2M7+ZKtv/Zk19WG6DK28=; b=Mk1Z1WiJPvQw44gllTdJv1EklbJTwU9dRbplUzdQmAV4vnui/c1i9Q7Rlt0vw85lyI AeJD/NPDeAYFOm2Ur5CCRzL8TNcARXjisKuPRZNpVJAkzrF4APaOn0UZc/0lKrZ1/cIr RkRuFlBxPEjji4+jZ2hl8Sn8X4RwWFppIk1x+qKERTx+O/Zh/2gtCK6cw4rwM58dCxQz 0Nm/c2Cr55ks2PcodCJKEJql2KZeU09SjqNeMEXtnH7r2kNBOtCiQgk2SeI7xAuhuGTb Arjcozy3I/t2aF7j7YsHy8Et9zS2Up2MD4OM/Kft+9lb0NRS4WtmssY0ioAlzi4tBo7W 7t3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=gtcPHV9Yhu/06VhkemXYeQv2M7+ZKtv/Zk19WG6DK28=; b=bDb8aey7CtuNa5cZMUqJ7uebDIZJHurPANBbu7INh576jixXWwzxouMhPSy4j9Wepe qLYQyLEwA9Za3vs2PEfdJSHOZ7L0ao8nQbDldkDklmulrvnT653s2LAW7Qz3aTBlusm8 8piiJ0rt59j3Pr0nau9nAPEIsWEOR4sfo0mko9h7epIbfqTtLfQHXUWzJA9MCdoqI0Ug FBhyn6VrJwTe90/EbmHHJxzCckBnPimDFiXg0WcMfHowQSNfTjEQ6H0g3zXqTCaPoNbw qnul/M4CyHTuogzHgVRDlxqmZAyEWVtaeH+jh6+nr6tOEpSesMiprRlpccajXFBzzoZR fctA== X-Gm-Message-State: ALyK8tLm2NkuISwZo1ZzqV2BJ+riZstIqOYFkN7fjhy34XIPnar8jz6cbzA30v65VyBEYw== X-Received: by 10.98.25.212 with SMTP id 203mr19228555pfz.94.1464686860454; Tue, 31 May 2016 02:27:40 -0700 (PDT) Received: from localhost.localdomain ([180.215.234.254]) by smtp.gmail.com with ESMTPSA id p65sm38778202pfd.6.2016.05.31.02.27.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 31 May 2016 02:27:39 -0700 (PDT) From: Ashijeet Acharya To: jasowang@redhat.com Date: Tue, 31 May 2016 14:57:19 +0530 Message-Id: <1464686839-9547-1-git-send-email-ashijeetacharya@gmail.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <20160516164123.GC15256@stefanha-x1.localdomain> References: <20160516164123.GC15256@stefanha-x1.localdomain> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2607:f8b0:400e:c00::243 Subject: [Qemu-devel] [PATCH] Modify net/socket.c to use socket_* functions from include/qemu/sockets.h X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: stefanha@gmail.com, qemu-devel@nongnu.org, Ashijeet Acharya Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Changed the listen(),connect(),parse_host_port() in net/socket.c with the socket_*()functions in include/qemu/sockets.h. Signed-off-by: Ashijeet Acharya --- net/socket.c | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) qemu_set_nonblock(fd); socket_set_fast_reuse(fd); + saddr = socket_local_address(fd, &local_error); - ret = bind(fd, (struct sockaddr *)&saddr, sizeof(saddr)); - if (ret < 0) { - perror("bind"); - closesocket(fd); - return -1; - } - ret = listen(fd, 0); + ret = socket_listen(saddr, &local_error); if (ret < 0) { perror("listen"); closesocket(fd); @@ -557,6 +554,7 @@ static int net_socket_listen_init(NetClientState *peer, s->nc.link_down = true; qemu_set_fd_handler(s->listen_fd, net_socket_accept, NULL, s); + g_free(saddr); return 0; } @@ -567,9 +565,11 @@ static int net_socket_connect_init(NetClientState *peer, { NetSocketState *s; int fd, connected, ret; - struct sockaddr_in saddr; + SocketAddress *saddr; + Error *local_error = NULL; - if (parse_host_port(&saddr, host_str) < 0) + if (socket_parse(host_str, &local_error) < 0) return -1; fd = qemu_socket(PF_INET, SOCK_STREAM, 0); @@ -578,10 +578,10 @@ static int net_socket_connect_init(NetClientState *peer, return -1; } qemu_set_nonblock(fd); - + saddr = socket_local_address(fd, &local_error); connected = 0; for(;;) { - ret = connect(fd, (struct sockaddr *)&saddr, sizeof(saddr)); + ret = socket_connect(saddr, &local_error, NULL, NULL); if (ret < 0) { if (errno == EINTR || errno == EWOULDBLOCK) { /* continue */ @@ -602,9 +602,7 @@ static int net_socket_connect_init(NetClientState *peer, s = net_socket_fd_init(peer, model, name, fd, connected); if (!s) return -1; - snprintf(s->nc.info_str, sizeof(s->nc.info_str), - "socket: connect to %s:%d", - inet_ntoa(saddr.sin_addr), ntohs(saddr.sin_port)); + g_free(saddr); return 0; } @@ -618,8 +616,9 @@ static int net_socket_mcast_init(NetClientState *peer, int fd; struct sockaddr_in saddr; struct in_addr localaddr, *param_localaddr; + Error *local_error = NULL; - if (parse_host_port(&saddr, host_str) < 0) + if (socket_parse(host_str, &local_error) < 0) return -1; if (localaddr_str != NULL) { @@ -656,12 +655,13 @@ static int net_socket_udp_init(NetClientState *peer, NetSocketState *s; int fd, ret; struct sockaddr_in laddr, raddr; + Error *local_error = NULL; - if (parse_host_port(&laddr, lhost) < 0) { + if (socket_parse(lhost, &local_error) < 0) { return -1; } - if (parse_host_port(&raddr, rhost) < 0) { + if (socket_parse(rhost, &local_error) < 0) { return -1; } diff --git a/net/socket.c b/net/socket.c index 9fa2cd8..b6e2f3e 100644 --- a/net/socket.c +++ b/net/socket.c @@ -522,10 +522,12 @@ static int net_socket_listen_init(NetClientState *peer, { NetClientState *nc; NetSocketState *s; - struct sockaddr_in saddr; + SocketAddress *saddr; int fd, ret; + Error *local_error = NULL; - if (parse_host_port(&saddr, host_str) < 0) + if (socket_parse(host_str, &local_error) < 0) return -1; fd = qemu_socket(PF_INET, SOCK_STREAM, 0); @@ -536,14 +538,9 @@ static int net_socket_listen_init(NetClientState *peer,