From 334671664208ff2890d3170affe8386fd760a618 Mon Sep 17 00:00:00 2001
From: pjwilliams <pjwilliams@4ea69e1a-61f1-4043-bf83-b5c94c648137>
Date: Wed, 11 Dec 2002 23:15:43 +0000
Subject: [PATCH] The smartctl option --badsum=ignore should now work

git-svn-id: https://smartmontools.svn.sourceforge.net/svnroot/smartmontools/trunk@371 4ea69e1a-61f1-4043-bf83-b5c94c648137
---
 sm5/ataprint.c   | 13 ++++++++++---
 sm5/ataprint.cpp | 13 ++++++++++---
 2 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/sm5/ataprint.c b/sm5/ataprint.c
index a7f33ab88..25c5eadb4 100644
--- a/sm5/ataprint.c
+++ b/sm5/ataprint.c
@@ -30,7 +30,7 @@
 #include "smartctl.h"
 #include "extern.h"
 
-const char *CVSid2="$Id: ataprint.c,v 1.47 2002/11/29 10:41:58 ballen4705 Exp $"
+const char *CVSid2="$Id: ataprint.c,v 1.48 2002/12/11 23:15:43 pjwilliams Exp $"
 CVSID1 CVSID2 CVSID3 CVSID6;
 
 // for passing global control variables
@@ -742,12 +742,19 @@ void failuretest(int type, int returnvalue){
   exit(returnvalue|FAILCMD);
 }
 
-// Used to warn users about invalid checksums.  However we will not
-// abort on invalid checksums.
+// Used to warn users about invalid checksums.  Action to be taken may be
+// altered by the user.
 void checksumwarning(const char *string){
+  // user has asked us to ignore checksum errors
+  if (con->checksumignore)
+        return;
+
   pout("Warning! %s error: invalid SMART checksum.\n",string);
+
+  // user has asked us to fail on checksum errors
   if (con->checksumfail)
     exit(FAILSMART);
+
   return;
 }
 
diff --git a/sm5/ataprint.cpp b/sm5/ataprint.cpp
index 2f8f94da3..8b9e4a8cf 100644
--- a/sm5/ataprint.cpp
+++ b/sm5/ataprint.cpp
@@ -30,7 +30,7 @@
 #include "smartctl.h"
 #include "extern.h"
 
-const char *CVSid2="$Id: ataprint.cpp,v 1.47 2002/11/29 10:41:58 ballen4705 Exp $"
+const char *CVSid2="$Id: ataprint.cpp,v 1.48 2002/12/11 23:15:43 pjwilliams Exp $"
 CVSID1 CVSID2 CVSID3 CVSID6;
 
 // for passing global control variables
@@ -742,12 +742,19 @@ void failuretest(int type, int returnvalue){
   exit(returnvalue|FAILCMD);
 }
 
-// Used to warn users about invalid checksums.  However we will not
-// abort on invalid checksums.
+// Used to warn users about invalid checksums.  Action to be taken may be
+// altered by the user.
 void checksumwarning(const char *string){
+  // user has asked us to ignore checksum errors
+  if (con->checksumignore)
+        return;
+
   pout("Warning! %s error: invalid SMART checksum.\n",string);
+
+  // user has asked us to fail on checksum errors
   if (con->checksumfail)
     exit(FAILSMART);
+
   return;
 }
 
-- 
GitLab