]> git.ipfire.org Git - thirdparty/cups.git/blobdiff - backend/usb-libusb.c
Import CUPS v1.7.1
[thirdparty/cups.git] / backend / usb-libusb.c
index 0eb4742467a226d4bf247f09ca6c4d87cdabcfcb..34c28999b75dcd28475edf55d401c19cdf693874 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id$"
+ * "$Id: usb-libusb.c 11456 2013-12-09 19:26:47Z msweet $"
  *
  *   LIBUSB interface code for CUPS.
  *
@@ -38,6 +38,7 @@
 
 #include <libusb.h>
 #include <cups/cups-private.h>
+#include <cups/dir.h>
 #include <pthread.h>
 #include <sys/select.h>
 #include <sys/types.h>
@@ -141,7 +142,7 @@ typedef struct usb_quirk_s          /* USB "quirk" information */
 
 cups_array_t           *all_quirks;    /* Array of printer quirks */
 usb_globals_t          g = { 0 };      /* Globals */
-libusb_device           **list;         /* List of connected USB devices */
+libusb_device          **all_list;     /* List of connected USB devices */
 
 
 /*
@@ -176,6 +177,8 @@ static int          soft_reset_printer(usb_printer_t *printer);
 void
 list_devices(void)
 {
+  load_quirks();
+
   fputs("DEBUG: list_devices\n", stderr);
   find_device(list_cb, NULL);
 }
@@ -218,6 +221,8 @@ print_device(const char *uri,               /* I - Device URI */
   const char   *val;                   /* Option value */
 
 
+  load_quirks();
+
  /*
   * See if the side-channel descriptor is valid...
   */
@@ -491,7 +496,7 @@ print_device(const char *uri,               /* I - Device URI */
        iostatus = libusb_bulk_transfer(g.printer->handle,
                                        g.printer->write_endp,
                                        print_buffer, g.print_bytes,
-                                       &bytes, 60000);
+                                       &bytes, 0);
        /*
        * Ignore timeout errors, but retain the number of bytes written to
        * avoid sending duplicate data...
@@ -514,7 +519,7 @@ print_device(const char *uri,               /* I - Device URI */
          iostatus = libusb_bulk_transfer(g.printer->handle,
                                          g.printer->write_endp,
                                          print_buffer, g.print_bytes,
-                                         &bytes, 60000);
+                                         &bytes, 0);
        }
 
        /*
@@ -529,7 +534,7 @@ print_device(const char *uri,               /* I - Device URI */
          iostatus = libusb_bulk_transfer(g.printer->handle,
                                          g.printer->write_endp,
                                          print_buffer, g.print_bytes,
-                                         &bytes, 60000);
+                                         &bytes, 0);
         }
 
        if (iostatus)
@@ -662,7 +667,7 @@ print_device(const char *uri,               /* I - Device URI */
   * Clean up ....
   */
 
-  libusb_free_device_list(list, 1);
+  libusb_free_device_list(all_list, 1);
   libusb_exit(NULL);
 
   return (status);
@@ -842,7 +847,7 @@ find_device(usb_cb_t   cb,          /* I - Callback function */
   if (err)
   {
     fprintf(stderr, "DEBUG: Unable to initialize USB access via libusb, "
-                    "libusb error %i\n", err);
+                    "libusb error %i\n", (int)err);
     return (NULL);
   }
 
@@ -1187,7 +1192,7 @@ load_quirks(void)
 
   fprintf(stderr, "DEBUG: Loading USB quirks from \"%s\".\n", filename);
 
-  while (dent = cupsDirRead(dir))
+  while ((dent = cupsDirRead(dir)) != NULL)
   {
     if (!S_ISREG(dent->fileinfo.st_mode))
       continue;
@@ -2016,6 +2021,6 @@ soft_reset_printer(
 
 
 /*
- * End of "$Id$".
+ * End of "$Id: usb-libusb.c 11456 2013-12-09 19:26:47Z msweet $".
  */