[stgt] [PATCH] redirect support in iser
Alexander Nezhinsky
alexandern at Voltaire.COM
Mon Jan 31 19:24:40 CET 2011
Added redirect support to iser (duplicated a clause from iscsi/iscsid.c)
Signed-off-by: Alexander Nezhinsky <alexandern at voltaire.com>
---
usr/iscsi/iser_text.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/usr/iscsi/iser_text.c b/usr/iscsi/iser_text.c
index bcd7d4f..61a8dd2 100644
--- a/usr/iscsi/iser_text.c
+++ b/usr/iscsi/iser_text.c
@@ -412,6 +412,8 @@ static void iser_login_start(struct iscsi_connection *iscsi_conn,
int req_datasize = rx_pdu->membuf.size;
char *name, *alias, *session_type, *target_name;
struct iscsi_target *target;
+ char buf[NI_MAXHOST + NI_MAXSERV + 4];
+ int reason;
iscsi_conn->cid = be16_to_cpu(req_bhs->cid);
memcpy(iscsi_conn->isid, req_bhs->isid, sizeof(req_bhs->isid));
@@ -475,6 +477,14 @@ static void iser_login_start(struct iscsi_connection *iscsi_conn,
}
iscsi_conn->tid = target->tid;
+ if (target_redirected(target, iscsi_conn, buf, &reason)) {
+ iser_text_key_add(iscsi_conn, tx_pdu, "TargetAddress", buf);
+ rsp_bhs->status_class = ISCSI_STATUS_CLS_REDIRECT;
+ rsp_bhs->status_detail = reason;
+ iscsi_conn->state = STATE_EXIT;
+ return;
+ }
+
if (tgt_get_target_state(target->tid) != SCSI_TARGET_READY) {
rsp_bhs->status_class = ISCSI_STATUS_CLS_TARGET_ERR;
rsp_bhs->status_detail = ISCSI_LOGIN_STATUS_TARGET_ERROR;
--
1.6.5.5
--
To unsubscribe from this list: send the line "unsubscribe stgt" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
More information about the stgt
mailing list