diff --git a/include/iscsi-private.h b/include/iscsi-private.h index a96caae..8ace255 100644 --- a/include/iscsi-private.h +++ b/include/iscsi-private.h @@ -43,8 +43,8 @@ extern "C" { #define ISCSI_RAW_HEADER_SIZE 48 #define ISCSI_DIGEST_SIZE 4 -#define ISCSI_HEADER_SIZE (ISCSI_RAW_HEADER_SIZE \ - + (iscsi->header_digest == ISCSI_HEADER_DIGEST_NONE?0:ISCSI_DIGEST_SIZE)) +#define ISCSI_HEADER_SIZE(hdr_digest) (ISCSI_RAW_HEADER_SIZE \ + + (hdr_digest == ISCSI_HEADER_DIGEST_NONE?0:ISCSI_DIGEST_SIZE)) #define SMALL_ALLOC_MAX_FREE (128) /* must be power of 2 */ diff --git a/lib/pdu.c b/lib/pdu.c index 441efa7..043aa75 100644 --- a/lib/pdu.c +++ b/lib/pdu.c @@ -111,7 +111,7 @@ iscsi_allocate_pdu(struct iscsi_context *iscsi, enum iscsi_opcode opcode, return NULL; } - pdu->outdata.size = ISCSI_HEADER_SIZE; + pdu->outdata.size = ISCSI_HEADER_SIZE(iscsi->header_digest); pdu->outdata.data = iscsi_szmalloc(iscsi, pdu->outdata.size); if (pdu->outdata.data == NULL) { @@ -236,7 +236,7 @@ iscsi_pdu_add_data(struct iscsi_context *iscsi, struct iscsi_pdu *pdu, /* update data segment length */ scsi_set_uint32(&pdu->outdata.data[4], pdu->outdata.size - - ISCSI_HEADER_SIZE); + - ISCSI_HEADER_SIZE(iscsi->header_digest)); return 0; } diff --git a/lib/socket.c b/lib/socket.c index dd6dbb6..42db72b 100644 --- a/lib/socket.c +++ b/lib/socket.c @@ -599,7 +599,7 @@ iscsi_read_from_socket(struct iscsi_context *iscsi) ssize_t hdr_size, data_size, count, padding_size; do { - hdr_size = ISCSI_HEADER_SIZE; + hdr_size = ISCSI_HEADER_SIZE(iscsi->header_digest); if (iscsi->incoming == NULL) { iscsi->incoming = iscsi_szmalloc(iscsi, sizeof(struct iscsi_in_pdu)); if (iscsi->incoming == NULL) {