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 +8 -0
- package/example/mib-parser.js +1 -1
- package/index.js +17 -6
- package/lib/mib.js +4 -3
- package/package.json +1 -1
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>
|
package/example/mib-parser.js
CHANGED
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
|
-
|
663
|
-
|
664
|
-
|
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
|
693
|
+
return true;
|
683
694
|
}
|
684
695
|
}
|
685
696
|
|
package/lib/mib.js
CHANGED
@@ -1,6 +1,7 @@
|
|
1
|
-
|
1
|
+
const fs = require('fs');
|
2
|
+
const path = require('path');
|
2
3
|
|
3
|
-
|
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(
|
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);
|