From 3468a2ad38fc9be5d78d1bb9c8486d175b0a3862 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Wed, 30 Sep 2020 20:53:53 +0200 Subject: [PATCH] Tolerating all sense replies of form 6,28,* --- cdrskin/cdrskin_timestamp.h | 2 +- libburn/spc.c | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/cdrskin/cdrskin_timestamp.h b/cdrskin/cdrskin_timestamp.h index 009a072..f92d06c 100644 --- a/cdrskin/cdrskin_timestamp.h +++ b/cdrskin/cdrskin_timestamp.h @@ -1 +1 @@ -#define Cdrskin_timestamP "2020.09.20.204320" +#define Cdrskin_timestamP "2020.09.30.185335" diff --git a/libburn/spc.c b/libburn/spc.c index 4a14931..2ccd257 100644 --- a/libburn/spc.c +++ b/libburn/spc.c @@ -195,8 +195,8 @@ int spc_wait_unit_attention(struct burn_drive *d, int max_sec, char *cmd_text, */ break; } - if (key == 0x6 && asc == 0x28 && ascq == 0x00) - /* media change notice = try again */ + if (key == 0x6 && asc == 0x28) + /* medium change notice or alike = try again */ goto slumber; handle_error:; @@ -1446,8 +1446,15 @@ enum response scsi_error_msg(struct burn_drive *d, unsigned char *sense, case 0x28: if (*ascq == 0) sprintf(msg, "Medium may have changed"); + else if (*ascq == 1) + sprintf(msg, "Import or export element accessed"); else if (*ascq == 2) sprintf(msg, "Format layer may have changed"); + else if (*ascq == 3) + sprintf(msg, + "Import/export element accessed, medium changed"); + else if (*key == 6) + sprintf(msg, "Unknown ASCQ with drive event ASC 28"); else break; goto return_retry;