diff -up hplip-3.11.10/scan/sane/hpaio.c~ hplip-3.11.10/scan/sane/hpaio.c --- hplip-3.11.10/scan/sane/hpaio.c~ 2011-10-02 04:04:48.000000000 +0100 +++ hplip-3.11.10/scan/sane/hpaio.c 2011-10-20 16:00:38.016534755 +0100 @@ -272,25 +272,28 @@ static int DevDiscovery(int localOnly) } } - /* Ignore localOnly flag (used by saned) and always look for network all-in-one scan devices (defined by cups). */ - cnt = GetCupsPrinters(&cups_printer); - for (i=0; i<cnt; i++) + /* Check localOnly flag (used by saned) to decide whether to look for network all-in-one scan devices (defined by cups). */ + if (!localOnly) { - hpmud_query_model(cups_printer[i], &ma); - if (ma.scantype > 0) - { + cnt = GetCupsPrinters(&cups_printer); + for (i=0; i<cnt; i++) + { + hpmud_query_model(cups_printer[i], &ma); + if (ma.scantype > 0) + { hpmud_get_uri_model(cups_printer[i], model, sizeof(model)); AddDeviceList(cups_printer[i], model, &DeviceList); total++; - } - else - { + } + else + { DBG(6,"unsupported scantype=%d %s\n", ma.scantype, cups_printer[i]); - } - free(cups_printer[i]); + } + free(cups_printer[i]); + } + if (cups_printer) + free(cups_printer); } - if (cups_printer) - free(cups_printer); bugout: return total;