summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLee Duncan <leeman.duncan@gmail.com>2020-09-10 13:15:01 -0700
committerGitHub <noreply@github.com>2020-09-10 13:15:01 -0700
commite89ffb2a81a000471fe6b558d93a4437656b30f9 (patch)
tree94afafb7bb8e2367c04edda195fcf0dcc1ee0dcb
parentf6f2316f15d2c21a8fb777d86aacca10bc703b40 (diff)
parent9ac758cc472d991d7eaa9a1da17279cbbdbc7ebf (diff)
downloadopen-iscsi-e89ffb2a81a000471fe6b558d93a4437656b30f9.tar.gz
Merge pull request #221 from gulams/master
Check Invalid Session id for stop connection
-rw-r--r--usr/initiator.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/usr/initiator.c b/usr/initiator.c
index 5f4bdca..684647c 100644
--- a/usr/initiator.c
+++ b/usr/initiator.c
@@ -692,6 +692,7 @@ static void iscsi_login_eh(struct iscsi_conn *conn, struct queue_task *qtask,
int err)
{
struct iscsi_session *session = conn->session;
+ int stop_flag = 0;
log_debug(3, "iscsi_login_eh");
/*
@@ -711,7 +712,11 @@ static void iscsi_login_eh(struct iscsi_conn *conn, struct queue_task *qtask,
!iscsi_retry_initial_login(conn))
session_conn_shutdown(conn, qtask, err);
else {
- session_conn_reopen(conn, qtask, STOP_CONN_TERM);
+ stop_flag = (session->id < INVALID_SESSION_ID) ? STOP_CONN_TERM : 0;
+ log_debug(6, "connection %p socket_fd: %d, "
+ "session id: %d stop_flag: %d\n",
+ conn, conn->socket_fd, session->id, stop_flag);
+ session_conn_reopen(conn, qtask, stop_flag);
}
break;
case R_STAGE_SESSION_REDIRECT: