net-snmp 3.16.0 → 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
@@ -3432,6 +3432,14 @@ Example programs are included under the module's `example` directory.
3432
3432
 
3433
3433
  * Add MIB object validation to set/add MIB API calls
3434
3434
 
3435
+ ## Version 3.16.1 - 01/01/2025
3436
+
3437
+ * Fix loading of MIB directory paths with periods
3438
+
3439
+ ## Version 3.17.0 - 01/01/2025
3440
+
3441
+ * Relax validation of unknown object types
3442
+
3435
3443
  # License
3436
3444
 
3437
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
  };
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(".");
@@ -678,8 +688,9 @@ ObjectTypeUtil.isValid = function (type, value) {
678
688
  }
679
689
  return true;
680
690
  }
691
+ // return true for all other types until we are certain all object types are covered with specific rules
681
692
  default: {
682
- return false;
693
+ return true;
683
694
  }
684
695
  }
685
696
 
package/lib/mib.js CHANGED
@@ -1,6 +1,7 @@
1
- var fs = require('fs');
1
+ const fs = require('fs');
2
+ const path = require('path');
2
3
 
3
- var MIB = function (dir) {
4
+ const MIB = function (dir) {
4
5
 
5
6
  var initializeBuffer = function (buffer) {
6
7
  return Object.assign(buffer, {
@@ -127,7 +128,7 @@ var MIB = function (dir) {
127
128
  }
128
129
  },
129
130
  Import: function (FileName) {
130
- this.ParseModule(FileName.split('/')[FileName.split('/').length - 1].split('.')[0], fs.readFileSync(FileName).toString());
131
+ this.ParseModule(path.basename(FileName, path.extname(FileName)), fs.readFileSync(FileName).toString());
131
132
  },
132
133
  ParseModule: function (FileName, Contents) {
133
134
  initializeBuffer(this.CharBuffer);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "net-snmp",
3
- "version": "3.16.0",
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": {