diff --git a/lib/iscsi/iscsi_subsystem.c b/lib/iscsi/iscsi_subsystem.c index 1375b38eb..22e5c9216 100644 --- a/lib/iscsi/iscsi_subsystem.c +++ b/lib/iscsi/iscsi_subsystem.c @@ -773,6 +773,13 @@ spdk_iscsi_initialize_iscsi_globals(struct spdk_iscsi_opts *opts) return -EINVAL; } + if (!spdk_iscsi_check_chap_params(opts->no_discovery_auth, opts->req_discovery_auth, + opts->req_discovery_auth_mutual, + opts->discovery_auth_group)) { + SPDK_ERRLOG("CHAP params in opts are illegal combination\n"); + return -EINVAL; + } + g_spdk_iscsi.authfile = strdup(opts->authfile); if (!g_spdk_iscsi.authfile) { SPDK_ERRLOG("failed to strdup for auth file %s\n", opts->authfile); diff --git a/lib/iscsi/tgt_node.c b/lib/iscsi/tgt_node.c index 3d8f09343..cc730de2b 100644 --- a/lib/iscsi/tgt_node.c +++ b/lib/iscsi/tgt_node.c @@ -834,7 +834,7 @@ spdk_check_iscsi_name(const char *name) return 0; } -static bool +bool spdk_iscsi_check_chap_params(bool disable, bool require, bool mutual, int group) { if (group < 0) { diff --git a/lib/iscsi/tgt_node.h b/lib/iscsi/tgt_node.h index 91b42bad0..60505ca03 100644 --- a/lib/iscsi/tgt_node.h +++ b/lib/iscsi/tgt_node.h @@ -115,6 +115,8 @@ spdk_iscsi_tgt_node_construct(int target_index, bool disable_chap, bool require_chap, bool mutual_chap, int chap_group, bool header_digest, bool data_digest); +bool spdk_iscsi_check_chap_params(bool disable, bool require, bool mutual, int group); + int spdk_iscsi_tgt_node_add_pg_ig_maps(struct spdk_iscsi_tgt_node *target, int *pg_tag_list, int *ig_tag_list, uint16_t num_maps);