diff --git a/iscsi-scst/usr/iscsid.c b/iscsi-scst/usr/iscsid.c index 8f47b1bee..b3650022d 100644 --- a/iscsi-scst/usr/iscsid.c +++ b/iscsi-scst/usr/iscsid.c @@ -558,6 +558,18 @@ static void login_start(struct connection *conn) return; } + conn->tid = target->tid; + + if (!config_initiator_access_allowed(conn->tid, conn->fd) || + !target_portal_allowed(target, conn->target_portal, + conn->initiator) || + !isns_scn_access_allowed(conn->tid, name)) { + log_info("Initiator %s not allowed to connect to " + "target %s", name, target_name); + login_rsp_ini_err(conn, ISCSI_STATUS_TGT_NOT_FOUND); + return; + } + if (target_redirected(target, conn)) { struct iscsi_login_rsp_hdr *rsp = (struct iscsi_login_rsp_hdr *)&conn->rsp.bhs; @@ -572,18 +584,6 @@ static void login_start(struct connection *conn) return; } - conn->tid = target->tid; - - if (!config_initiator_access_allowed(conn->tid, conn->fd) || - !target_portal_allowed(target, conn->target_portal, - conn->initiator) || - !isns_scn_access_allowed(conn->tid, name)) { - log_info("Initiator %s not allowed to connect to " - "target %s", name, target_name); - login_rsp_ini_err(conn, ISCSI_STATUS_TGT_NOT_FOUND); - return; - } - err = init_conn_session_params(conn); if (err != 0) { log_error("Can't get session params for session 0x%" PRIx64