From owner-svn-src-all@freebsd.org Wed Jan 27 18:12:44 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 23FDBA70959; Wed, 27 Jan 2016 18:12:44 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C54E0136B; Wed, 27 Jan 2016 18:12:43 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0RICgma044186; Wed, 27 Jan 2016 18:12:42 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0RICgO5044185; Wed, 27 Jan 2016 18:12:42 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201601271812.u0RICgO5044185@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Wed, 27 Jan 2016 18:12:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r294932 - head/usr.sbin/iscsid X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2016 18:12:44 -0000 Author: trasz Date: Wed Jan 27 18:12:42 2016 New Revision: 294932 URL: https://svnweb.freebsd.org/changeset/base/294932 Log: Improve reporting of connection problems in iscsid(8). Obtained from: Mellanox Technologies MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/usr.sbin/iscsid/pdu.c Modified: head/usr.sbin/iscsid/pdu.c ============================================================================== --- head/usr.sbin/iscsid/pdu.c Wed Jan 27 17:59:39 2016 (r294931) +++ head/usr.sbin/iscsid/pdu.c Wed Jan 27 18:12:42 2016 (r294932) @@ -34,7 +34,9 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include +#include #include #include "iscsid.h" @@ -177,18 +179,23 @@ pdu_padding(const struct pdu *pdu) } static void -pdu_read(int fd, char *data, size_t len) +pdu_read(const struct connection *conn, char *data, size_t len) { ssize_t ret; while (len > 0) { - ret = read(fd, data, len); + ret = read(conn->conn_socket, data, len); if (ret < 0) { - if (timed_out()) + if (timed_out()) { + fail(conn, "Login Phase timeout"); log_errx(1, "exiting due to timeout"); + } + fail(conn, strerror(errno)); log_err(1, "read"); - } else if (ret == 0) + } else if (ret == 0) { + fail(conn, "connection lost"); log_errx(1, "read: connection lost"); + } len -= ret; data += ret; } @@ -207,7 +214,7 @@ pdu_receive(struct pdu *pdu) assert(pdu->pdu_connection->conn_conf.isc_iser == 0); - pdu_read(pdu->pdu_connection->conn_socket, + pdu_read(pdu->pdu_connection, (char *)pdu->pdu_bhs, sizeof(*pdu->pdu_bhs)); len = pdu_ahs_length(pdu); @@ -227,13 +234,13 @@ pdu_receive(struct pdu *pdu) if (pdu->pdu_data == NULL) log_err(1, "malloc"); - pdu_read(pdu->pdu_connection->conn_socket, + pdu_read(pdu->pdu_connection, (char *)pdu->pdu_data, pdu->pdu_data_len); padding = pdu_padding(pdu); if (padding != 0) { assert(padding < sizeof(dummy)); - pdu_read(pdu->pdu_connection->conn_socket, + pdu_read(pdu->pdu_connection, (char *)dummy, padding); } }