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