From nobody Sun Jan 30 17:56:11 2022 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id C3B60198EEB9; Sun, 30 Jan 2022 17:56:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4JmzQN02LBz3v5C; Sun, 30 Jan 2022 17:56:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1643565372; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=P3lIKA9Yw/fe/JTnhWNKGmL3rcm4FSGs12xvi5h7kBc=; b=RCJQz1CXAlrpm2RvBp1LuHSYtB0+r8ideWx12BQso0PXvfY2EVvJBtU2dywN5NcitstLv4 5fKMQHp4GYA392XHJe+H26+CCHsPUdiPVbyNa2mfC4BCtWe6RI85fRgaXRA/z1QI+++UyP mn1jtrrhx+W+8YMhbPPbNlGgAo41hP/SSavphJosxk/i86gbk7jCMC3Y1IGaqzr2srGIX1 IoNlubVmabsj4C5HCfJA3nQt1Ns2f0iXTlogEWXsNFO4af8ZLFNTLfVdflyR3H7j5Kss/M 1hMIeRtDgj9AAo3zuAPnpFY4nEA92V7Z7lAUJMYSwU6HBa7PmKk6VfzpnEz5NA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6D9165780; Sun, 30 Jan 2022 17:56:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 20UHuB6F002089; Sun, 30 Jan 2022 17:56:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 20UHuBXD002088; Sun, 30 Jan 2022 17:56:11 GMT (envelope-from git) Date: Sun, 30 Jan 2022 17:56:11 GMT Message-Id: <202201301756.20UHuBXD002088@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 27941a274ebf - stable/12 - dma: update to 2022-01-27 snapshot List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/12 X-Git-Reftype: branch X-Git-Commit: 27941a274ebff0dbe94964e584101fece7967d96 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1643565372; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=P3lIKA9Yw/fe/JTnhWNKGmL3rcm4FSGs12xvi5h7kBc=; b=XAJWT7HWttRFbgtdHmZwm++Fp5c+v5b3tf5iFpmcsecmhdZGG3LcRnLnzfmqJ21djw118m gtkpAl+KRNUC2jS+oigkgVQpmcxamfcR/rA+DABT6aZxGkzb29jaJE/VztcwbFay1PaCO9 bvFBHY4QHctAXvmIzwj0kyMBttQuiltemH44WNlkUdK8TlAfZm2DPUFLfI463Q8S8QgMPM DTtxIBkAK9L7nH+oIsNSHtqzxiRfL6sXsOm2Cb5Q0AYV0T5URolAj0QS34IsBXkZvr6e+a ez4Bv7ByzlwdA8tzi7HTYZcT9J3t/yxpTJO2zopJAtVUbhCh19WGX0j3uWoIhg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1643565372; a=rsa-sha256; cv=none; b=MGzUdxVIzP7LWFEKuKjngNiho45oubz51Ug91SwqRDxMtDgRlU5ZixpyzaYH2oYm1PDVaW F1qIsWuaDlcRpSzgiktyluggvc7uiM8ASVMwYj/wYznRFaD13uaf0Vwxt7mrztJjTG6jB5 Er8A4a/n3LJq2V+wV0Yti6JgPcTu5U6HFu4CF9H/4M8MVpSqi7AgZqVINrDhCXxeZZqkqC oqbqZZJnLjT0DIxzl18zUOatMMdo0M03d/lt5ac0MH3TD6BFBgp8LKI7Ati8xvW+cfcNv7 0zwOtd/VFgRsQ9B5eNTl6riIJzTYBvAXL2d1X4WrvttsNQryY78wAVEvVlGqRw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch stable/12 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=27941a274ebff0dbe94964e584101fece7967d96 commit 27941a274ebff0dbe94964e584101fece7967d96 Author: Ed Maste AuthorDate: 2022-01-27 19:30:58 +0000 Commit: Ed Maste CommitDate: 2022-01-30 17:55:47 +0000 dma: update to 2022-01-27 snapshot (cherry picked from commit d045091ea25c916412474b4f7a9423c5d35b231f) --- contrib/dma/net.c | 51 ++++++++++++++++++++++++++++++++------------------- 1 file changed, 32 insertions(+), 19 deletions(-) diff --git a/contrib/dma/net.c b/contrib/dma/net.c index e8e2634a9386..0079875a22e0 100644 --- a/contrib/dma/net.c +++ b/contrib/dma/net.c @@ -95,25 +95,29 @@ send_remote_command(int fd, const char* fmt, ...) strcat(cmd, "\r\n"); len = strlen(cmd); - if (((config.features & SECURETRANSFER) != 0) && - ((config.features & NOSSL) == 0)) { - while ((s = SSL_write(config.ssl, (const char*)cmd, len)) <= 0) { - s = SSL_get_error(config.ssl, s); - if (s != SSL_ERROR_WANT_READ && - s != SSL_ERROR_WANT_WRITE) { - strlcpy(neterr, ssl_errstr(), sizeof(neterr)); - return (-1); + pos = 0; + while (pos < len) { + if (((config.features & SECURETRANSFER) != 0) && + ((config.features & NOSSL) == 0)) { + if ((n = SSL_write(config.ssl, (const char*)(cmd + pos), len - pos)) <= 0) { + s = SSL_get_error(config.ssl, n); + if (s == SSL_ERROR_ZERO_RETURN || + s == SSL_ERROR_SYSCALL || + s == SSL_ERROR_SSL) { + strlcpy(neterr, ssl_errstr(), sizeof(neterr)); + return (-1); + } + n = 0; } - } - } - else { - pos = 0; - while (pos < len) { + } else { n = write(fd, cmd + pos, len - pos); - if (n < 0) - return (-1); - pos += n; + if (n < 0) { + if ((errno != EAGAIN) && (errno != EINTR)) + return (-1); + n = 0; + } } + pos += n; } return (len); @@ -150,9 +154,18 @@ read_remote(int fd, int extbufsize, char *extbuf) pos = 0; if (((config.features & SECURETRANSFER) != 0) && (config.features & NOSSL) == 0) { - if ((rlen = SSL_read(config.ssl, buff + len, sizeof(buff) - len)) == -1) { - strlcpy(neterr, ssl_errstr(), sizeof(neterr)); - goto error; + if ((rlen = SSL_read(config.ssl, buff + len, sizeof(buff) - len)) <= 0) { + switch (SSL_get_error(config.ssl, rlen)) { + case SSL_ERROR_ZERO_RETURN: + case SSL_ERROR_SYSCALL: + case SSL_ERROR_SSL: + strlcpy(neterr, ssl_errstr(), sizeof(neterr)); + goto error; + default: + /* in case of recoverable error, retry after short sleep */ + usleep(10000); + continue; + } } } else { if ((rlen = read(fd, buff + len, sizeof(buff) - len)) == -1) {