kopia lustrzana https://gitlab.com/sane-project/backends
2009-03-06 Louis Lagendijk <llagendijk-guest at users.alioth.debian.org>
* backend/pixma_bjnp.c - silenced some debug statements during scanner detections - increased timeouts to 20 seconds as 10 seconds is apparently - not enough for the combination of a Mac and an MX850.merge-requests/1/head
rodzic
ba825f1050
commit
d214d08f1b
|
@ -1,3 +1,9 @@
|
|||
2009-03-06 Louis Lagendijk <llagendijk-guest at users.alioth.debian.org>
|
||||
* backend/pixma_bjnp.c
|
||||
- silenced some debug statements during scanner detections
|
||||
- increased timeouts to 20 seconds as 10 seconds is apparently
|
||||
- not enough for the combination of a Mac and an MX850.
|
||||
|
||||
2009-03-21 Alex Belkin <abc@telekom.ru>
|
||||
* backend/xerox_mfp.conf.in: add Xerox Phaser 6110MFP
|
||||
* backend/xerox_mfp.c: compatibility with scanners w/o feeder.
|
||||
|
|
|
@ -168,21 +168,22 @@ charTo2byte (char d[], char s[], int len)
|
|||
return copied;
|
||||
}
|
||||
|
||||
static char *getusername(void)
|
||||
static char *
|
||||
getusername (void)
|
||||
{
|
||||
static char noname[] = "sane_pixma";
|
||||
struct passwd *pwdent;
|
||||
|
||||
#ifdef HAVE_PWD_H
|
||||
if (((pwdent = getpwuid(geteuid())) != NULL) &&
|
||||
(pwdent->pw_name != NULL))
|
||||
if (((pwdent = getpwuid (geteuid ())) != NULL) && (pwdent->pw_name != NULL))
|
||||
return pwdent->pw_name;
|
||||
#endif
|
||||
return noname;
|
||||
}
|
||||
|
||||
|
||||
static char *truncate_hostname(char *hostname, char *short_hostname)
|
||||
static char *
|
||||
truncate_hostname (char *hostname, char *short_hostname)
|
||||
{
|
||||
char *dot;
|
||||
|
||||
|
@ -242,7 +243,8 @@ bjnp_open_tcp (int devno)
|
|||
(sock, (struct sockaddr *) &device[devno].addr,
|
||||
sizeof (device[devno].addr)) != 0)
|
||||
{
|
||||
PDBG(pixma_dbg (LOG_CRIT, "bjnp_open_tcp: Can not connect to scanner: %s\n",
|
||||
PDBG (pixma_dbg
|
||||
(LOG_CRIT, "bjnp_open_tcp: Can not connect to scanner: %s\n",
|
||||
strerror (errno)));
|
||||
return -1;
|
||||
}
|
||||
|
@ -395,7 +397,8 @@ udp_command (const int dev_no, char *command, int cmd_len, char *response,
|
|||
if ((sockfd = socket (PF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1)
|
||||
{
|
||||
PDBG (pixma_dbg
|
||||
(LOG_CRIT, "udp_command: can not open socket - %s\n", strerror (errno)));
|
||||
(LOG_CRIT, "udp_command: can not open socket - %s\n",
|
||||
strerror (errno)));
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -404,7 +407,8 @@ udp_command (const int dev_no, char *command, int cmd_len, char *response,
|
|||
(socklen_t) sizeof (struct sockaddr_in)) != 0)
|
||||
{
|
||||
PDBG (pixma_dbg
|
||||
(LOG_CRIT, "udp_command: connect failed- %s\n", strerror (errno)));
|
||||
(LOG_CRIT, "udp_command: connect failed- %s\n",
|
||||
strerror (errno)));
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -427,8 +431,9 @@ udp_command (const int dev_no, char *command, int cmd_len, char *response,
|
|||
timeout.tv_sec = device[dev_no].bjnp_timeout_sec;
|
||||
timeout.tv_usec = device[dev_no].bjnp_timeout_msec;
|
||||
}
|
||||
while (((result = select (sockfd + 1, &fdset, NULL, NULL, &timeout)) <= 0) &&
|
||||
(errno == EINTR) && (attempt++ < MAX_SELECT_ATTEMPTS));
|
||||
while (((result =
|
||||
select (sockfd + 1, &fdset, NULL, NULL, &timeout)) <= 0)
|
||||
&& (errno == EINTR) && (attempt++ < MAX_SELECT_ATTEMPTS));
|
||||
|
||||
if (result <= 0)
|
||||
{
|
||||
|
@ -574,8 +579,9 @@ parse_scanner_address (char *resp_buf, char *address, char *serial)
|
|||
}
|
||||
|
||||
static int
|
||||
bjnp_send_broadcast (struct in_addr local_addr, int local_port, struct in_addr broadcast_addr,
|
||||
struct BJNP_command cmd, int size)
|
||||
bjnp_send_broadcast (struct in_addr local_addr, int local_port,
|
||||
struct in_addr broadcast_addr, struct BJNP_command cmd,
|
||||
int size)
|
||||
{
|
||||
/*
|
||||
* send command to interface and return open socket
|
||||
|
@ -589,7 +595,8 @@ bjnp_send_broadcast (struct in_addr local_addr, int local_port, struct in_addr b
|
|||
if ((sockfd = socket (PF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1)
|
||||
{
|
||||
PDBG (pixma_dbg
|
||||
(LOG_CRIT, "bjnp_send_broadcast: can not open socket - %s", strerror (errno)));
|
||||
(LOG_INFO, "bjnp_send_broadcast: can not open socket - %s",
|
||||
strerror (errno)));
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -600,7 +607,8 @@ bjnp_send_broadcast (struct in_addr local_addr, int local_port, struct in_addr b
|
|||
sizeof (broadcast)) != 0)
|
||||
{
|
||||
PDBG (pixma_dbg
|
||||
(LOG_CRIT, "bjnp_send_broadcast: setting socket options failed - %s",
|
||||
(LOG_INFO,
|
||||
"bjnp_send_broadcast: setting socket options failed - %s",
|
||||
strerror (errno)));
|
||||
close (sockfd);
|
||||
return -1;
|
||||
|
@ -618,7 +626,9 @@ bjnp_send_broadcast (struct in_addr local_addr, int local_port, struct in_addr b
|
|||
(socklen_t) sizeof (sendaddr)) != 0)
|
||||
{
|
||||
PDBG (pixma_dbg
|
||||
(LOG_CRIT, "bjnp_send_broadcast: bind socket to local address failed - %s\n", strerror (errno)));
|
||||
(LOG_INFO,
|
||||
"bjnp_send_broadcast: bind socket to local address failed - %s\n",
|
||||
strerror (errno)));
|
||||
close (sockfd);
|
||||
return -1;
|
||||
}
|
||||
|
@ -637,8 +647,8 @@ bjnp_send_broadcast (struct in_addr local_addr, int local_port, struct in_addr b
|
|||
(struct sockaddr *) &sendaddr,
|
||||
sizeof (sendaddr))) != size)
|
||||
{
|
||||
PDBG (pixma_dbg (LOG_CRIT,
|
||||
"bjnp_send_broadcasts: Sent only %x = %d bytes of packet, error = %s\n",
|
||||
PDBG (pixma_dbg (LOG_INFO,
|
||||
"bjnp_send_broadcast: Sent only %x = %d bytes of packet, error = %s\n",
|
||||
numbytes, numbytes, strerror (errno)));
|
||||
/* not allowed, skip this interface */
|
||||
|
||||
|
@ -662,10 +672,11 @@ bjnp_finish_job (int devno)
|
|||
set_cmd (devno, &cmd, CMD_UDP_CLOSE, 0);
|
||||
|
||||
PDBG (pixma_dbg (LOG_DEBUG2, "Finish scanjob\n"));
|
||||
PDBG(pixma_hexdump (LOG_DEBUG2, (char *) &cmd, sizeof (struct BJNP_command)));
|
||||
PDBG (pixma_hexdump
|
||||
(LOG_DEBUG2, (char *) &cmd, sizeof (struct BJNP_command)));
|
||||
resp_len =
|
||||
udp_command (devno, (char *) &cmd, sizeof (struct BJNP_command),
|
||||
resp_buf, BJNP_RESP_MAX);
|
||||
udp_command (devno, (char *) &cmd, sizeof (struct BJNP_command), resp_buf,
|
||||
BJNP_RESP_MAX);
|
||||
|
||||
if (resp_len != sizeof (struct BJNP_command))
|
||||
{
|
||||
|
@ -830,7 +841,8 @@ bjnp_write (int devno, const SANE_Byte * buf, size_t count)
|
|||
struct SCAN_BUF bjnp_buf;
|
||||
|
||||
if (device[devno].scanner_data_left)
|
||||
PDBG (pixma_dbg (LOG_CRIT, "bjnp_write: ERROR scanner data left = 0x%lx = %ld\n",
|
||||
PDBG (pixma_dbg
|
||||
(LOG_CRIT, "bjnp_write: ERROR scanner data left = 0x%lx = %ld\n",
|
||||
(long) device[devno].scanner_data_left,
|
||||
(long) device[devno].scanner_data_left));
|
||||
|
||||
|
@ -878,7 +890,8 @@ bjnp_send_read_request (int devno)
|
|||
|
||||
if (device[devno].scanner_data_left)
|
||||
PDBG (pixma_dbg
|
||||
(LOG_CRIT, "bjnp_send_read_request: ERROR scanner data left = 0x%lx = %ld\n",
|
||||
(LOG_CRIT,
|
||||
"bjnp_send_read_request: ERROR scanner data left = 0x%lx = %ld\n",
|
||||
(long) device[devno].scanner_data_left,
|
||||
(long) device[devno].scanner_data_left));
|
||||
|
||||
|
@ -929,7 +942,8 @@ bjnp_recv_header (int devno)
|
|||
|
||||
if (device[devno].scanner_data_left)
|
||||
PDBG (pixma_dbg
|
||||
(LOG_CRIT, "bjnp_send_request: ERROR scanner data left = 0x%lx = %ld\n",
|
||||
(LOG_CRIT,
|
||||
"bjnp_send_request: ERROR scanner data left = 0x%lx = %ld\n",
|
||||
(long) device[devno].scanner_data_left,
|
||||
(long) device[devno].scanner_data_left));
|
||||
|
||||
|
@ -1005,10 +1019,11 @@ bjnp_recv_header (int devno)
|
|||
|
||||
|
||||
device[devno].scanner_data_left = ntohl (resp_buf.payload_len);
|
||||
PDBG(pixma_dbg (LOG_DEBUG2, "TCP response header(scanner data = %ld bytes):\n",
|
||||
PDBG (pixma_dbg
|
||||
(LOG_DEBUG2, "TCP response header(scanner data = %ld bytes):\n",
|
||||
(long) device[devno].scanner_data_left));
|
||||
PDBG(pixma_hexdump (LOG_DEBUG2, (char *) &resp_buf,
|
||||
sizeof (struct BJNP_command)));
|
||||
PDBG (pixma_hexdump
|
||||
(LOG_DEBUG2, (char *) &resp_buf, sizeof (struct BJNP_command)));
|
||||
return SANE_STATUS_GOOD;
|
||||
}
|
||||
|
||||
|
@ -1092,7 +1107,8 @@ bjnp_recv_data (int devno, SANE_Byte * buffer, size_t * len)
|
|||
}
|
||||
|
||||
static BJNP_Status
|
||||
bjnp_allocate_device (SANE_String_Const devname, SANE_Int * dn, char *res_hostname)
|
||||
bjnp_allocate_device (SANE_String_Const devname, SANE_Int * dn,
|
||||
char *res_hostname)
|
||||
{
|
||||
char method[256];
|
||||
char hostname[256];
|
||||
|
@ -1112,7 +1128,8 @@ bjnp_allocate_device (SANE_String_Const devname, SANE_Int * dn, char *res_hostna
|
|||
if (strlen (args) != 0)
|
||||
{
|
||||
PDBG (pixma_dbg
|
||||
(LOG_CRIT, "URI may not contain userid, password or aguments: %s\n",
|
||||
(LOG_CRIT,
|
||||
"URI may not contain userid, password or aguments: %s\n",
|
||||
devname));
|
||||
|
||||
return BJNP_STATUS_INVAL;
|
||||
|
@ -1164,7 +1181,9 @@ bjnp_allocate_device (SANE_String_Const devname, SANE_Int * dn, char *res_hostna
|
|||
if (first_free_device == BJNP_NO_DEVICES)
|
||||
{
|
||||
PDBG (pixma_dbg
|
||||
(LOG_CRIT, "Too many devices, ran out of device structures, can not add %s\n", devname));
|
||||
(LOG_CRIT,
|
||||
"Too many devices, ran out of device structures, can not add %s\n",
|
||||
devname));
|
||||
return BJNP_STATUS_INVAL;
|
||||
}
|
||||
*dn = first_free_device++;
|
||||
|
@ -1261,8 +1280,7 @@ sanei_bjnp_find_devices (const char **conf_devices,
|
|||
for (i = 0; conf_devices[i] != NULL; i++)
|
||||
{
|
||||
PDBG (pixma_dbg
|
||||
(LOG_DEBUG, "Adding configured scanner: %s\n",
|
||||
conf_devices[i]));
|
||||
(LOG_DEBUG, "Adding configured scanner: %s\n", conf_devices[i]));
|
||||
|
||||
/* Allocate device structure for scanner and read its model */
|
||||
switch (bjnp_allocate_device (conf_devices[i], &dev_no, hostname))
|
||||
|
@ -1300,7 +1318,9 @@ sanei_bjnp_find_devices (const char **conf_devices,
|
|||
break;
|
||||
}
|
||||
}
|
||||
PDBG (pixma_dbg (LOG_DEBUG, "Added all configured scanners, now do auto detection...\n"));
|
||||
PDBG (pixma_dbg
|
||||
(LOG_DEBUG,
|
||||
"Added all configured scanners, now do auto detection...\n"));
|
||||
|
||||
/*
|
||||
* Send UDP broadcast to discover scanners and return the list of scanners found
|
||||
|
@ -1323,15 +1343,17 @@ sanei_bjnp_find_devices (const char **conf_devices,
|
|||
{
|
||||
/* send broadcast packet to each suitable interface */
|
||||
|
||||
if ( (interface->ifa_addr == NULL) || (interface->ifa_broadaddr == NULL) ||
|
||||
(interface->ifa_addr->sa_family != AF_INET) ||
|
||||
(((struct sockaddr_in *) interface->ifa_addr)->sin_addr.s_addr ==
|
||||
htonl (INADDR_LOOPBACK)))
|
||||
if ((interface->ifa_addr == NULL)
|
||||
|| (interface->ifa_broadaddr == NULL)
|
||||
|| (interface->ifa_addr->sa_family != AF_INET)
|
||||
|| (((struct sockaddr_in *) interface->ifa_addr)->sin_addr.
|
||||
s_addr == htonl (INADDR_LOOPBACK)))
|
||||
{
|
||||
/* not an IPv4 address */
|
||||
|
||||
PDBG (pixma_dbg
|
||||
(LOG_DEBUG, "%s is not a valid IPv4 interface, skipping...\n",
|
||||
(LOG_DEBUG,
|
||||
"%s is not a valid IPv4 interface, skipping...\n",
|
||||
interface->ifa_name));
|
||||
|
||||
}
|
||||
|
@ -1342,11 +1364,11 @@ sanei_bjnp_find_devices (const char **conf_devices,
|
|||
interface->ifa_name));
|
||||
|
||||
if ((socket_fd[no_sockets] =
|
||||
bjnp_send_broadcast (((struct sockaddr_in *) interface->
|
||||
ifa_addr)->sin_addr,
|
||||
bjnp_send_broadcast (((struct sockaddr_in *)
|
||||
interface->ifa_addr)->sin_addr,
|
||||
BJNP_PORT_BROADCAST_BASE + attempt,
|
||||
((struct sockaddr_in *) interface->
|
||||
ifa_broadaddr)->sin_addr,
|
||||
((struct sockaddr_in *)
|
||||
interface->ifa_broadaddr)->sin_addr,
|
||||
cmd, sizeof (cmd))) != -1)
|
||||
{
|
||||
if (socket_fd[no_sockets] > last_socketfd)
|
||||
|
@ -1375,7 +1397,8 @@ sanei_bjnp_find_devices (const char **conf_devices,
|
|||
for (attempt = 0; attempt < MAX_SELECT_ATTEMPTS; attempt++)
|
||||
{
|
||||
if ((socket_fd[no_sockets] =
|
||||
bjnp_send_broadcast (local, BJNP_PORT_BROADCAST_BASE + attempt, broadcast, cmd, sizeof (cmd))) != -1)
|
||||
bjnp_send_broadcast (local, BJNP_PORT_BROADCAST_BASE + attempt,
|
||||
broadcast, cmd, sizeof (cmd))) != -1)
|
||||
{
|
||||
if (socket_fd[no_sockets] > last_socketfd)
|
||||
{
|
||||
|
@ -1407,11 +1430,10 @@ sanei_bjnp_find_devices (const char **conf_devices,
|
|||
if (FD_ISSET (socket_fd[i], &active_fdset))
|
||||
{
|
||||
if ((numbytes =
|
||||
recv (socket_fd[i], resp_buf, sizeof (resp_buf),
|
||||
0)) == -1)
|
||||
recv (socket_fd[i], resp_buf, sizeof (resp_buf), 0)) == -1)
|
||||
{
|
||||
PDBG (pixma_dbg
|
||||
(LOG_CRIT, "bjnp_send_broadcasts: no data received"));
|
||||
(LOG_INFO, "bjnp_send_broadcasts: no data received"));
|
||||
break;
|
||||
}
|
||||
else
|
||||
|
@ -1444,7 +1466,8 @@ sanei_bjnp_find_devices (const char **conf_devices,
|
|||
{
|
||||
PDBG (pixma_dbg
|
||||
(LOG_CRIT,
|
||||
"Scanner not added: Cannot read scanner make & model: %s\n", uri));
|
||||
"Scanner not added: Cannot read scanner make & model: %s\n",
|
||||
uri));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1553,7 +1576,8 @@ sanei_bjnp_close (SANE_Int dn)
|
|||
* @param dn device number
|
||||
*/
|
||||
|
||||
SANE_Status sanei_bjnp_activate(SANE_Int dn)
|
||||
SANE_Status
|
||||
sanei_bjnp_activate (SANE_Int dn)
|
||||
{
|
||||
char hostname[256];
|
||||
char pid_str[64];
|
||||
|
@ -1576,7 +1600,8 @@ SANE_Status sanei_bjnp_activate(SANE_Int dn)
|
|||
* @paran dn device number
|
||||
*/
|
||||
|
||||
SANE_Status sanei_bjnp_deactivate(SANE_Int dn)
|
||||
SANE_Status
|
||||
sanei_bjnp_deactivate (SANE_Int dn)
|
||||
{
|
||||
PDBG (pixma_dbg (LOG_INFO, "sanei_bjnp_deactivate (%d)\n", dn));
|
||||
bjnp_finish_job (dn);
|
||||
|
@ -1599,8 +1624,8 @@ sanei_bjnp_set_timeout (SANE_Int devno, SANE_Int timeout)
|
|||
|
||||
/* timeout must be at least 10 second */
|
||||
|
||||
if (my_timeout < 10000)
|
||||
my_timeout = 10000;
|
||||
if (my_timeout < 20000)
|
||||
my_timeout = 20000;
|
||||
PDBG (pixma_dbg (LOG_INFO, "bjnp_set_timeout(requested %d, set %d):\n",
|
||||
timeout, my_timeout));
|
||||
|
||||
|
@ -1647,7 +1672,8 @@ sanei_bjnp_read_bulk (SANE_Int dn, SANE_Byte * buffer, size_t * size)
|
|||
/* so scanner needs first a high level read command. This is not an error */
|
||||
|
||||
PDBG (pixma_dbg
|
||||
(LOG_DEBUG, "Scanner has no more data available, return immediately!\n"));
|
||||
(LOG_DEBUG,
|
||||
"Scanner has no more data available, return immediately!\n"));
|
||||
*size = 0;
|
||||
return SANE_STATUS_EOF;
|
||||
}
|
||||
|
@ -1658,8 +1684,7 @@ sanei_bjnp_read_bulk (SANE_Int dn, SANE_Byte * buffer, size_t * size)
|
|||
(long) device[dn].scanner_data_left,
|
||||
(long) device[dn].scanner_data_left,
|
||||
(int) device[dn].short_read,
|
||||
(long) device[dn].blocksize,
|
||||
(long) device[dn].blocksize));
|
||||
(long) device[dn].blocksize, (long) device[dn].blocksize));
|
||||
|
||||
while ((recvd < *size)
|
||||
&& (!device[dn].short_read || device[dn].scanner_data_left))
|
||||
|
@ -1677,7 +1702,8 @@ sanei_bjnp_read_bulk (SANE_Int dn, SANE_Byte * buffer, size_t * size)
|
|||
*/
|
||||
|
||||
PDBG (pixma_dbg
|
||||
(LOG_DEBUG, "No (more) scanner data available, requesting more\n"));
|
||||
(LOG_DEBUG,
|
||||
"No (more) scanner data available, requesting more\n"));
|
||||
|
||||
if ((error = bjnp_send_read_request (dn)) != SANE_STATUS_GOOD)
|
||||
{
|
||||
|
@ -1707,9 +1733,10 @@ sanei_bjnp_read_bulk (SANE_Int dn, SANE_Byte * buffer, size_t * size)
|
|||
|
||||
more = left;
|
||||
|
||||
PDBG (pixma_dbg (LOG_DEBUG, "reading 0x%lx = %ld (of max 0x%lx = %ld) bytes more\n",
|
||||
device[dn].scanner_data_left,
|
||||
device[dn].scanner_data_left,
|
||||
PDBG (pixma_dbg
|
||||
(LOG_DEBUG,
|
||||
"reading 0x%lx = %ld (of max 0x%lx = %ld) bytes more\n",
|
||||
device[dn].scanner_data_left, device[dn].scanner_data_left,
|
||||
(long) more, (long) more));
|
||||
result = bjnp_recv_data (dn, buffer, &more);
|
||||
if (result != SANE_STATUS_GOOD)
|
||||
|
@ -1756,7 +1783,8 @@ sanei_bjnp_write_bulk (SANE_Int dn, const SANE_Byte * buffer, size_t * size)
|
|||
return SANE_STATUS_IO_ERROR;
|
||||
if (sent != (int) *size)
|
||||
{
|
||||
PDBG(pixma_dbg (LOG_CRIT, "Sent only %ld bytes to scanner, expected %ld!!\n",
|
||||
PDBG (pixma_dbg
|
||||
(LOG_CRIT, "Sent only %ld bytes to scanner, expected %ld!!\n",
|
||||
(long) sent, (long) *size));
|
||||
return SANE_STATUS_IO_ERROR;
|
||||
}
|
||||
|
@ -1786,7 +1814,8 @@ sanei_bjnp_write_bulk (SANE_Int dn, const SANE_Byte * buffer, size_t * size)
|
|||
recvd = ntohl (buf);
|
||||
if (recvd != *size)
|
||||
{
|
||||
PDBG(pixma_dbg (LOG_CRIT, "Scanner confirmed %ld bytes, expected %ld!!\n",
|
||||
PDBG (pixma_dbg
|
||||
(LOG_CRIT, "Scanner confirmed %ld bytes, expected %ld!!\n",
|
||||
(long) recvd, (long) *size));
|
||||
return SANE_STATUS_IO_ERROR;
|
||||
}
|
||||
|
@ -1821,8 +1850,7 @@ sanei_bjnp_read_int (SANE_Int dn, SANE_Byte * buffer, size_t * size)
|
|||
#ifndef PIXMA_BJNP_STATUS
|
||||
PDBG (pixma_dbg
|
||||
(LOG_INFO, "bjnp_read_int(%d, bufferptr, 0x%lx = %ld):\n", dn,
|
||||
(long) *size,
|
||||
(long) *size));
|
||||
(long) *size, (long) *size));
|
||||
memset (buffer, 0, *size);
|
||||
sleep (1);
|
||||
return SANE_STATUS_IO_ERROR;
|
||||
|
@ -1881,9 +1909,7 @@ sanei_bjnp_read_int (SANE_Int dn, SANE_Byte * buffer, size_t * size)
|
|||
|
||||
sleep (4);
|
||||
|
||||
PDBG (pixma_dbg
|
||||
(LOG_NOTICE,
|
||||
"sanei_bjnp_read_int: no data received\n"));
|
||||
PDBG (pixma_dbg (LOG_NOTICE, "sanei_bjnp_read_int: no data received\n"));
|
||||
|
||||
return SANE_STATUS_IO_ERROR;
|
||||
#endif
|
||||
|
|
Ładowanie…
Reference in New Issue