changeset 10624:5ccd6d7aa2d9

6878085 COMSTAR iscsit does not send failure response when CHAP authentication failed
author Charles Ting <Charles.Ting@Sun.COM>
date Wed, 23 Sep 2009 12:21:55 -0400
parents a08d4ae62796
children 76705885a9bb
files usr/src/uts/common/io/comstar/port/iscsit/iscsit_login.c usr/src/uts/common/io/idm/idm_conn_sm.c
diffstat 2 files changed, 13 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/uts/common/io/comstar/port/iscsit/iscsit_login.c	Wed Sep 23 08:43:18 2009 -0700
+++ b/usr/src/uts/common/io/comstar/port/iscsit/iscsit_login.c	Wed Sep 23 12:21:55 2009 -0400
@@ -1055,6 +1055,14 @@
 		nvlist_free(lsm->icl_response_nvlist);
 		lsm->icl_response_nvlist = NULL;
 	}
+	/* Make sure we already set the login error */
+	if (ict->ict_login_sm.icl_login_resp_err_class ==
+	    ISCSI_STATUS_CLASS_SUCCESS) {
+		SET_LOGIN_ERROR(ict,
+		    ISCSI_STATUS_CLASS_TARGET_ERR,
+		    ISCSI_LOGIN_STATUS_TARGET_ERROR);
+	}
+	iscsit_login_sm_event(ict, ILE_LOGIN_RESP_READY, NULL);
 }
 
 
--- a/usr/src/uts/common/io/idm/idm_conn_sm.c	Wed Sep 23 08:43:18 2009 -0700
+++ b/usr/src/uts/common/io/idm/idm_conn_sm.c	Wed Sep 23 12:21:55 2009 -0400
@@ -566,6 +566,11 @@
 		idm_update_state(ic, CS_S9_INIT_ERROR, event_ctx);
 		break;
 	case CE_LOGIN_FAIL_SND_DONE:
+		pdu = (idm_pdu_t *)event_ctx->iec_info;
+		/* restore client callback */
+		pdu->isp_callback =  ic->ic_client_callback;
+		ic->ic_client_callback = NULL;
+		idm_pdu_complete(pdu, pdu->isp_status);
 		(void) idm_notify_client(ic, CN_LOGIN_FAIL, NULL);
 		idm_update_state(ic, CS_S9_INIT_ERROR, event_ctx);
 		break;