net-snmp 3.15.1 → 3.15.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -15,6 +15,7 @@
15
15
  "args": [
16
16
  "-v", "2c",
17
17
  "-c", "public",
18
+ "-s", "5678",
18
19
  "127.0.0.1",
19
20
  "1.3.6.1.2.1.31.1.1.1.6.1"
20
21
  ]
package/README.md CHANGED
@@ -3420,6 +3420,10 @@ Example programs are included under the module's `example` directory.
3420
3420
 
3421
3421
  * Fix bundler failure due to unnecessary string length assignment
3422
3422
 
3423
+ ## Version 3.15.2 - 03/12/2024
3424
+
3425
+ * Change return of non-existing OIDs under table from NoSuchObject to NoSuchInstance
3426
+
3423
3427
  # License
3424
3428
 
3425
3429
  Copyright (c) 2020 Mark Abrahams <mark@abrahams.co.nz>
@@ -9,6 +9,7 @@ var user;
9
9
  var session;
10
10
  var nonRepeaters;
11
11
  var maxRepetitions;
12
+ var sourcePort;
12
13
  var oids;
13
14
  var varbinds;
14
15
  var columns;
@@ -44,6 +45,7 @@ if ( snmpOptions.version == snmp.Version3 ) {
44
45
 
45
46
  nonRepeaters = options.o;
46
47
  maxRepetitions = options.r;
48
+ sourcePort = options.s;
47
49
 
48
50
  if (options._.length < 2) {
49
51
  console.log ("usage: " + process.argv[1] + " [<options>] <target> <oid>");
@@ -77,6 +79,8 @@ if ( command.includes('snmp-trap') || command.includes('snmp-inform') || command
77
79
  snmpOptions.port = options.p;
78
80
  }
79
81
 
82
+ snmpOptions.sourcePort = sourcePort;
83
+
80
84
  if ( snmpOptions.version == snmp.Version3 ) {
81
85
  session = snmp.createV3Session (target, user, snmpOptions);
82
86
  } else {
@@ -18,4 +18,9 @@ session.get (oids, function (error, varbinds) {
18
18
  console.log (varbinds[i].oid + "|" + varbinds[i].value);
19
19
  }
20
20
  }
21
+ session.close();
22
+ });
23
+
24
+ session.on("error", function (error) {
25
+ console.error (error.toString ());
21
26
  });
package/index.js CHANGED
@@ -4493,6 +4493,18 @@ Mib.prototype.deleteTableRow = function (table, rowIndex) {
4493
4493
  return true;
4494
4494
  };
4495
4495
 
4496
+ Mib.prototype.getAncestorProviderFromOid = function (oid) {
4497
+ const address = Mib.convertOidToAddress (oid);
4498
+ for ( let i = address.length - 1 ; i >= 0 ; i-- ) {
4499
+ const oidToCheck = address.slice(0, i).join('.');
4500
+ const provider = this.providersByOid[oidToCheck];
4501
+ if ( provider ) {
4502
+ return provider;
4503
+ }
4504
+ }
4505
+ return null;
4506
+ };
4507
+
4496
4508
  Mib.prototype.dump = function (options) {
4497
4509
  if ( ! options ) {
4498
4510
  options = {};
@@ -4993,13 +5005,24 @@ Agent.prototype.request = function (socket, requestMessage, rinfo) {
4993
5005
  operation: requestPdu.type,
4994
5006
  oid: requestPdu.varbinds[i].oid
4995
5007
  });
4996
- handlers[i] = function getNsoHandler (mibRequestForNso) {
4997
- mibRequestForNso.done ({
4998
- errorStatus: ErrorStatus.NoError,
4999
- type: ObjectType.NoSuchObject,
5000
- value: null
5001
- });
5002
- };
5008
+ const ancestorProvider = this.mib.getAncestorProviderFromOid(requestPdu.varbinds[i].oid);
5009
+ if ( ancestorProvider ) {
5010
+ handlers[i] = function getNsiHandler (mibRequestForNsi) {
5011
+ mibRequestForNsi.done ({
5012
+ errorStatus: ErrorStatus.NoError,
5013
+ type: ObjectType.NoSuchInstance,
5014
+ value: null
5015
+ });
5016
+ };
5017
+ } else {
5018
+ handlers[i] = function getNsoHandler (mibRequestForNso) {
5019
+ mibRequestForNso.done ({
5020
+ errorStatus: ErrorStatus.NoError,
5021
+ type: ObjectType.NoSuchObject,
5022
+ value: null
5023
+ });
5024
+ };
5025
+ }
5003
5026
  } else {
5004
5027
  providerNode = this.mib.getProviderNodeForInstance (instanceNode);
5005
5028
  if ( ! providerNode || instanceNode.value === undefined ) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "net-snmp",
3
- "version": "3.15.1",
3
+ "version": "3.15.2",
4
4
  "description": "JavaScript implementation of the Simple Network Management Protocol (SNMP)",
5
5
  "main": "index.js",
6
6
  "directories": {