mirror of
https://github.com/ipxe/ipxe
synced 2025-12-24 15:23:42 +03:00
[iscsi] Ensure ISID is consistent within an iSCSI session
Commit 5f4ab0d ("[iscsi] Randomise a portion of the ISID to force new
session instantiation") introduced a regression by randomising the
ISID on each call to iscsi_start_login(), which may be called more
than once per connection, rather than on each call to
iscsi_open_connection(), which is guaranteed to be called only once
per connection. This is incorrect behaviour that causes our
connection to be rejected by some iSCSI targets (observed with a
COMSTAR target under OpenSolaris).
Fix by generating the ISID in iscsi_open_connection(), and storing the
randomised ISID as part of the session state.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -539,6 +539,12 @@ struct iscsi_session {
|
||||
/** CHAP response (used for both initiator and target auth) */
|
||||
struct chap_response chap;
|
||||
|
||||
/** Initiator session ID (IANA format) qualifier
|
||||
*
|
||||
* This is part of the ISID. It is generated randomly
|
||||
* whenever a new connection is opened.
|
||||
*/
|
||||
uint16_t isid_iana_qual;
|
||||
/** Initiator task tag
|
||||
*
|
||||
* This is the tag of the current command. It is incremented
|
||||
|
||||
Reference in New Issue
Block a user