diff --git a/sm5/ataprint.c b/sm5/ataprint.c index a7f33ab882d7f402841015fc0eb18990c9f05386..25c5eadb48bb37947bb9540dadbf6e768a64e575 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 2f8f94da3ca0a12f1f19e30f5b95d5c95b2e8517..8b9e4a8cf00b0fa93886499f9b6394155d077ed5 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; }