From nobody Thu Nov 6 08:32:58 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 149752501503392.1224114818558; Thu, 15 Jun 2017 04:10:15 -0700 (PDT) Received: from localhost ([::1]:53200 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dLSfE-0007Gu-Jp for importer@patchew.org; Thu, 15 Jun 2017 07:10:12 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40989) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dLSPF-0008SR-JF for qemu-devel@nongnu.org; Thu, 15 Jun 2017 06:53:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dLSPD-0007dJ-Nh for qemu-devel@nongnu.org; Thu, 15 Jun 2017 06:53:41 -0400 Received: from mail-wr0-x241.google.com ([2a00:1450:400c:c0c::241]:34384) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dLSPD-0007d6-Gk for qemu-devel@nongnu.org; Thu, 15 Jun 2017 06:53:39 -0400 Received: by mail-wr0-x241.google.com with SMTP id y25so547367wrd.1 for ; Thu, 15 Jun 2017 03:53:39 -0700 (PDT) Received: from 640k.lan (94-39-191-51.adsl-ull.clienti.tiscali.it. [94.39.191.51]) by smtp.gmail.com with ESMTPSA id f21sm3258597wra.5.2017.06.15.03.53.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 15 Jun 2017 03:53:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=2DIH8EmzW5j/pUozWVvCgImCDjnk4Rx82lYqSs3vlEU=; b=op8+XtYshxrBfSHcHgN09JdVbSHyk8S1pD4XE7mauE4YOyhyzZcM3NZoAFoXpQ3vZW B54zJkel3yklm+rjtm20VDfbjaMkyTdVuIpJorC3dik4+57LvDmhwgo71Oqz7jUH2Bi0 XdHniPnsGj6INYzEpVIhn+59Vt0ZfggIyGAkOnLmMd5v0yNPAE5b1zt0YWKUeM5Rsj+3 Na0AgZ+lzG+ngABXCvflWAyWgujaeqaPtRCv0JwdxsDBVVmjTUBJIapFkTlDVyMK/kSh /hA2dHwnKz2R5bPXpAnRnCyqihOHrQMx5pG2GdrhaAz+kWs29Jmhcu+0KR1e6KkQAIKv Jqnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=2DIH8EmzW5j/pUozWVvCgImCDjnk4Rx82lYqSs3vlEU=; b=OPbpg/GzCK/zEPYuk1HYxL6ZuXdpKmW2jaOjs+G1xmDQrAO6a9NXqmCjPbl1VBFeGn 3BSnQT0A9rCbQqE1d4/q6Umy/PFQqHlrwAsL0f50oC9fN8Tf6zrqwymJ71qzs/By5s8r wJnwNWMh6dQHUu9OkRkLv0K6Gp5HT2nGKytcFf9rdltNKfoauV1EQ7No2h5VLezw49D9 b/qm77KDKSTndbZbQ3KXZ3hRCprNKxPe1lJcD+xpuL1/abzgac5bMc2wiZMTd/FhcBB6 hCU7jbnfNG4t2ZhnAHOe1fdKsKrlQhNEEMRW1UAGZ+U/1Q752P/0uceCe8aBV3G3sDLy 12aw== X-Gm-Message-State: AKS2vOynjBNF24dfEFfRHl197WdyZLloG9OiwlXe2oRRRF3etzeOUA/I 8snC3fBb+e5uj4gu8FY= X-Received: by 10.223.169.83 with SMTP id u77mr3218702wrc.13.1497524018258; Thu, 15 Jun 2017 03:53:38 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Thu, 15 Jun 2017 12:52:45 +0200 Message-Id: <1497523981-38449-26-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1497523981-38449-1-git-send-email-pbonzini@redhat.com> References: <1497523981-38449-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::241 Subject: [Qemu-devel] [PULL 25/41] nbd: make nbd_drop public 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: Vladimir Sementsov-Ogievskiy Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Vladimir Sementsov-Ogievskiy Following commit will reuse it for nbd server too. Reviewed-by: Eric Blake Signed-off-by: Vladimir Sementsov-Ogievskiy Message-Id: <20170602150150.258222-3-vsementsov@virtuozzo.com> Signed-off-by: Paolo Bonzini --- nbd/client.c | 26 -------------------------- nbd/common.c | 26 ++++++++++++++++++++++++++ nbd/nbd-internal.h | 2 ++ 3 files changed, 28 insertions(+), 26 deletions(-) diff --git a/nbd/client.c b/nbd/client.c index 17ac85f..b97143f 100644 --- a/nbd/client.c +++ b/nbd/client.c @@ -86,32 +86,6 @@ static QTAILQ_HEAD(, NBDExport) exports =3D QTAILQ_HEAD_= INITIALIZER(exports); =20 */ =20 -/* Discard length bytes from channel. Return -errno on failure and 0 on - * success*/ -static int nbd_drop(QIOChannel *ioc, size_t size, Error **errp) -{ - ssize_t ret =3D 0; - char small[1024]; - char *buffer; - - buffer =3D sizeof(small) >=3D size ? small : g_malloc(MIN(65536, size)= ); - while (size > 0) { - ssize_t count =3D MIN(65536, size); - ret =3D nbd_read(ioc, buffer, MIN(65536, size), errp); - - if (ret < 0) { - goto cleanup; - } - size -=3D count; - } - - cleanup: - if (buffer !=3D small) { - g_free(buffer); - } - return ret; -} - /* Send an option request. * * The request is for option @opt, with @data containing @len bytes of diff --git a/nbd/common.c b/nbd/common.c index d6b719d..6b5c1b7 100644 --- a/nbd/common.c +++ b/nbd/common.c @@ -65,6 +65,32 @@ ssize_t nbd_rwv(QIOChannel *ioc, struct iovec *iov, size= _t niov, size_t length, return done; } =20 +/* Discard length bytes from channel. Return -errno on failure and 0 on + * success */ +int nbd_drop(QIOChannel *ioc, size_t size, Error **errp) +{ + ssize_t ret =3D 0; + char small[1024]; + char *buffer; + + buffer =3D sizeof(small) >=3D size ? small : g_malloc(MIN(65536, size)= ); + while (size > 0) { + ssize_t count =3D MIN(65536, size); + ret =3D nbd_read(ioc, buffer, MIN(65536, size), errp); + + if (ret < 0) { + goto cleanup; + } + size -=3D count; + } + + cleanup: + if (buffer !=3D small) { + g_free(buffer); + } + return ret; +} + =20 void nbd_tls_handshake(QIOTask *task, void *opaque) diff --git a/nbd/nbd-internal.h b/nbd/nbd-internal.h index 753cb9d..39bfed1 100644 --- a/nbd/nbd-internal.h +++ b/nbd/nbd-internal.h @@ -153,4 +153,6 @@ struct NBDTLSHandshakeData { void nbd_tls_handshake(QIOTask *task, void *opaque); =20 +int nbd_drop(QIOChannel *ioc, size_t size, Error **errp); + #endif --=20 1.8.3.1