From b23547546f36d154c9e302bd68f398f5cf8ee919 Mon Sep 17 00:00:00 2001 From: Ronnie Sahlberg Date: Sun, 17 Jun 2012 12:37:13 +1000 Subject: [PATCH] LOGIN commands NEVER use header digest since even if the login is spanning multiple PDU sequences it is still treated as one logical operation. Dont update the header_digest setting until we have finished login and are transitioning to the full-feature phase. --- lib/login.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/lib/login.c b/lib/login.c index 4396666..fb3a5b9 100644 --- a/lib/login.c +++ b/lib/login.c @@ -1016,13 +1016,9 @@ iscsi_process_login_reply(struct iscsi_context *iscsi, struct iscsi_pdu *pdu, if (!strncmp(ptr, "HeaderDigest=", 13)) { if (!strcmp(ptr + 13, "CRC32C")) { - iscsi->header_digest - = ISCSI_HEADER_DIGEST_CRC32C; iscsi->want_header_digest = ISCSI_HEADER_DIGEST_CRC32C; } else { - iscsi->header_digest - = ISCSI_HEADER_DIGEST_NONE; iscsi->want_header_digest = ISCSI_HEADER_DIGEST_NONE; } @@ -1103,6 +1099,7 @@ iscsi_process_login_reply(struct iscsi_context *iscsi, struct iscsi_pdu *pdu, && (in->hdr[1] & ISCSI_PDU_LOGIN_NSG_FF) == ISCSI_PDU_LOGIN_NSG_FF) { iscsi->is_loggedin = 1; iscsi->itt++; + iscsi->header_digest = iscsi->want_header_digest; pdu->callback(iscsi, SCSI_STATUS_GOOD, NULL, pdu->private_data); } else { if (iscsi_login_async(iscsi, pdu->callback, pdu->private_data) != 0) {