From 325d714e40b273b99a63f58a4c6c83b7f1143ee5 Mon Sep 17 00:00:00 2001 From: Ravishankar N Date: Sun, 11 Feb 2018 06:54:35 +0530 Subject: posix/afr: handle backward compatibility for rchecksum fop Added a volume option 'fips-mode-rchecksum' tied to op version 4. If not set, rchecksum fop will use MD5 instead of SHA256. updates: #230 Change-Id: Id8ea1303777e6450852c0bc25503cda341a6aec2 Signed-off-by: Ravishankar N (cherry picked from commit 6daa6535692b2c68b493636a9bbfdcbc475b3d80) --- xlators/cluster/afr/src/afr-self-heal-common.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'xlators/cluster/afr/src/afr-self-heal-common.c') diff --git a/xlators/cluster/afr/src/afr-self-heal-common.c b/xlators/cluster/afr/src/afr-self-heal-common.c index 7e2a6027126..7195dfe058c 100644 --- a/xlators/cluster/afr/src/afr-self-heal-common.c +++ b/xlators/cluster/afr/src/afr-self-heal-common.c @@ -648,7 +648,13 @@ afr_reply_copy (struct afr_reply *dst, struct afr_reply *src) if (dst->xdata) dict_unref (dst->xdata); dst->xdata = xdata; - memcpy (dst->checksum, src->checksum, SHA256_DIGEST_LENGTH); + if (xdata && dict_get_str_boolean (xdata, "fips-mode-rchecksum", + _gf_false) == _gf_true) { + memcpy (dst->checksum, src->checksum, SHA256_DIGEST_LENGTH); + } else { + memcpy (dst->checksum, src->checksum, MD5_DIGEST_LENGTH); + } + dst->fips_mode_rchecksum = src->fips_mode_rchecksum; } void -- cgit