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-08 15:06:27 +0200
commitee092fd293194a089cf184cea39f6f4a34ede080 (patch)
tree2639385f9b330c4ab24b5097d1ebe684b05b9464
parent7c40803880a62a7d10dbd07947da656fc46e1747 (diff)
Let the "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 allow 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 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 66ac884c6..9572822a8 100644
--- a/backend/snmp.c
+++ b/backend/snmp.c
@@ -154,6 +154,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;
@@ -970,8 +972,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 :