To me 'local' means something whereby only the host computer has direct access, so USB, Thunderbolt, RS232 etc. Other computers would have to access the host computer in some way first of all.

Anything that involves communications that can be seen (without specialist test equipment eg USB packet sniffer) by another computer other than the host eg Ethernet, WiFi is not local. Alternatively a device is remote if it is visible to two or more computers at the same time.

Andrew

On 12/11/2019 09:06, Olaf Meeuwissen wrote:
Hi list!

In GitLab issues #130 and #141 we've run into something interesting ;-)

  #130: https://gitlab.com/sane-project/backends/issues/130
  #141: https://gitlab.com/sane-project/backends/issues/141

Discussing what `sane_get_devices()` should be considered `local_only`,
we are no longer sure what is and is not local :-o

Anyone care to chime in with opinions and arguments substantiating them?

FWIW, the SANE Standard, in section 4.3.3 sane_get_devices, has the
following to say:

  4.3.3 sane_get_devices

  This function can be used to query the list of devices that are
  available. If the function executes successfully, it stores a pointer
  to a `NULL` terminated array of pointers to `SANE_Device` structures
  in `*device_list`. The returned list is guaranteed to remain unchanged
  and valid until (a) another call to this function is performed or (b)
  a call to `sane_exit()` is performed. This function can be called
  repeatedly to detect when new devices become available. If argument
  `local_only` is true, only local devices are returned (devices
  directly attached to the machine that SANE is running on). If it is
  false, the device list includes all remote devices that are accessible
  to the SANE library.

     SANE_Status sane_get_devices (const SANE_Device *** device_list,
                                   SANE_Bool local_only);

  This function may fail with `SANE_STATUS_NO_MEM` if an insufficient
  amount of memory is available.

     **Backend Implementation Note**

     SANE does not require that this function is called before a
     `sane_open()` call is performed. A device name may be specified
     explicitly by a user which would make it unnecessary and
     undesirable to call this function first.

Hope this will shed some light in our "darkness" ;-),
--
Olaf Meeuwissen, LPIC-2            FSF Associate Member since 2004-01-27
  GnuPG key: F84A2DD9/B3C0 2F47 EA19 64F4 9F13  F43E B8A4 A88A F84A 2DD9
  Support Free Software                        https://my.fsf.org/donate
  Join the Free Software Foundation              https://my.fsf.org/join



Reply via email to