diff --git a/cdrskin/cdrskin_timestamp.h b/cdrskin/cdrskin_timestamp.h index a14a319..b3c88e7 100644 --- a/cdrskin/cdrskin_timestamp.h +++ b/cdrskin/cdrskin_timestamp.h @@ -1 +1 @@ -#define Cdrskin_timestamP "2006.11.12.113629" +#define Cdrskin_timestamP "2006.11.12.152723" diff --git a/libburn/libdax_msgs.h b/libburn/libdax_msgs.h index cb0ffc4..a4c2296 100644 --- a/libburn/libdax_msgs.h +++ b/libburn/libdax_msgs.h @@ -334,6 +334,7 @@ Range "scdbackup" : 0x00020000 to 0x0002ffff 0x0002011a (NOTE,HIGH) = Padding up track to minimum size 0x0002011b (FATAL,HIGH) = Attempt to read track info from ungrabbed drive 0x0002011c (FATAL,HIGH) = Attempt to read track info from busy drive + 0x0002011d (FATAL,HIGH) = SCSI error condition on write libdax_audioxtr: 0x00020200 (SORRY,HIGH) = Cannot open audio source file diff --git a/libburn/mmc.c b/libburn/mmc.c index 7e06a8a..a4f8392 100644 --- a/libburn/mmc.c +++ b/libburn/mmc.c @@ -301,6 +301,27 @@ int mmc_write(struct burn_drive *d, int start, struct buffer *buf) #endif /* Libburn_log_in_and_out_streaM */ d->issue_command(d, &c); + + /* ts A61112 : react on eventual error condition */ + if (c.error && c.sense[2]!=0) { + + /* >>> make this scsi_notify_error() when liberated */ + if (c.sense[2]!=0) { + char msg[80]; + sprintf(msg, + "SCSI error condition on write : key=%X asc=%2.2Xh ascq=%2.2Xh", + c.sense[2],c.sense[12],c.sense[13]); + libdax_msgs_submit(libdax_messenger, d->global_index, + 0x0002011d, + LIBDAX_MSGS_SEV_FATAL, LIBDAX_MSGS_PRIO_HIGH, + msg, 0, 0); + } + pthread_mutex_lock(&d->access_lock); + d->cancel = 1; + pthread_mutex_unlock(&d->access_lock); + return BE_CANCELLED; + } + return 0; }