//\r
// DataPDUInOrder, result function is OR.\r
//\r
- Value = IScsiGetValueByKeyFromList (KeyValueList, ISCSI_KEY_DATA_PDU_IN_ORDER);\r
- if (Value == NULL) {\r
- goto ON_ERROR;\r
- }\r
+ if (!Session->DataPDUInOrder) {\r
+ Value = IScsiGetValueByKeyFromList (KeyValueList, ISCSI_KEY_DATA_PDU_IN_ORDER);\r
+ if (Value == NULL) {\r
+ goto ON_ERROR;\r
+ }\r
\r
- Session->DataPDUInOrder = (BOOLEAN) (Session->DataPDUInOrder || (AsciiStrCmp (Value, "Yes") == 0));\r
+ Session->DataPDUInOrder = (BOOLEAN) (AsciiStrCmp (Value, "Yes") == 0);\r
+ }\r
\r
//\r
// DataSequenceInorder, result function is OR.\r
//\r
- Value = IScsiGetValueByKeyFromList (KeyValueList, ISCSI_KEY_DATA_SEQUENCE_IN_ORDER);\r
- if (Value == NULL) {\r
- goto ON_ERROR;\r
- }\r
+ if (!Session->DataSequenceInOrder) {\r
+ Value = IScsiGetValueByKeyFromList (KeyValueList, ISCSI_KEY_DATA_SEQUENCE_IN_ORDER);\r
+ if (Value == NULL) {\r
+ goto ON_ERROR;\r
+ }\r
\r
- Session->DataSequenceInOrder = (BOOLEAN) (Session->DataSequenceInOrder || (AsciiStrCmp (Value, "Yes") == 0));\r
+ Session->DataSequenceInOrder = (BOOLEAN) (AsciiStrCmp (Value, "Yes") == 0);\r
+ }\r
\r
//\r
// DefaultTime2Wait, result function is Maximum.\r
IScsiGetValueByKeyFromList (KeyValueList, ISCSI_KEY_SESSION_TYPE);\r
IScsiGetValueByKeyFromList (KeyValueList, ISCSI_KEY_TARGET_ALIAS);\r
IScsiGetValueByKeyFromList (KeyValueList, ISCSI_KEY_TARGET_PORTAL_GROUP_TAG);\r
+ //\r
+ // Remove the key-value that may not needed for result function is OR.\r
+ //\r
+ IScsiGetValueByKeyFromList (KeyValueList, ISCSI_KEY_DATA_PDU_IN_ORDER);\r
+ IScsiGetValueByKeyFromList (KeyValueList, ISCSI_KEY_DATA_SEQUENCE_IN_ORDER);\r
\r
if (IsListEmpty (KeyValueList)) {\r
//\r