--- epson.c-orig Tue Dec 12 19:31:17 2000 +++ epson.c Thu Dec 21 12:37:27 2000 @@ -728,6 +729,22 @@ */ + +static SANE_Status +sense_handler (int scsi_fd, u_char *result, void *arg) +{ + if (result[0] && result[0]!=0x70) + { + DBG (0, "sense_handler() : sense code = 0x%02x\n", result[0]); + return SANE_STATUS_IO_ERROR; + } + else + { + return SANE_STATUS_GOOD; + } +} + + /* * * @@ -1308,7 +1323,7 @@ DBG(5, "open_scanner()\n"); if( s->hw->connection == SANE_EPSON_SCSI) { - if( SANE_STATUS_GOOD != ( status = sanei_scsi_open( s->hw->sane.name, &s->fd, NULL, NULL))) { + if( SANE_STATUS_GOOD != ( status = sanei_scsi_open( s->hw->sane.name, &s->fd, sense_handler, NULL))) { DBG( 1, "sane_start: %s open failed: %s\n", s->hw->sane.name, sane_strstatus( status)); return status; } @@ -1607,11 +1622,11 @@ u_char buf[ INQUIRY_BUF_SIZE + 1]; size_t buf_size = INQUIRY_BUF_SIZE; - if( SANE_STATUS_GOOD != ( status = sanei_scsi_open( dev_name, &s->fd, NULL, NULL))) { + if( SANE_STATUS_GOOD != ( status = sanei_scsi_open( dev_name, &s->fd, sense_handler, NULL))) { DBG( 1, "attach: open failed: %s\n", sane_strstatus( status)); return status; } - + reset(s); DBG( 3, "attach: sending INQUIRY\n"); /* buf_size = sizeof buf; */