From nobody Tue Feb 10 04:16:09 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1557407202; cv=none; d=zoho.com; s=zohoarc; b=OP+3FFfQFVwKPkptkdsdsnQRDFyNoeJo4Yygvjimz7EXRRkj2whaS4dz3f2f75PqOs41mjoUFvipefD0W2iuiD8KawxRrZeqk2XMPcWTa1ttmdhJ28TILYLNH4FRdHx6jnvSiSjj+LtPfvSLnqobuLyrD1M6atJNMMTaFz/FTq8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1557407202; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=TdYg52C0ZG87jKLnSHdEU0pkRVdedUmrL3uonaEAAPo=; b=hRRWhM+LT3oLo6UUlQK5ibxRqT9uh2Bw8000trl0lf11RozuSPetDnKhpPIl7ulpIfmA6FqAj9aGFAWCxfa/dCPepcuK0bwGStUkOV5Low2O4cw8FV9xHmf3UNad183cbCafkFXDY5Cq5q9d9jFomXDzsntGsMbS53OdvaxyoaU= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1557407202583958.1088825674453; Thu, 9 May 2019 06:06:42 -0700 (PDT) Received: from localhost ([127.0.0.1]:54296 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hOikt-0001AW-Ey for importer@patchew.org; Thu, 09 May 2019 09:06:35 -0400 Received: from eggs.gnu.org ([209.51.188.92]:43741) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hOiin-0007pY-Ns for qemu-devel@nongnu.org; Thu, 09 May 2019 09:04:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hOiim-0007lb-Ou for qemu-devel@nongnu.org; Thu, 09 May 2019 09:04:25 -0400 Received: from mx1.redhat.com ([209.132.183.28]:41264) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hOiik-0007TT-ND for qemu-devel@nongnu.org; Thu, 09 May 2019 09:04:23 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A9D9D307DAAA for ; Thu, 9 May 2019 13:03:56 +0000 (UTC) Received: from steredhat.redhat.com (ovpn-116-227.ams2.redhat.com [10.36.116.227]) by smtp.corp.redhat.com (Postfix) with ESMTP id 06EEF60F8A; Thu, 9 May 2019 13:03:54 +0000 (UTC) From: Stefano Garzarella To: qemu-devel@nongnu.org Date: Thu, 9 May 2019 15:03:44 +0200 Message-Id: <20190509130345.227526-4-sgarzare@redhat.com> In-Reply-To: <20190509130345.227526-1-sgarzare@redhat.com> References: <20190509130345.227526-1-sgarzare@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.42]); Thu, 09 May 2019 13:03:56 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v2 3/4] net: use g_strsplit() for parsing host address and port 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: Jason Wang , Markus Armbruster Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Use the glib function to split host address and port in the parse_host_port() function. Suggested-by: Markus Armbruster Signed-off-by: Stefano Garzarella Reviewed-by: Markus Armbruster --- net/net.c | 43 +++++++++++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/net/net.c b/net/net.c index 932fa5abb5..570e093c4f 100644 --- a/net/net.c +++ b/net/net.c @@ -86,32 +86,39 @@ static int get_str_sep(char *buf, int buf_size, const c= har **pp, int sep) int parse_host_port(struct sockaddr_in *saddr, const char *str, Error **errp) { - char buf[512]; + gchar **substrings; struct hostent *he; - const char *p, *r; - int port; + const char *addr, *p, *r; + int port, ret =3D 0; =20 - p =3D str; - if (get_str_sep(buf, sizeof(buf), &p, ':') < 0) { + substrings =3D g_strsplit(str, ":", 2); + if (!substrings || !substrings[0] || !substrings[1]) { error_setg(errp, "host address '%s' doesn't contain ':' " "separating host from port", str); - return -1; + ret =3D -1; + goto out; } + + addr =3D substrings[0]; + p =3D substrings[1]; + saddr->sin_family =3D AF_INET; - if (buf[0] =3D=3D '\0') { + if (addr[0] =3D=3D '\0') { saddr->sin_addr.s_addr =3D 0; } else { - if (qemu_isdigit(buf[0])) { - if (!inet_aton(buf, &saddr->sin_addr)) { + if (qemu_isdigit(addr[0])) { + if (!inet_aton(addr, &saddr->sin_addr)) { error_setg(errp, "host address '%s' is not a valid " - "IPv4 address", buf); - return -1; + "IPv4 address", addr); + ret =3D -1; + goto out; } } else { - he =3D gethostbyname(buf); + he =3D gethostbyname(addr); if (he =3D=3D NULL) { - error_setg(errp, "can't resolve host address '%s'", buf); - return - 1; + error_setg(errp, "can't resolve host address '%s'", addr); + ret =3D -1; + goto out; } saddr->sin_addr =3D *(struct in_addr *)he->h_addr; } @@ -119,10 +126,14 @@ int parse_host_port(struct sockaddr_in *saddr, const = char *str, port =3D strtol(p, (char **)&r, 0); if (r =3D=3D p) { error_setg(errp, "port number '%s' is invalid", p); - return -1; + ret =3D -1; + goto out; } saddr->sin_port =3D htons(port); - return 0; + +out: + g_strfreev(substrings); + return ret; } =20 char *qemu_mac_strdup_printf(const uint8_t *macaddr) --=20 2.20.1