From 08af36a2e8ec4e819c3183beb3770e702b68e4a3 Mon Sep 17 00:00:00 2001 From: Henning Geinitz Date: Sat, 22 Feb 2003 15:45:51 +0000 Subject: [PATCH] Call sanei_usb_init only once. --- ChangeLog | 1 + sanei/sanei_usb.c | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 67b3785c4..55c9d9cf8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -9,6 +9,7 @@ in sane_init to avoid segmentation faults when sane_init/sane_exit is run more than once. * doc/descriptions-external/ibm.desc: Add Ricoh IS-420. + * sanei/sanei_usb.c: Call sanei_usb_init only once. 2003-02-20 Henning Meier-Geinitz diff --git a/sanei/sanei_usb.c b/sanei/sanei_usb.c index 6cb3d32fd..efe7c9e43 100644 --- a/sanei/sanei_usb.c +++ b/sanei/sanei_usb.c @@ -129,6 +129,7 @@ struct ctrlmsg_ioctl cmsg; #endif /* __linux__ */ +static SANE_Bool inited = SANE_FALSE; static void kernel_get_vendor_product (int fd, int *vendorID, int *productID) @@ -173,6 +174,11 @@ sanei_usb_init (void) struct usb_device *dev; #endif /* HAVE_LIBUSB */ + if (inited) + return SANE_STATUS_GOOD; + + inited = SANE_TRUE; + DBG_INIT (); memset (devices, 0, sizeof (devices)); @@ -213,7 +219,7 @@ sanei_usb_init (void) fd = open (devname, O_RDWR); if (fd < 0) { - DBG(5, "sanei_usb_init: couldn't open %s: %s\n", devname, + DBG (5, "sanei_usb_init: couldn't open %s: %s\n", devname, strerror (errno)); continue; }