cdparanoia/cdparanoia-III-alpha9.8.env.patch
Peter Jones c88503add2 auto-import cdparanoia-alpha9.8-22 on branch devel from
cdparanoia-alpha9.8-22.src.rpm
2004-09-30 15:48:26 +00:00

47 lines
1.7 KiB
Diff

--- cdparanoia-III-alpha9.8/interface/scsi_interface.c.env 2004-09-30 11:36:29.495045730 -0400
+++ cdparanoia-III-alpha9.8/interface/scsi_interface.c 2004-09-30 11:35:52.261283378 -0400
@@ -177,8 +177,11 @@
* "allocation, so be more conservative: 32kB max until I test more
* thoroughly". We're not currently honoring that, because we should
* always get -ENOMEM.
+ *
+ * Updated: but we don't always get -ENOMEM. Sometimes USB drives
+ * still fail the wrong way. This needs some kernel-land investigation.
*/
-#if 0
+#if 1
cur=(cur>1024*32?1024*32:cur);
#endif
d->nsectors=cur/CD_FRAMESIZE_RAW;
--- cdparanoia-III-alpha9.8/interface/scan_devices.c.env 2004-09-30 11:30:55.422135762 -0400
+++ cdparanoia-III-alpha9.8/interface/scan_devices.c 2004-09-30 11:34:04.815523677 -0400
@@ -104,6 +104,7 @@
cdrom_drive *cdda_identify(const char *device, int messagedest,char **messages){
struct stat st;
cdrom_drive *d=NULL;
+ char *transport = getenv("CDDA_TRANSPORT");
idmessage(messagedest,messages,"Checking %s for cdrom...",device);
if(stat(device,&st)){
@@ -120,11 +121,15 @@
#endif
#ifdef SG_IO
- d=cdda_identify_scsi(device,NULL,messagedest,messages);
- if(!d)d=cdda_identify_cooked(device,messagedest,messages);
-#else
- if(!d)d=cdda_identify_scsi(device,NULL,messagedest,messages);
- d=cdda_identify_cooked(device,messagedest,messages);
+ if (transport && !strcasecmp(transport, "cooked")) {
+#endif
+ d=cdda_identify_cooked(device,messagedest,messages);
+ if(!d)d=cdda_identify_scsi(device,NULL,messagedest,messages);
+#ifdef SG_IO
+ } else {
+ d=cdda_identify_scsi(device,NULL,messagedest,messages);
+ if(!d)d=cdda_identify_cooked(device,messagedest,messages);
+ }
#endif
#ifdef CDDA_TEST