summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Waugh <twaugh@redhat.com>2016-08-09 18:11:30 +0200
committerDidier Raboud <odyx@debian.org>2018-06-11 19:26:52 +0200
commitc12301c662bafd89fe50b70de6c5162a8b8113ef (patch)
tree3a5b2d9eeae79ffcbe498a44fca442953d5c39bf
parentbbc3507a260d29db3fc5601826f33c10f9dccd1e (diff)
Let the "snmp" backend also use the manufacturer-specific
MIBs of HP and Ricoh to obtain the device IDs of network-connected printers. This way we get more reliable information about make and model and in addition the supported page description languages, which allow to identify whether an optional PostScript add-on is installed or for an unsupported printer which generic PPD is the best choice (requested by Ricoh). Bug: https://www.cups.org/str.php?L3552 Last-Update: 2015-02-10 Patch-Name: cups-snmp-oids-device-id-hp-ricoh.patch
-rw-r--r--backend/snmp.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/backend/snmp.c b/backend/snmp.c
index e66edc980..a13562680 100644
--- a/backend/snmp.c
+++ b/backend/snmp.c
@@ -159,6 +159,8 @@ static const int UriOID[] = { CUPS_OID_ppmPortServiceNameOrURI, 1, 1, -1 };
static const int LexmarkProductOID[] = { 1,3,6,1,4,1,641,2,1,2,1,2,1,-1 };
static const int LexmarkProductOID2[] = { 1,3,6,1,4,1,674,10898,100,2,1,2,1,2,1,-1 };
static const int LexmarkDeviceIdOID[] = { 1,3,6,1,4,1,641,2,1,2,1,3,1,-1 };
+static const int HPDeviceIdOID[] = { 1,3,6,1,4,1,11,2,3,9,1,1,7,0,-1 };
+static const int RicohDeviceIdOID[] = { 1,3,6,1,4,1,367,3,2,1,1,1,11,0,-1 };
static const int XeroxProductOID[] = { 1,3,6,1,4,1,128,2,1,3,1,2,0,-1 };
static cups_array_t *DeviceURIs = NULL;
static int HostNameLookups = 0;
@@ -975,8 +977,14 @@ read_snmp_response(int fd) /* I - SNMP socket file descriptor */
packet.community, CUPS_ASN1_GET_REQUEST,
DEVICE_ID, LexmarkDeviceIdOID);
_cupsSNMPWrite(fd, &(packet.address), CUPS_SNMP_VERSION_1,
+ packet.community, CUPS_ASN1_GET_REQUEST,
+ DEVICE_ID, RicohDeviceIdOID);
+ _cupsSNMPWrite(fd, &(packet.address), CUPS_SNMP_VERSION_1,
packet.community, CUPS_ASN1_GET_REQUEST,
DEVICE_PRODUCT, XeroxProductOID);
+ _cupsSNMPWrite(fd, &(packet.address), CUPS_SNMP_VERSION_1,
+ packet.community, CUPS_ASN1_GET_REQUEST,
+ DEVICE_ID, HPDeviceIdOID);
break;
case DEVICE_DESCRIPTION :