diff options
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-x | utils/sane-backends/files/usr/sbin/saned | 24 |
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 |