diff options
author | Tim Waugh <twaugh@redhat.com> | 2016-08-09 18:11:30 +0200 |
---|---|---|
committer | Didier Raboud <odyx@debian.org> | 2018-06-11 19:26:52 +0200 |
commit | c12301c662bafd89fe50b70de6c5162a8b8113ef (patch) | |
tree | 3a5b2d9eeae79ffcbe498a44fca442953d5c39bf | |
parent | bbc3507a260d29db3fc5601826f33c10f9dccd1e (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.c | 8 |
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 : |