aboutsummaryrefslogtreecommitdiff
path: root/utils/sane-backends/files
diff options
context:
space:
mode:
Diffstat (limited to 'utils/sane-backends/files')
-rw-r--r--utils/sane-backends/files/etc/xinetd.d/sane-port (renamed from utils/sane-backends/files/xinet.d_sane-port)0
-rwxr-xr-xutils/sane-backends/files/usr/sbin/saned24
2 files changed, 24 insertions, 0 deletions
diff --git a/utils/sane-backends/files/xinet.d_sane-port b/utils/sane-backends/files/etc/xinetd.d/sane-port
index 9119973f6..9119973f6 100644
--- a/utils/sane-backends/files/xinet.d_sane-port
+++ b/utils/sane-backends/files/etc/xinetd.d/sane-port
diff --git a/utils/sane-backends/files/usr/sbin/saned b/utils/sane-backends/files/usr/sbin/saned
new file mode 100755
index 000000000..711492633
--- /dev/null
+++ b/utils/sane-backends/files/usr/sbin/saned
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+usblp_driver="/sys/bus/usb/drivers/usblp"
+
+inuse=""
+if [ -e /sys/bus/usb/devices ]; then
+ for usbdev_driver in /sys/bus/usb/devices/*/driver; do
+ [ -e "$usbdev_driver" ] || continue
+ [ "$(readlink -f "$usbdev_driver")" = "$usblp_driver" ] || continue
+ usbdev="${usbdev_driver%/*}"
+ inuse="$inuse ${usbdev##*/}"
+ done
+fi
+
+/usr/lib/sane/saned "$@"
+err=$?
+
+for usbdev in $inuse; do
+ [ -e "/sys/bus/usb/devices/$usbdev/driver" ] && continue
+ logger -t saned "binding device $usbdev back to usblp..."
+ printf '%s' "$usbdev" > "$usblp_driver/bind"
+done
+
+exit $err