summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Waugh <twaugh@redhat.com>2016-08-09 18:11:30 +0200
committerDidier Raboud <odyx@debian.org>2018-12-14 12:47:01 +0100
commit3f8584b5142fccf1a495dc1d1e6ab66248a3f6a3 (patch)
tree9a85d73dd2edd4ec87a2fc5cb64a77c604b8785c
parent93864a81b630172c7d8162394c0fc9d2a2cb7f78 (diff)
Let snmp backend also use 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 allows one 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
-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 :