scsi: target: iscsi: Allow AuthMethod=None
Allow negotiating AuthMethod=None at CSG=0 (Security Negotiation) when authentication is not required. That is required by the CHAP test in Windows HLK. Link: https://lore.kernel.org/r/20220718152555.17084-4-d.bogdanov@yadro.com Reviewed-by: Mike Christie <michael.christie@oracle.com> Signed-off-by: Dmitry Bogdanov <d.bogdanov@yadro.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
1e57338834
commit
e52b904b49
@ -341,6 +341,7 @@ static int iscsi_login_zero_tsih_s2(
|
||||
{
|
||||
struct iscsi_node_attrib *na;
|
||||
struct iscsit_session *sess = conn->sess;
|
||||
struct iscsi_param *param;
|
||||
bool iser = false;
|
||||
|
||||
sess->tpg = conn->tpg;
|
||||
@ -374,6 +375,18 @@ static int iscsi_login_zero_tsih_s2(
|
||||
|
||||
na = iscsit_tpg_get_node_attrib(sess);
|
||||
|
||||
/*
|
||||
* If ACL allows non-authorized access in TPG with CHAP,
|
||||
* then set None to AuthMethod.
|
||||
*/
|
||||
param = iscsi_find_param_from_key(AUTHMETHOD, conn->param_list);
|
||||
if (param && !strstr(param->value, NONE)) {
|
||||
if (!iscsi_conn_auth_required(conn))
|
||||
if (iscsi_change_param_sprintf(conn, "AuthMethod=%s",
|
||||
NONE))
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Need to send TargetPortalGroupTag back in first login response
|
||||
* on any iSCSI connection where the Initiator provides TargetName.
|
||||
|
@ -814,7 +814,7 @@ static int iscsi_target_do_authentication(
|
||||
return 0;
|
||||
}
|
||||
|
||||
static bool iscsi_conn_auth_required(struct iscsit_conn *conn)
|
||||
bool iscsi_conn_auth_required(struct iscsit_conn *conn)
|
||||
{
|
||||
struct iscsi_node_acl *nacl;
|
||||
struct se_node_acl *se_nacl;
|
||||
|
@ -22,5 +22,5 @@ extern int iscsi_target_locate_portal(struct iscsi_np *, struct iscsit_conn *,
|
||||
extern int iscsi_target_start_negotiation(
|
||||
struct iscsi_login *, struct iscsit_conn *);
|
||||
extern void iscsi_target_nego_release(struct iscsit_conn *);
|
||||
|
||||
extern bool iscsi_conn_auth_required(struct iscsit_conn *conn);
|
||||
#endif /* ISCSI_TARGET_NEGO_H */
|
||||
|
Loading…
Reference in New Issue
Block a user