net-snmp 3.16.1 → 3.17.0

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.
package/README.md CHANGED
@@ -3436,6 +3436,10 @@ Example programs are included under the module's `example` directory.
3436
3436
 
3437
3437
  * Fix loading of MIB directory paths with periods
3438
3438
 
3439
+ ## Version 3.17.0 - 01/01/2025
3440
+
3441
+ * Relax validation of unknown object types
3442
+
3439
3443
  # License
3440
3444
 
3441
3445
  Copyright (c) 2020 Mark Abrahams <mark@abrahams.co.nz>
@@ -8,7 +8,7 @@ var providers;
8
8
  var mibDir = '/var/tmp/mibs/';
9
9
 
10
10
  var counter64 = function (num) {
11
- var buf = Buffer.alloc (4);
11
+ var buf = Buffer.alloc (8);
12
12
  buf.writeUInt32BE (num);
13
13
  return buf;
14
14
  };
@@ -57,15 +57,15 @@ var ifEntryRow1 = mib.getTableRowCells ("ifEntry", [2]);
57
57
 
58
58
  // ifXEntry
59
59
  // AUGMENTS ifEntry - meaning a single integer foreign key
60
- // mib.addTableRow ("ifXEntry", [1, "eth0", 10, 2, 20, 4, counter64(1000), counter64(100), counter64(50), counter64(20),
61
- // counter64(2000), counter64(200), counter64(100), counter64(40), 1, 1000, 0, 1, "myeth0", 10]);
62
- // var ifXEntryRow1 = mib.getTableRowCells ("ifXEntry", [1]);
60
+ mib.addTableRow ("ifXEntry", [1, "eth0", 10, 2, 20, 4, counter64(1000), counter64(100), counter64(50), counter64(20),
61
+ counter64(2000), counter64(200), counter64(100), counter64(40), 1, 1000, 0, 1, "myeth0", 10]);
62
+ var ifXEntryRow1 = mib.getTableRowCells ("ifXEntry", [1]);
63
63
  // console.log (ifXEntryRow1);
64
- // var ifXEntryData1 = mib.getTableCells ("ifXEntry", false, false);
65
- // var ifXEntryData2 = mib.getTableCells ("ifXEntry", true, false);
66
- // var ifXEntryData3 = mib.getTableCells ("ifXEntry", false, true);
67
- // var ifXEntryData4 = mib.getTableCells ("ifXEntry", true, true);
68
- // mib.setTableSingleCell ("ifXEntry", 1, [1], "another0");
64
+ var ifXEntryData1 = mib.getTableCells ("ifXEntry", false, false);
65
+ var ifXEntryData2 = mib.getTableCells ("ifXEntry", true, false);
66
+ var ifXEntryData3 = mib.getTableCells ("ifXEntry", false, true);
67
+ var ifXEntryData4 = mib.getTableCells ("ifXEntry", true, true);
68
+ mib.setTableSingleCell ("ifXEntry", 1, [1], "another0");
69
69
 
70
70
  // ifStackEntry
71
71
  // Composite index - two local columns
package/index.js CHANGED
@@ -641,7 +641,8 @@ ObjectTypeUtil.isValid = function (type, value) {
641
641
  case ObjectType.Boolean: {
642
642
  return typeof value == "boolean";
643
643
  }
644
- case ObjectType.Integer: {
644
+ case ObjectType.Integer:
645
+ case ObjectType.Integer32: {
645
646
  // Allow strings that can be parsed as integers
646
647
  const parsed = Number(value);
647
648
  return ! isNaN (parsed) && Number.isInteger (parsed) && parsed >= MIN_SIGNED_INT32 && parsed <= MAX_SIGNED_INT32;
@@ -653,15 +654,24 @@ ObjectTypeUtil.isValid = function (type, value) {
653
654
  case ObjectType.OID: {
654
655
  return typeof value == "string" && value.match (/^([0-9]+)(\.[0-9]+)+$/);
655
656
  }
656
- case ObjectType.Counter: {
657
+ case ObjectType.Counter:
658
+ case ObjectType.Counter32:
659
+ case ObjectType.Gauge:
660
+ case ObjectType.Gauge32:
661
+ case ObjectType.Unsigned32: {
657
662
  // Allow strings that can be parsed as integers
658
663
  const parsed = Number(value);
659
664
  return ! isNaN (parsed) && Number.isInteger (parsed) && parsed >= 0 && parsed <= MAX_UNSIGNED_INT32;
660
665
  }
661
666
  case ObjectType.Counter64: {
662
- // Allow strings that can be parsed as integers
663
- const parsed = Number(value);
664
- return ! isNaN (parsed) && Number.isInteger (parsed) && parsed >= 0;
667
+ if ( value instanceof Buffer ) {
668
+ // Allow buffers of 8 bytes - should do further check to see if it translates to a valid integer
669
+ return value.length == 8;
670
+ } else {
671
+ // Allow strings that can be parsed as integers
672
+ const parsed = Number(value);
673
+ return ! isNaN (parsed) && Number.isInteger (parsed) && parsed >= 0;
674
+ }
665
675
  }
666
676
  case ObjectType.IpAddress: {
667
677
  const octets = value.split(".");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "net-snmp",
3
- "version": "3.16.1",
3
+ "version": "3.17.0",
4
4
  "description": "JavaScript implementation of the Simple Network Management Protocol (SNMP)",
5
5
  "main": "index.js",
6
6
  "directories": {