summaryrefslogtreecommitdiff
path: root/usr.sbin/iscsid/discovery.c
diff options
context:
space:
mode:
authorEdward Tomasz Napierala <trasz@FreeBSD.org>2016-05-19 14:59:21 +0000
committerEdward Tomasz Napierala <trasz@FreeBSD.org>2016-05-19 14:59:21 +0000
commitb7af91d012afab2493aea0dd593d5c1e65d2e89a (patch)
treef94445c36a4b3027d1784d9d7854ee8b1ee71e3a /usr.sbin/iscsid/discovery.c
parentd66a906bc20f1976f098872711b161562275b30b (diff)
downloadsrc-test2-b7af91d012afab2493aea0dd593d5c1e65d2e89a.tar.gz
src-test2-b7af91d012afab2493aea0dd593d5c1e65d2e89a.zip
Notes
Diffstat (limited to 'usr.sbin/iscsid/discovery.c')
-rw-r--r--usr.sbin/iscsid/discovery.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/usr.sbin/iscsid/discovery.c b/usr.sbin/iscsid/discovery.c
index f5a0f668134a..d31a15b62913 100644
--- a/usr.sbin/iscsid/discovery.c
+++ b/usr.sbin/iscsid/discovery.c
@@ -206,6 +206,18 @@ discovery(struct connection *conn)
log_debugx("removing temporary discovery session");
kernel_remove(conn);
+#ifdef ICL_KERNEL_PROXY
+ if (conn->conn_conf.isc_iser == 1) {
+ /*
+ * If we're going through the proxy, the kernel already
+ * sent Logout PDU for us and destroyed the session,
+ * so we can't send anything anymore.
+ */
+ log_debugx("discovery session done");
+ return;
+ }
+#endif
+
log_debugx("discovery done; logging out");
request = logout_new_request(conn);
pdu_send(request);