whatap 0.4.78 → 0.4.80
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/.vscode/keep-context.json +3 -3
- package/README.md +51 -51
- package/bindings/darwin/x64/whatap.node +0 -0
- package/bindings/linux/ia32/whatap.node +0 -0
- package/bindings/linux/x64/whatap.node +0 -0
- package/help.txt +10 -10
- package/index.js +8 -8
- package/lib/conf/conf-sys-mon.js +100 -100
- package/lib/conf/config-default.js +238 -238
- package/lib/conf/configure.js +423 -423
- package/lib/conf/license.js +41 -41
- package/lib/control/cmd-config.js +23 -23
- package/lib/control/control-handler.js +344 -344
- package/lib/control/packagectr-helper.js +149 -149
- package/lib/core/agent.js +329 -328
- package/lib/core/interceptor.js +142 -142
- package/lib/core/request-agent.js +26 -26
- package/lib/counter/counter-manager.js +127 -127
- package/lib/counter/meter/meter-activex.js +66 -66
- package/lib/counter/meter/meter-httpc.js +57 -57
- package/lib/counter/meter/meter-resource.js +9 -9
- package/lib/counter/meter/meter-service.js +167 -167
- package/lib/counter/meter/meter-socket.io.js +50 -50
- package/lib/counter/meter/meter-sql.js +70 -70
- package/lib/counter/meter/meter-users.js +57 -57
- package/lib/counter/meter.js +183 -183
- package/lib/counter/task/activetransaction.js +93 -93
- package/lib/counter/task/agentinfo.js +105 -105
- package/lib/counter/task/counter-task.js +9 -9
- package/lib/counter/task/gcstat.js +34 -34
- package/lib/counter/task/heapmem.js +24 -24
- package/lib/counter/task/httpc.js +75 -75
- package/lib/counter/task/proc-cpu.js +28 -28
- package/lib/counter/task/realtimeuser.js +30 -30
- package/lib/counter/task/res/systemECSTask.js +54 -54
- package/lib/counter/task/res/systemKubeTask.js +52 -52
- package/lib/counter/task/res/util/awsEcsClientThread.js +166 -166
- package/lib/counter/task/res/util/linuxProcStatUtil.js +13 -13
- package/lib/counter/task/res-sys-cpu.js +61 -61
- package/lib/counter/task/service.js +201 -201
- package/lib/counter/task/socketio.js +29 -29
- package/lib/counter/task/sql.js +104 -104
- package/lib/counter/task/systemperf.js +42 -42
- package/lib/data/datapack-sender.js +256 -256
- package/lib/data/dataprofile-agent.js +136 -136
- package/lib/data/datatext-agent.js +135 -135
- package/lib/data/event-level.js +15 -15
- package/lib/data/test.js +48 -48
- package/lib/env/constants.js +20 -20
- package/lib/kube/kube-client.js +143 -143
- package/lib/lang/text-types.js +58 -58
- package/lib/logger.js +319 -319
- package/lib/net/netflag.js +54 -54
- package/lib/net/paramdef.js +40 -40
- package/lib/net/receiver.js +65 -65
- package/lib/net/security-master.js +182 -173
- package/lib/net/sender.js +140 -140
- package/lib/net/tcp-return.js +17 -17
- package/lib/net/tcp-session.js +285 -285
- package/lib/net/tcpreq-client-proxy.js +69 -69
- package/lib/net/tcprequest-mgr.js +57 -57
- package/lib/observers/cluster-observer.js +21 -21
- package/lib/observers/express-observer.js +214 -214
- package/lib/observers/file-observer.js +184 -184
- package/lib/observers/global-observer.js +30 -30
- package/lib/observers/http-observer.js +704 -704
- package/lib/observers/maria-observer.js +382 -382
- package/lib/observers/memcached-observer.js +55 -55
- package/lib/observers/mongo-observer.js +262 -265
- package/lib/observers/mongodb-observer.js +197 -197
- package/lib/observers/mongoose-observer.js +83 -83
- package/lib/observers/mssql-observer.js +205 -205
- package/lib/observers/mysql-observer.js +436 -394
- package/lib/observers/net-observer.js +72 -72
- package/lib/observers/pgsql-observer.js +295 -295
- package/lib/observers/process-observer.js +25 -25
- package/lib/observers/promise-observer.js +31 -31
- package/lib/observers/redis-observer.js +156 -109
- package/lib/observers/schedule-observer.js +66 -66
- package/lib/observers/socket.io-observer.js +54 -54
- package/lib/observers/stream-observer.js +19 -19
- package/lib/observers/thrift-observer.js +196 -196
- package/lib/pack/activestack-pack.js +54 -54
- package/lib/pack/counter-pack.js +649 -649
- package/lib/pack/errorsnap-pack.js +68 -68
- package/lib/pack/event-pack.js +53 -53
- package/lib/pack/hitmap-pack.js +62 -62
- package/lib/pack/hitmap-pack1.js +146 -146
- package/lib/pack/netstat.js +14 -14
- package/lib/pack/pack.js +49 -49
- package/lib/pack/packenum.js +60 -60
- package/lib/pack/param-pack.js +213 -213
- package/lib/pack/profile-pack.js +48 -48
- package/lib/pack/realtimeuser-pack.js +40 -40
- package/lib/pack/stat-general-pack.js +95 -95
- package/lib/pack/staterror-pack.js +119 -119
- package/lib/pack/stathttpc-pack.js +66 -66
- package/lib/pack/stathttpc-rec.js +78 -78
- package/lib/pack/statremote-pack.js +45 -45
- package/lib/pack/statservice-pack.js +62 -62
- package/lib/pack/statservice-pack1.js +87 -87
- package/lib/pack/statservice-rec.js +292 -292
- package/lib/pack/statservice-rec_dep.js +151 -151
- package/lib/pack/statsql-pack.js +69 -69
- package/lib/pack/statsql-rec.js +100 -100
- package/lib/pack/statuseragent-pack.js +43 -43
- package/lib/pack/tagcount-pack.js +398 -398
- package/lib/pack/tagctr.js +14 -14
- package/lib/pack/text-pack.js +49 -49
- package/lib/pack/time-count.js +25 -25
- package/lib/pack/websocket.js +14 -14
- package/lib/plugin/plugin-loadermanager.js +56 -56
- package/lib/plugin/plugin.js +75 -75
- package/lib/requestlog.js +326 -326
- package/lib/service/tx-record.js +288 -284
- package/lib/stat/stat-error.js +116 -116
- package/lib/stat/stat-httpc.js +97 -97
- package/lib/stat/stat-remoteip.js +46 -46
- package/lib/stat/stat-sql.js +112 -112
- package/lib/stat/stat-tranx.js +57 -57
- package/lib/stat/stat-tx-caller.js +159 -159
- package/lib/stat/stat-tx-domain.js +110 -110
- package/lib/stat/stat-tx-referer.js +111 -111
- package/lib/stat/stat-useragent.js +48 -48
- package/lib/stat/timingsender.js +72 -72
- package/lib/step/activestack-step.js +37 -37
- package/lib/step/dbc-step.js +35 -35
- package/lib/step/http-stepx.js +66 -66
- package/lib/step/message-step.js +39 -39
- package/lib/step/method-stepx.js +46 -46
- package/lib/step/resultset-step.js +39 -39
- package/lib/step/securemsg-step.js +43 -43
- package/lib/step/socket-step.js +46 -46
- package/lib/step/sql-stepx.js +67 -67
- package/lib/step/sqlxtype.js +15 -15
- package/lib/step/step.js +65 -65
- package/lib/step/stepenum.js +53 -53
- package/lib/trace/local-context.js +13 -13
- package/lib/trace/parsed-sql.js +13 -13
- package/lib/trace/profile-collector.js +70 -70
- package/lib/trace/serviceurl-pattern-detector.js +117 -117
- package/lib/trace/trace-context-manager.js +195 -195
- package/lib/trace/trace-context.js +134 -134
- package/lib/util/anylist.js +102 -102
- package/lib/util/array-util.js +100 -100
- package/lib/util/bitutil.js +27 -27
- package/lib/util/cardinality/hyperloglog.js +105 -105
- package/lib/util/cardinality/murmurhash.js +31 -31
- package/lib/util/cardinality/registerset.js +74 -74
- package/lib/util/config-util.js +17 -17
- package/lib/util/cypher.js +89 -89
- package/lib/util/datetimehelper.js +237 -229
- package/lib/util/dateutil.js +110 -106
- package/lib/util/errordata.js +20 -20
- package/lib/util/escape-literal-sql.js +342 -342
- package/lib/util/hashutil2.js +126 -126
- package/lib/util/hexa32.js +57 -57
- package/lib/util/index.js +78 -78
- package/lib/util/intint-map.js +47 -47
- package/lib/util/intkey-linkedmap.js +26 -26
- package/lib/util/intkey-map.js +25 -25
- package/lib/util/intset.js +82 -82
- package/lib/util/iputil.js +119 -119
- package/lib/util/iputil_x.js +526 -526
- package/lib/util/keygen.js +17 -17
- package/lib/util/kube-util.js +72 -72
- package/lib/util/longint-linkedmap.js +35 -35
- package/lib/util/longkey-linkedmap.js +25 -25
- package/lib/util/longlong-linkedmap.js +37 -37
- package/lib/util/nodeutil.js +67 -67
- package/lib/util/oidutil.js +96 -93
- package/lib/util/paramsecurity.js +78 -78
- package/lib/util/pathtree.js +172 -172
- package/lib/util/pre-process.js +13 -13
- package/lib/util/process-seq.js +165 -165
- package/lib/util/property-util.js +35 -35
- package/lib/util/request-queue.js +42 -42
- package/lib/util/requestdouble-queue.js +72 -72
- package/lib/util/resourceprofile.js +156 -156
- package/lib/util/seedrandom.js +242 -242
- package/lib/util/stop-watch.js +29 -29
- package/lib/util/string-util.js +9 -9
- package/lib/util/stringkey-linkedmap.js +28 -28
- package/lib/util/stringnum-linkedmap.js +31 -31
- package/lib/util/stringset.js +65 -65
- package/lib/util/system-util.js +9 -9
- package/lib/util/userid-util.js +57 -57
- package/lib/util/utils.js +67 -67
- package/lib/value/blob-value.js +61 -61
- package/lib/value/boolean-value.js +51 -51
- package/lib/value/decimal-value.js +71 -71
- package/lib/value/double-summary.js +105 -105
- package/lib/value/double-value.js +50 -50
- package/lib/value/float-array.js +59 -59
- package/lib/value/float-value.js +64 -64
- package/lib/value/int-array.js +59 -59
- package/lib/value/int-map-value.js +151 -151
- package/lib/value/int-value.js +64 -64
- package/lib/value/ip4-value.js +83 -83
- package/lib/value/list-value.js +136 -136
- package/lib/value/long-array.js +59 -59
- package/lib/value/long-summary.js +105 -105
- package/lib/value/map-value.js +175 -175
- package/lib/value/metric-value.js +157 -157
- package/lib/value/null-value.js +42 -42
- package/lib/value/number-value.js +34 -34
- package/lib/value/summary-value.js +29 -29
- package/lib/value/text-array.js +117 -117
- package/lib/value/text-value.js +59 -59
- package/lib/value/texthash-value.js +49 -49
- package/lib/value/value.js +14 -14
- package/lib/value/valueenum.js +99 -99
- package/logs/whatap-20230906.log +54 -0
- package/package.json +28 -28
- package/whatap.conf +1 -1
- package/logs/whatap-20230616.log +0 -13
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2016 the WHATAP project authors. All rights reserved.
|
|
3
|
-
* Use of this source code is governed by a license that
|
|
4
|
-
* can be found in the LICENSE file.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
var LinkedMap = require('./linkedmap'),
|
|
8
|
-
Long = require('long');
|
|
9
|
-
|
|
10
|
-
function IntKeyLinkedMap(initCapacity, loadFactor) {
|
|
11
|
-
LinkedMap.call(this, initCapacity, loadFactor);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
IntKeyLinkedMap.prototype = new LinkedMap();
|
|
15
|
-
IntKeyLinkedMap.prototype.constructor = IntKeyLinkedMap;
|
|
16
|
-
|
|
17
|
-
IntKeyLinkedMap.prototype.hash = function (key /*int*/) {
|
|
18
|
-
return Math.abs(key);
|
|
19
|
-
};
|
|
20
|
-
IntKeyLinkedMap.prototype.equals = function (key1, key2) {
|
|
21
|
-
return key1===key2;
|
|
22
|
-
};
|
|
23
|
-
IntKeyLinkedMap.prototype.sum = function (value1, value2) {
|
|
24
|
-
return value2;
|
|
25
|
-
};
|
|
26
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2016 the WHATAP project authors. All rights reserved.
|
|
3
|
+
* Use of this source code is governed by a license that
|
|
4
|
+
* can be found in the LICENSE file.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
var LinkedMap = require('./linkedmap'),
|
|
8
|
+
Long = require('long');
|
|
9
|
+
|
|
10
|
+
function IntKeyLinkedMap(initCapacity, loadFactor) {
|
|
11
|
+
LinkedMap.call(this, initCapacity, loadFactor);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
IntKeyLinkedMap.prototype = new LinkedMap();
|
|
15
|
+
IntKeyLinkedMap.prototype.constructor = IntKeyLinkedMap;
|
|
16
|
+
|
|
17
|
+
IntKeyLinkedMap.prototype.hash = function (key /*int*/) {
|
|
18
|
+
return Math.abs(key);
|
|
19
|
+
};
|
|
20
|
+
IntKeyLinkedMap.prototype.equals = function (key1, key2) {
|
|
21
|
+
return key1===key2;
|
|
22
|
+
};
|
|
23
|
+
IntKeyLinkedMap.prototype.sum = function (value1, value2) {
|
|
24
|
+
return value2;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
27
|
module.exports = IntKeyLinkedMap;
|
package/lib/util/intkey-map.js
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2016 the WHATAP project authors. All rights reserved.
|
|
3
|
-
* Use of this source code is governed by a license that
|
|
4
|
-
* can be found in the LICENSE file.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
var LinkedMap = require('./linkedmap');
|
|
8
|
-
|
|
9
|
-
function IntKeyMap(initCapacity, loadFactor) {
|
|
10
|
-
LinkedMap.call(this, initCapacity, loadFactor);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
IntKeyMap.prototype = new LinkedMap();
|
|
14
|
-
IntKeyMap.prototype.constructor = IntKeyMap;
|
|
15
|
-
IntKeyMap.prototype.create = function () {throw new Error("create method not implemented!!")};
|
|
16
|
-
|
|
17
|
-
IntKeyMap.prototype.hash = function (key /*int*/) {
|
|
18
|
-
return Math.abs(key);
|
|
19
|
-
};
|
|
20
|
-
IntKeyMap.prototype.equals = function (key1, key2) {
|
|
21
|
-
return key1===key2;
|
|
22
|
-
};
|
|
23
|
-
IntKeyMap.prototype.sum = function (value1, value2) {
|
|
24
|
-
return value1+value2;
|
|
25
|
-
};
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2016 the WHATAP project authors. All rights reserved.
|
|
3
|
+
* Use of this source code is governed by a license that
|
|
4
|
+
* can be found in the LICENSE file.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
var LinkedMap = require('./linkedmap');
|
|
8
|
+
|
|
9
|
+
function IntKeyMap(initCapacity, loadFactor) {
|
|
10
|
+
LinkedMap.call(this, initCapacity, loadFactor);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
IntKeyMap.prototype = new LinkedMap();
|
|
14
|
+
IntKeyMap.prototype.constructor = IntKeyMap;
|
|
15
|
+
IntKeyMap.prototype.create = function () {throw new Error("create method not implemented!!")};
|
|
16
|
+
|
|
17
|
+
IntKeyMap.prototype.hash = function (key /*int*/) {
|
|
18
|
+
return Math.abs(key);
|
|
19
|
+
};
|
|
20
|
+
IntKeyMap.prototype.equals = function (key1, key2) {
|
|
21
|
+
return key1===key2;
|
|
22
|
+
};
|
|
23
|
+
IntKeyMap.prototype.sum = function (value1, value2) {
|
|
24
|
+
return value1+value2;
|
|
25
|
+
};
|
|
26
26
|
module.exports = IntKeyMap;
|
package/lib/util/intset.js
CHANGED
|
@@ -1,83 +1,83 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2016 the WHATAP project authors. All rights reserved.
|
|
3
|
-
* Use of this source code is governed by a license that
|
|
4
|
-
* can be found in the LICENSE file.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
var LinkedMap = require('./linkedmap');
|
|
8
|
-
|
|
9
|
-
function IntSet(initCapacity, loadFactor) {
|
|
10
|
-
LinkedMap.call(this, initCapacity, loadFactor);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
IntSet.prototype = new LinkedMap();
|
|
14
|
-
IntSet.prototype.constructor = IntSet;
|
|
15
|
-
|
|
16
|
-
IntSet.prototype.none = function () {
|
|
17
|
-
return 0;
|
|
18
|
-
};
|
|
19
|
-
IntSet.prototype.hash = function (key /*int*/) {
|
|
20
|
-
return Math.abs(key);
|
|
21
|
-
};
|
|
22
|
-
IntSet.prototype.equals = function (key1, key2) {
|
|
23
|
-
return key1===key2;
|
|
24
|
-
};
|
|
25
|
-
IntSet.prototype.sum = function (value1, value2) {
|
|
26
|
-
return value1+value2;
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
IntSet.prototype.add = function (key) {
|
|
30
|
-
return this._put(key, key, LinkedMap.MODE.LAST);
|
|
31
|
-
};
|
|
32
|
-
IntSet.prototype.put = function (key) {
|
|
33
|
-
return this._put(key, key, LinkedMap.MODE.LAST);
|
|
34
|
-
};
|
|
35
|
-
IntSet.prototype.putLast = function (key) {
|
|
36
|
-
return this._put(key, key, LinkedMap.MODE.FORCE_LAST);
|
|
37
|
-
};
|
|
38
|
-
IntSet.prototype.putFirst = function (key) {
|
|
39
|
-
return this._put(key, key, LinkedMap.MODE.FORCE_FIRST);
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
IntSet.prototype.hasKey = function (key) {
|
|
43
|
-
return this.containsKey(key);
|
|
44
|
-
};
|
|
45
|
-
IntSet.prototype.forEach=function(f){
|
|
46
|
-
var en = this.keys();
|
|
47
|
-
while(en.hasMoreElements()) {
|
|
48
|
-
var e = en.nextElement();
|
|
49
|
-
f(e);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
IntSet.prototype.toBytes = function (dout) {
|
|
53
|
-
dout.writeDecimal(this.size());
|
|
54
|
-
var en = this.keys();
|
|
55
|
-
while(en.hasMoreElements()) {
|
|
56
|
-
var e = en.nextElement();
|
|
57
|
-
dout.writeDecimal(e);
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
IntSet.prototype.toObject = function (din) {
|
|
61
|
-
var cnt = din.readDecNumber();
|
|
62
|
-
for (var i = 0; i < cnt; i++) {
|
|
63
|
-
var key = din.readDecNumber();
|
|
64
|
-
this.put(key);
|
|
65
|
-
}
|
|
66
|
-
return this;
|
|
67
|
-
};
|
|
68
|
-
IntSet.prototype.toString = function () {
|
|
69
|
-
var str = '';
|
|
70
|
-
var it = this.entries();
|
|
71
|
-
str += '{';
|
|
72
|
-
for(var i=0; it.hasMoreElements(); i++) {
|
|
73
|
-
var e = it.nextElement();
|
|
74
|
-
if(i > 0) {
|
|
75
|
-
str += ", ";
|
|
76
|
-
}
|
|
77
|
-
str += e.getKey();
|
|
78
|
-
}
|
|
79
|
-
str += "}";
|
|
80
|
-
return str;
|
|
81
|
-
};
|
|
82
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2016 the WHATAP project authors. All rights reserved.
|
|
3
|
+
* Use of this source code is governed by a license that
|
|
4
|
+
* can be found in the LICENSE file.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
var LinkedMap = require('./linkedmap');
|
|
8
|
+
|
|
9
|
+
function IntSet(initCapacity, loadFactor) {
|
|
10
|
+
LinkedMap.call(this, initCapacity, loadFactor);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
IntSet.prototype = new LinkedMap();
|
|
14
|
+
IntSet.prototype.constructor = IntSet;
|
|
15
|
+
|
|
16
|
+
IntSet.prototype.none = function () {
|
|
17
|
+
return 0;
|
|
18
|
+
};
|
|
19
|
+
IntSet.prototype.hash = function (key /*int*/) {
|
|
20
|
+
return Math.abs(key);
|
|
21
|
+
};
|
|
22
|
+
IntSet.prototype.equals = function (key1, key2) {
|
|
23
|
+
return key1===key2;
|
|
24
|
+
};
|
|
25
|
+
IntSet.prototype.sum = function (value1, value2) {
|
|
26
|
+
return value1+value2;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
IntSet.prototype.add = function (key) {
|
|
30
|
+
return this._put(key, key, LinkedMap.MODE.LAST);
|
|
31
|
+
};
|
|
32
|
+
IntSet.prototype.put = function (key) {
|
|
33
|
+
return this._put(key, key, LinkedMap.MODE.LAST);
|
|
34
|
+
};
|
|
35
|
+
IntSet.prototype.putLast = function (key) {
|
|
36
|
+
return this._put(key, key, LinkedMap.MODE.FORCE_LAST);
|
|
37
|
+
};
|
|
38
|
+
IntSet.prototype.putFirst = function (key) {
|
|
39
|
+
return this._put(key, key, LinkedMap.MODE.FORCE_FIRST);
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
IntSet.prototype.hasKey = function (key) {
|
|
43
|
+
return this.containsKey(key);
|
|
44
|
+
};
|
|
45
|
+
IntSet.prototype.forEach=function(f){
|
|
46
|
+
var en = this.keys();
|
|
47
|
+
while(en.hasMoreElements()) {
|
|
48
|
+
var e = en.nextElement();
|
|
49
|
+
f(e);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
IntSet.prototype.toBytes = function (dout) {
|
|
53
|
+
dout.writeDecimal(this.size());
|
|
54
|
+
var en = this.keys();
|
|
55
|
+
while(en.hasMoreElements()) {
|
|
56
|
+
var e = en.nextElement();
|
|
57
|
+
dout.writeDecimal(e);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
IntSet.prototype.toObject = function (din) {
|
|
61
|
+
var cnt = din.readDecNumber();
|
|
62
|
+
for (var i = 0; i < cnt; i++) {
|
|
63
|
+
var key = din.readDecNumber();
|
|
64
|
+
this.put(key);
|
|
65
|
+
}
|
|
66
|
+
return this;
|
|
67
|
+
};
|
|
68
|
+
IntSet.prototype.toString = function () {
|
|
69
|
+
var str = '';
|
|
70
|
+
var it = this.entries();
|
|
71
|
+
str += '{';
|
|
72
|
+
for(var i=0; it.hasMoreElements(); i++) {
|
|
73
|
+
var e = it.nextElement();
|
|
74
|
+
if(i > 0) {
|
|
75
|
+
str += ", ";
|
|
76
|
+
}
|
|
77
|
+
str += e.getKey();
|
|
78
|
+
}
|
|
79
|
+
str += "}";
|
|
80
|
+
return str;
|
|
81
|
+
};
|
|
82
|
+
|
|
83
83
|
module.exports = IntSet;
|
package/lib/util/iputil.js
CHANGED
|
@@ -1,120 +1,120 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2016 the WHATAP project authors. All rights reserved.
|
|
3
|
-
* Use of this source code is governed by a license that
|
|
4
|
-
* can be found in the LICENSE file.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
const empty = '0.0.0.0';
|
|
8
|
-
const emptyBytes = [0, 0, 0, 0];
|
|
9
|
-
const up10 = [1, 10, 100];
|
|
10
|
-
function wordToInt(w) {
|
|
11
|
-
var n = 0;
|
|
12
|
-
var k = Math.min(w.length, 3);
|
|
13
|
-
for (i = 0; i < k; i++) {
|
|
14
|
-
n += charToInt(w.charAt(i)) * up10[k - i - 1];
|
|
15
|
-
}
|
|
16
|
-
return n;
|
|
17
|
-
}
|
|
18
|
-
function charToInt(ch) {
|
|
19
|
-
switch (ch) {
|
|
20
|
-
case '0': return 0;
|
|
21
|
-
case '1': return 1;
|
|
22
|
-
case '2': return 2;
|
|
23
|
-
case '3': return 3;
|
|
24
|
-
case '4': return 4;
|
|
25
|
-
case '5': return 5;
|
|
26
|
-
case '6': return 6;
|
|
27
|
-
case '7': return 7;
|
|
28
|
-
case '8': return 8;
|
|
29
|
-
case '9': return 9;
|
|
30
|
-
default: return 0;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
function IPUtil() {
|
|
34
|
-
}
|
|
35
|
-
IPUtil.prototype.stringToBytes = function (ipStr) {
|
|
36
|
-
if(ipStr ===null || ipStr === undefined){
|
|
37
|
-
return emptyBytes;
|
|
38
|
-
}
|
|
39
|
-
var ipArr = ipStr.split(".");
|
|
40
|
-
if (ipArr.length < 4)
|
|
41
|
-
return emptyBytes;
|
|
42
|
-
|
|
43
|
-
var buf = [0,0,0,0];
|
|
44
|
-
buf[0] = wordToInt(ipArr[0]) & 0xFF;
|
|
45
|
-
buf[1] = wordToInt(ipArr[1]) & 0xFF;
|
|
46
|
-
buf[2] = wordToInt(ipArr[2]) & 0xFF;
|
|
47
|
-
buf[3] = wordToInt(ipArr[3]) & 0xFF;
|
|
48
|
-
return buf;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
IPUtil.prototype.stringToInt = function (ip) {
|
|
52
|
-
var b = this.stringToBytes(ip);
|
|
53
|
-
return this.bytesToInt(b);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
IPUtil.prototype.intToBytes = function (ipInt) {
|
|
57
|
-
var buf = new Array(4);
|
|
58
|
-
buf[0] = ((ipInt >>> 24) & 0xFF);
|
|
59
|
-
buf[1] = ((ipInt >>> 16) & 0xFF);
|
|
60
|
-
buf[2] = ((ipInt >>> 8) & 0xFF);
|
|
61
|
-
buf[3] = ((ipInt >>> 0) & 0xFF);
|
|
62
|
-
return buf;
|
|
63
|
-
}
|
|
64
|
-
IPUtil.prototype.intToString = function (ipInt) {
|
|
65
|
-
var buf = this.intToBytes(ipInt);
|
|
66
|
-
return this.bytesToString(buf);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
IPUtil.prototype.bytesToString = function (buff) {
|
|
70
|
-
if (buff == null)
|
|
71
|
-
return empty;
|
|
72
|
-
return buff[0] + '.' + buff[1] + '.' + buff[2] + '.' + buff[3];
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
IPUtil.prototype.bytesToInt = function (buf) {
|
|
76
|
-
if (buf == null || buf.length < 4)
|
|
77
|
-
return 0;
|
|
78
|
-
|
|
79
|
-
var ch1 = buf[0] & 0xff;
|
|
80
|
-
var ch2 = buf[1] & 0xff;
|
|
81
|
-
var ch3 = buf[2] & 0xff;
|
|
82
|
-
var ch4 = buf[3] & 0xff;
|
|
83
|
-
return ((ch1 << 24) + (ch2 << 16) + (ch3 << 8) + (ch4 << 0));
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
IPUtil.prototype.isOK = function (ip) {
|
|
87
|
-
try {
|
|
88
|
-
return ip != null && ip.length == 4;
|
|
89
|
-
} catch (e) {
|
|
90
|
-
return false;
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
IPUtil.prototype.checkIp4 = function (ip) {
|
|
94
|
-
if (ip == null || ip.length <= 3)
|
|
95
|
-
return empty;
|
|
96
|
-
if (ip.charAt(0) === ':') {
|
|
97
|
-
return ip.substring(ip.lastIndexOf(':') + 1);
|
|
98
|
-
}
|
|
99
|
-
return ip;
|
|
100
|
-
};
|
|
101
|
-
IPUtil.prototype.isNotLocal = function (ip) {
|
|
102
|
-
return this.isOK(ip) && (ip[0] & 0xff) != 127;
|
|
103
|
-
};
|
|
104
|
-
IPUtil.prototype.getIp = function () {
|
|
105
|
-
var interfaces = require('os').networkInterfaces();
|
|
106
|
-
var results = [];
|
|
107
|
-
Object
|
|
108
|
-
.keys(interfaces)
|
|
109
|
-
.map(function (key) {
|
|
110
|
-
results = results.concat(interfaces[key]);
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
results = results
|
|
114
|
-
.filter(function (iface) {
|
|
115
|
-
return iface.family === 'IPv4' && !iface.internal;
|
|
116
|
-
})
|
|
117
|
-
.map(function (iface) { return iface.address });
|
|
118
|
-
return (results[0] || "127.0.0.1");
|
|
119
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2016 the WHATAP project authors. All rights reserved.
|
|
3
|
+
* Use of this source code is governed by a license that
|
|
4
|
+
* can be found in the LICENSE file.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
const empty = '0.0.0.0';
|
|
8
|
+
const emptyBytes = [0, 0, 0, 0];
|
|
9
|
+
const up10 = [1, 10, 100];
|
|
10
|
+
function wordToInt(w) {
|
|
11
|
+
var n = 0;
|
|
12
|
+
var k = Math.min(w.length, 3);
|
|
13
|
+
for (i = 0; i < k; i++) {
|
|
14
|
+
n += charToInt(w.charAt(i)) * up10[k - i - 1];
|
|
15
|
+
}
|
|
16
|
+
return n;
|
|
17
|
+
}
|
|
18
|
+
function charToInt(ch) {
|
|
19
|
+
switch (ch) {
|
|
20
|
+
case '0': return 0;
|
|
21
|
+
case '1': return 1;
|
|
22
|
+
case '2': return 2;
|
|
23
|
+
case '3': return 3;
|
|
24
|
+
case '4': return 4;
|
|
25
|
+
case '5': return 5;
|
|
26
|
+
case '6': return 6;
|
|
27
|
+
case '7': return 7;
|
|
28
|
+
case '8': return 8;
|
|
29
|
+
case '9': return 9;
|
|
30
|
+
default: return 0;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function IPUtil() {
|
|
34
|
+
}
|
|
35
|
+
IPUtil.prototype.stringToBytes = function (ipStr) {
|
|
36
|
+
if(ipStr ===null || ipStr === undefined){
|
|
37
|
+
return emptyBytes;
|
|
38
|
+
}
|
|
39
|
+
var ipArr = ipStr.split(".");
|
|
40
|
+
if (ipArr.length < 4)
|
|
41
|
+
return emptyBytes;
|
|
42
|
+
|
|
43
|
+
var buf = [0,0,0,0];
|
|
44
|
+
buf[0] = wordToInt(ipArr[0]) & 0xFF;
|
|
45
|
+
buf[1] = wordToInt(ipArr[1]) & 0xFF;
|
|
46
|
+
buf[2] = wordToInt(ipArr[2]) & 0xFF;
|
|
47
|
+
buf[3] = wordToInt(ipArr[3]) & 0xFF;
|
|
48
|
+
return buf;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
IPUtil.prototype.stringToInt = function (ip) {
|
|
52
|
+
var b = this.stringToBytes(ip);
|
|
53
|
+
return this.bytesToInt(b);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
IPUtil.prototype.intToBytes = function (ipInt) {
|
|
57
|
+
var buf = new Array(4);
|
|
58
|
+
buf[0] = ((ipInt >>> 24) & 0xFF);
|
|
59
|
+
buf[1] = ((ipInt >>> 16) & 0xFF);
|
|
60
|
+
buf[2] = ((ipInt >>> 8) & 0xFF);
|
|
61
|
+
buf[3] = ((ipInt >>> 0) & 0xFF);
|
|
62
|
+
return buf;
|
|
63
|
+
}
|
|
64
|
+
IPUtil.prototype.intToString = function (ipInt) {
|
|
65
|
+
var buf = this.intToBytes(ipInt);
|
|
66
|
+
return this.bytesToString(buf);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
IPUtil.prototype.bytesToString = function (buff) {
|
|
70
|
+
if (buff == null)
|
|
71
|
+
return empty;
|
|
72
|
+
return buff[0] + '.' + buff[1] + '.' + buff[2] + '.' + buff[3];
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
IPUtil.prototype.bytesToInt = function (buf) {
|
|
76
|
+
if (buf == null || buf.length < 4)
|
|
77
|
+
return 0;
|
|
78
|
+
|
|
79
|
+
var ch1 = buf[0] & 0xff;
|
|
80
|
+
var ch2 = buf[1] & 0xff;
|
|
81
|
+
var ch3 = buf[2] & 0xff;
|
|
82
|
+
var ch4 = buf[3] & 0xff;
|
|
83
|
+
return ((ch1 << 24) + (ch2 << 16) + (ch3 << 8) + (ch4 << 0));
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
IPUtil.prototype.isOK = function (ip) {
|
|
87
|
+
try {
|
|
88
|
+
return ip != null && ip.length == 4;
|
|
89
|
+
} catch (e) {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
IPUtil.prototype.checkIp4 = function (ip) {
|
|
94
|
+
if (ip == null || ip.length <= 3)
|
|
95
|
+
return empty;
|
|
96
|
+
if (ip.charAt(0) === ':') {
|
|
97
|
+
return ip.substring(ip.lastIndexOf(':') + 1);
|
|
98
|
+
}
|
|
99
|
+
return ip;
|
|
100
|
+
};
|
|
101
|
+
IPUtil.prototype.isNotLocal = function (ip) {
|
|
102
|
+
return this.isOK(ip) && (ip[0] & 0xff) != 127;
|
|
103
|
+
};
|
|
104
|
+
IPUtil.prototype.getIp = function () {
|
|
105
|
+
var interfaces = require('os').networkInterfaces();
|
|
106
|
+
var results = [];
|
|
107
|
+
Object
|
|
108
|
+
.keys(interfaces)
|
|
109
|
+
.map(function (key) {
|
|
110
|
+
results = results.concat(interfaces[key]);
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
results = results
|
|
114
|
+
.filter(function (iface) {
|
|
115
|
+
return iface.family === 'IPv4' && !iface.internal;
|
|
116
|
+
})
|
|
117
|
+
.map(function (iface) { return iface.address });
|
|
118
|
+
return (results[0] || "127.0.0.1");
|
|
119
|
+
}
|
|
120
120
|
module.exports = new IPUtil();
|