whatap 0.4.79 → 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 -288
- 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,32 +1,32 @@
|
|
|
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
|
-
|
|
8
|
-
var LinkedMap = require('./linkedmap'),
|
|
9
|
-
HashUtil = require('./hashutil');;
|
|
10
|
-
|
|
11
|
-
function StringNumLinkedMap(initCapacity, loadFactor){
|
|
12
|
-
LinkedMap.call(this, initCapacity, loadFactor);
|
|
13
|
-
return this;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
StringNumLinkedMap.prototype = new LinkedMap();
|
|
17
|
-
StringNumLinkedMap.prototype.constructor = StringNumLinkedMap;
|
|
18
|
-
|
|
19
|
-
StringNumLinkedMap.prototype.none = function () {
|
|
20
|
-
return 0;
|
|
21
|
-
};
|
|
22
|
-
StringNumLinkedMap.prototype.hash = function (key /*string*/) {
|
|
23
|
-
return Math.abs(this.strHash(key));
|
|
24
|
-
}
|
|
25
|
-
StringNumLinkedMap.prototype.equals = function (key1, key2) {
|
|
26
|
-
return key1 === key2;
|
|
27
|
-
};
|
|
28
|
-
StringNumLinkedMap.prototype.sum = function (key1, key2) {
|
|
29
|
-
return key1+key2;
|
|
30
|
-
};
|
|
31
|
-
|
|
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
|
+
|
|
8
|
+
var LinkedMap = require('./linkedmap'),
|
|
9
|
+
HashUtil = require('./hashutil');;
|
|
10
|
+
|
|
11
|
+
function StringNumLinkedMap(initCapacity, loadFactor){
|
|
12
|
+
LinkedMap.call(this, initCapacity, loadFactor);
|
|
13
|
+
return this;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
StringNumLinkedMap.prototype = new LinkedMap();
|
|
17
|
+
StringNumLinkedMap.prototype.constructor = StringNumLinkedMap;
|
|
18
|
+
|
|
19
|
+
StringNumLinkedMap.prototype.none = function () {
|
|
20
|
+
return 0;
|
|
21
|
+
};
|
|
22
|
+
StringNumLinkedMap.prototype.hash = function (key /*string*/) {
|
|
23
|
+
return Math.abs(this.strHash(key));
|
|
24
|
+
}
|
|
25
|
+
StringNumLinkedMap.prototype.equals = function (key1, key2) {
|
|
26
|
+
return key1 === key2;
|
|
27
|
+
};
|
|
28
|
+
StringNumLinkedMap.prototype.sum = function (key1, key2) {
|
|
29
|
+
return key1+key2;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
32
|
module.exports = StringNumLinkedMap;
|
package/lib/util/stringset.js
CHANGED
|
@@ -1,66 +1,66 @@
|
|
|
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
|
-
|
|
8
|
-
var LinkedMap = require('./linkedmap'),
|
|
9
|
-
HashUtil = require('./hashutil');
|
|
10
|
-
|
|
11
|
-
function StringSet(initCapacity, loadFactor){
|
|
12
|
-
LinkedMap.call(this, initCapacity, loadFactor);
|
|
13
|
-
return this;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
StringSet.prototype = new LinkedMap();
|
|
17
|
-
StringSet.prototype.constructor = StringSet;
|
|
18
|
-
|
|
19
|
-
StringSet.prototype.hash = function (key /*string*/) {
|
|
20
|
-
return Math.abs(this.strHash(key));
|
|
21
|
-
}
|
|
22
|
-
StringSet.prototype.equals = function (key1, key2) {
|
|
23
|
-
return key1 === key2;
|
|
24
|
-
};
|
|
25
|
-
StringSet.prototype.sum = function (key1, key2) {
|
|
26
|
-
return key2;
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
StringSet.prototype.add = function (key) {
|
|
30
|
-
return this._put(key, key, LinkedMap.MODE.LAST);
|
|
31
|
-
};
|
|
32
|
-
StringSet.prototype.put = function (key) {
|
|
33
|
-
return this._put(key, key, LinkedMap.MODE.LAST);
|
|
34
|
-
};
|
|
35
|
-
StringSet.prototype.putLast = function (key) {
|
|
36
|
-
return this._put(key, key, LinkedMap.MODE.FORCE_LAST);
|
|
37
|
-
};
|
|
38
|
-
StringSet.prototype.putFirst = function (key) {
|
|
39
|
-
return this._put(key, key, LinkedMap.MODE.FORCE_FIRST);
|
|
40
|
-
};
|
|
41
|
-
StringSet.prototype.hasKey = function (key) {
|
|
42
|
-
return this.containsKey(key);
|
|
43
|
-
};
|
|
44
|
-
StringSet.prototype.forEach=function(f){
|
|
45
|
-
var en = this.keys();
|
|
46
|
-
while(en.hasMoreElements()) {
|
|
47
|
-
var e = en.nextElement();
|
|
48
|
-
f(e);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
StringSet.prototype.toString = function () {
|
|
53
|
-
var str = '';
|
|
54
|
-
var it = this.keys();
|
|
55
|
-
str += '{';
|
|
56
|
-
for(var i=0; it.hasMoreElements(); i++) {
|
|
57
|
-
var e = it.nextElement();
|
|
58
|
-
if(i > 0) {
|
|
59
|
-
str += ", ";
|
|
60
|
-
}
|
|
61
|
-
str += e;
|
|
62
|
-
}
|
|
63
|
-
str += "}";
|
|
64
|
-
return str;
|
|
65
|
-
};
|
|
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
|
+
|
|
8
|
+
var LinkedMap = require('./linkedmap'),
|
|
9
|
+
HashUtil = require('./hashutil');
|
|
10
|
+
|
|
11
|
+
function StringSet(initCapacity, loadFactor){
|
|
12
|
+
LinkedMap.call(this, initCapacity, loadFactor);
|
|
13
|
+
return this;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
StringSet.prototype = new LinkedMap();
|
|
17
|
+
StringSet.prototype.constructor = StringSet;
|
|
18
|
+
|
|
19
|
+
StringSet.prototype.hash = function (key /*string*/) {
|
|
20
|
+
return Math.abs(this.strHash(key));
|
|
21
|
+
}
|
|
22
|
+
StringSet.prototype.equals = function (key1, key2) {
|
|
23
|
+
return key1 === key2;
|
|
24
|
+
};
|
|
25
|
+
StringSet.prototype.sum = function (key1, key2) {
|
|
26
|
+
return key2;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
StringSet.prototype.add = function (key) {
|
|
30
|
+
return this._put(key, key, LinkedMap.MODE.LAST);
|
|
31
|
+
};
|
|
32
|
+
StringSet.prototype.put = function (key) {
|
|
33
|
+
return this._put(key, key, LinkedMap.MODE.LAST);
|
|
34
|
+
};
|
|
35
|
+
StringSet.prototype.putLast = function (key) {
|
|
36
|
+
return this._put(key, key, LinkedMap.MODE.FORCE_LAST);
|
|
37
|
+
};
|
|
38
|
+
StringSet.prototype.putFirst = function (key) {
|
|
39
|
+
return this._put(key, key, LinkedMap.MODE.FORCE_FIRST);
|
|
40
|
+
};
|
|
41
|
+
StringSet.prototype.hasKey = function (key) {
|
|
42
|
+
return this.containsKey(key);
|
|
43
|
+
};
|
|
44
|
+
StringSet.prototype.forEach=function(f){
|
|
45
|
+
var en = this.keys();
|
|
46
|
+
while(en.hasMoreElements()) {
|
|
47
|
+
var e = en.nextElement();
|
|
48
|
+
f(e);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
StringSet.prototype.toString = function () {
|
|
53
|
+
var str = '';
|
|
54
|
+
var it = this.keys();
|
|
55
|
+
str += '{';
|
|
56
|
+
for(var i=0; it.hasMoreElements(); i++) {
|
|
57
|
+
var e = it.nextElement();
|
|
58
|
+
if(i > 0) {
|
|
59
|
+
str += ", ";
|
|
60
|
+
}
|
|
61
|
+
str += e;
|
|
62
|
+
}
|
|
63
|
+
str += "}";
|
|
64
|
+
return str;
|
|
65
|
+
};
|
|
66
66
|
module.exports = StringSet;
|
package/lib/util/system-util.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
var fs = require('fs')
|
|
2
|
-
;
|
|
3
|
-
|
|
4
|
-
var SystemUtil = {
|
|
5
|
-
IS_LINUX: process.platform == 'linux' ? true : false,
|
|
6
|
-
loadContainerId: function(){
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
|
|
1
|
+
var fs = require('fs')
|
|
2
|
+
;
|
|
3
|
+
|
|
4
|
+
var SystemUtil = {
|
|
5
|
+
IS_LINUX: process.platform == 'linux' ? true : false,
|
|
6
|
+
loadContainerId: function(){
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
|
|
10
10
|
module.exports = SystemUtil;
|
package/lib/util/userid-util.js
CHANGED
|
@@ -1,57 +1,57 @@
|
|
|
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 WHATAP_R = "WHATAP";
|
|
8
|
-
|
|
9
|
-
var conf = require('../conf/configure'),
|
|
10
|
-
HashUtil = require('./hashutil'),
|
|
11
|
-
Hexa32 = require('./hexa32'),
|
|
12
|
-
KeyGen = require('./keygen'),
|
|
13
|
-
Long = require('long'),
|
|
14
|
-
Logger = require('../logger');
|
|
15
|
-
|
|
16
|
-
var getUserId = function (req, res, defValue) {
|
|
17
|
-
try {
|
|
18
|
-
if (conf.user_header_ticket_enabled === true) {
|
|
19
|
-
var ticket = req.headers[conf.user_header_ticket];
|
|
20
|
-
if (ticket != null && ticket.length > 0) {
|
|
21
|
-
return Long.fromNumber(HashUtil.hash(ticket));
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
var cookie = req.headers.cookie;
|
|
25
|
-
if (cookie != null) {
|
|
26
|
-
if (cookie.length >= conf.trace_user_cookie_limit) {
|
|
27
|
-
return defValue;
|
|
28
|
-
}
|
|
29
|
-
var x1 = cookie.indexOf(WHATAP_R);
|
|
30
|
-
if (x1 >= 0) {
|
|
31
|
-
var value = '';
|
|
32
|
-
var x2 = cookie.indexOf(';', x1);
|
|
33
|
-
if (x2 > 0) {
|
|
34
|
-
value = cookie.substring(x1 + WHATAP_R.length + 1, x2);
|
|
35
|
-
} else {
|
|
36
|
-
value = cookie.substring(x1 + WHATAP_R.length + 1);
|
|
37
|
-
}
|
|
38
|
-
try {
|
|
39
|
-
return Hexa32.toLong32(value);
|
|
40
|
-
} catch (th) {
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
var expires= new Date(Date.now() + (86409000*365*5)).toUTCString();
|
|
45
|
-
var cookie_str = WHATAP_R + "=" + Hexa32.toString32(KeyGen.next()) + "; expires=" + expires +"; path=/";
|
|
46
|
-
res.setHeader("Set-Cookie", cookie_str);
|
|
47
|
-
} catch (e) {
|
|
48
|
-
Logger.printError('WHATAP-193', 'UserIdUtil Error', e);
|
|
49
|
-
}
|
|
50
|
-
return Long.ZERO;
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
var UserIdUtil = {
|
|
54
|
-
getUserId : getUserId
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
module.exports = UserIdUtil;
|
|
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 WHATAP_R = "WHATAP";
|
|
8
|
+
|
|
9
|
+
var conf = require('../conf/configure'),
|
|
10
|
+
HashUtil = require('./hashutil'),
|
|
11
|
+
Hexa32 = require('./hexa32'),
|
|
12
|
+
KeyGen = require('./keygen'),
|
|
13
|
+
Long = require('long'),
|
|
14
|
+
Logger = require('../logger');
|
|
15
|
+
|
|
16
|
+
var getUserId = function (req, res, defValue) {
|
|
17
|
+
try {
|
|
18
|
+
if (conf.user_header_ticket_enabled === true) {
|
|
19
|
+
var ticket = req.headers[conf.user_header_ticket];
|
|
20
|
+
if (ticket != null && ticket.length > 0) {
|
|
21
|
+
return Long.fromNumber(HashUtil.hash(ticket));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
var cookie = req.headers.cookie;
|
|
25
|
+
if (cookie != null) {
|
|
26
|
+
if (cookie.length >= conf.trace_user_cookie_limit) {
|
|
27
|
+
return defValue;
|
|
28
|
+
}
|
|
29
|
+
var x1 = cookie.indexOf(WHATAP_R);
|
|
30
|
+
if (x1 >= 0) {
|
|
31
|
+
var value = '';
|
|
32
|
+
var x2 = cookie.indexOf(';', x1);
|
|
33
|
+
if (x2 > 0) {
|
|
34
|
+
value = cookie.substring(x1 + WHATAP_R.length + 1, x2);
|
|
35
|
+
} else {
|
|
36
|
+
value = cookie.substring(x1 + WHATAP_R.length + 1);
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
return Hexa32.toLong32(value);
|
|
40
|
+
} catch (th) {
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
var expires= new Date(Date.now() + (86409000*365*5)).toUTCString();
|
|
45
|
+
var cookie_str = WHATAP_R + "=" + Hexa32.toString32(KeyGen.next()) + "; expires=" + expires +"; path=/";
|
|
46
|
+
res.setHeader("Set-Cookie", cookie_str);
|
|
47
|
+
} catch (e) {
|
|
48
|
+
Logger.printError('WHATAP-193', 'UserIdUtil Error', e);
|
|
49
|
+
}
|
|
50
|
+
return Long.ZERO;
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
var UserIdUtil = {
|
|
54
|
+
getUserId : getUserId
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
module.exports = UserIdUtil;
|
package/lib/util/utils.js
CHANGED
|
@@ -1,68 +1,68 @@
|
|
|
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
|
-
|
|
8
|
-
function Utils(){
|
|
9
|
-
}
|
|
10
|
-
Utils.toUTF8 = function (str) {
|
|
11
|
-
if(typeof str !== 'string') {
|
|
12
|
-
return str;
|
|
13
|
-
}
|
|
14
|
-
var utf8 = [];
|
|
15
|
-
for (var i=0; i < str.length; i++) {
|
|
16
|
-
var charcode = str.charCodeAt(i);
|
|
17
|
-
if (charcode < 0x80) utf8.push(charcode);
|
|
18
|
-
else if (charcode < 0x800) {
|
|
19
|
-
utf8.push(0xc0 | (charcode >> 6),
|
|
20
|
-
0x80 | (charcode & 0x3f));
|
|
21
|
-
}
|
|
22
|
-
else if (charcode < 0xd800 || charcode >= 0xe000) {
|
|
23
|
-
utf8.push(0xe0 | (charcode >> 12),
|
|
24
|
-
0x80 | ((charcode>>6) & 0x3f),
|
|
25
|
-
0x80 | (charcode & 0x3f));
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
utf8.push(0xef, 0xbf, 0xbd);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return utf8;
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
function ArrayUtil(){
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
ArrayUtil.isExist = function(arr, key){
|
|
38
|
-
if(arr===null || arr === undefined) return false;
|
|
39
|
-
|
|
40
|
-
for(var i = 0 ; i < arr.length; i++){
|
|
41
|
-
if(arr[i] === key) return true;
|
|
42
|
-
}
|
|
43
|
-
return false;
|
|
44
|
-
};
|
|
45
|
-
ArrayUtil.compare = function(v1, v2){
|
|
46
|
-
if(Array.isArray(v1)===false){
|
|
47
|
-
return -1;
|
|
48
|
-
}
|
|
49
|
-
if(Array.isArray(v2)===false){
|
|
50
|
-
return 1;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
var l_len = v1.length,
|
|
54
|
-
r_len = v2.length;
|
|
55
|
-
for(var i=0; i<l_len && i < r_len; i++) {
|
|
56
|
-
if(v1[i] > v2[i]) {
|
|
57
|
-
return 1;
|
|
58
|
-
}
|
|
59
|
-
if(v1[i] < v2[i]) {
|
|
60
|
-
return -1;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
return l_len - r_len;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
Utils.Array = ArrayUtil;
|
|
67
|
-
|
|
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
|
+
|
|
8
|
+
function Utils(){
|
|
9
|
+
}
|
|
10
|
+
Utils.toUTF8 = function (str) {
|
|
11
|
+
if(typeof str !== 'string') {
|
|
12
|
+
return str;
|
|
13
|
+
}
|
|
14
|
+
var utf8 = [];
|
|
15
|
+
for (var i=0; i < str.length; i++) {
|
|
16
|
+
var charcode = str.charCodeAt(i);
|
|
17
|
+
if (charcode < 0x80) utf8.push(charcode);
|
|
18
|
+
else if (charcode < 0x800) {
|
|
19
|
+
utf8.push(0xc0 | (charcode >> 6),
|
|
20
|
+
0x80 | (charcode & 0x3f));
|
|
21
|
+
}
|
|
22
|
+
else if (charcode < 0xd800 || charcode >= 0xe000) {
|
|
23
|
+
utf8.push(0xe0 | (charcode >> 12),
|
|
24
|
+
0x80 | ((charcode>>6) & 0x3f),
|
|
25
|
+
0x80 | (charcode & 0x3f));
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
utf8.push(0xef, 0xbf, 0xbd);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return utf8;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
function ArrayUtil(){
|
|
35
|
+
|
|
36
|
+
}
|
|
37
|
+
ArrayUtil.isExist = function(arr, key){
|
|
38
|
+
if(arr===null || arr === undefined) return false;
|
|
39
|
+
|
|
40
|
+
for(var i = 0 ; i < arr.length; i++){
|
|
41
|
+
if(arr[i] === key) return true;
|
|
42
|
+
}
|
|
43
|
+
return false;
|
|
44
|
+
};
|
|
45
|
+
ArrayUtil.compare = function(v1, v2){
|
|
46
|
+
if(Array.isArray(v1)===false){
|
|
47
|
+
return -1;
|
|
48
|
+
}
|
|
49
|
+
if(Array.isArray(v2)===false){
|
|
50
|
+
return 1;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
var l_len = v1.length,
|
|
54
|
+
r_len = v2.length;
|
|
55
|
+
for(var i=0; i<l_len && i < r_len; i++) {
|
|
56
|
+
if(v1[i] > v2[i]) {
|
|
57
|
+
return 1;
|
|
58
|
+
}
|
|
59
|
+
if(v1[i] < v2[i]) {
|
|
60
|
+
return -1;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return l_len - r_len;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
Utils.Array = ArrayUtil;
|
|
67
|
+
|
|
68
68
|
module.exports = Utils;
|
package/lib/value/blob-value.js
CHANGED
|
@@ -1,62 +1,62 @@
|
|
|
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 HashUtil = require('../util/hashutil'),
|
|
8
|
-
ValueEnum = require('./valueenum'),
|
|
9
|
-
Value = require('./value');
|
|
10
|
-
|
|
11
|
-
function BlobValue(value) {
|
|
12
|
-
Value.call(this);
|
|
13
|
-
this.value = (value instanceof Buffer) ? value : Buffer.alloc(0);
|
|
14
|
-
this.compareTo = function(object) {
|
|
15
|
-
if(object instanceof BlobValue) {
|
|
16
|
-
if(this.value == null) {
|
|
17
|
-
return object.value == null ? 0 : -1;
|
|
18
|
-
}
|
|
19
|
-
return this.value.compare(object.value);
|
|
20
|
-
}
|
|
21
|
-
return 1;
|
|
22
|
-
};
|
|
23
|
-
this.equals = function(object) {
|
|
24
|
-
if(object instanceof BlobValue) {
|
|
25
|
-
if(this.value == null) {
|
|
26
|
-
return object.value == null;
|
|
27
|
-
}
|
|
28
|
-
return this.value.equals(object.value);
|
|
29
|
-
}
|
|
30
|
-
return false;
|
|
31
|
-
};
|
|
32
|
-
this.hashCode = function(){
|
|
33
|
-
if(this.value == null) {
|
|
34
|
-
return 0;
|
|
35
|
-
}
|
|
36
|
-
return HashUtil.hash(this.value);
|
|
37
|
-
};
|
|
38
|
-
this.toString = function() {
|
|
39
|
-
if(this.value == null) {
|
|
40
|
-
return null;
|
|
41
|
-
}
|
|
42
|
-
return "byte[" + this.value.length + "]";
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
BlobValue.prototype = new Value();
|
|
47
|
-
BlobValue.prototype.constructor = BlobValue;
|
|
48
|
-
BlobValue.prototype.read = function(din) {
|
|
49
|
-
this.value = din.readBlob();
|
|
50
|
-
return this;
|
|
51
|
-
};
|
|
52
|
-
BlobValue.prototype.write = function(dout) {
|
|
53
|
-
dout.writeBlob(this.value);
|
|
54
|
-
};
|
|
55
|
-
BlobValue.prototype.getValueType = function() {
|
|
56
|
-
return ValueEnum.BLOB;
|
|
57
|
-
};
|
|
58
|
-
BlobValue.prototype.toObject = function() {
|
|
59
|
-
return this.value;
|
|
60
|
-
}
|
|
61
|
-
|
|
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 HashUtil = require('../util/hashutil'),
|
|
8
|
+
ValueEnum = require('./valueenum'),
|
|
9
|
+
Value = require('./value');
|
|
10
|
+
|
|
11
|
+
function BlobValue(value) {
|
|
12
|
+
Value.call(this);
|
|
13
|
+
this.value = (value instanceof Buffer) ? value : Buffer.alloc(0);
|
|
14
|
+
this.compareTo = function(object) {
|
|
15
|
+
if(object instanceof BlobValue) {
|
|
16
|
+
if(this.value == null) {
|
|
17
|
+
return object.value == null ? 0 : -1;
|
|
18
|
+
}
|
|
19
|
+
return this.value.compare(object.value);
|
|
20
|
+
}
|
|
21
|
+
return 1;
|
|
22
|
+
};
|
|
23
|
+
this.equals = function(object) {
|
|
24
|
+
if(object instanceof BlobValue) {
|
|
25
|
+
if(this.value == null) {
|
|
26
|
+
return object.value == null;
|
|
27
|
+
}
|
|
28
|
+
return this.value.equals(object.value);
|
|
29
|
+
}
|
|
30
|
+
return false;
|
|
31
|
+
};
|
|
32
|
+
this.hashCode = function(){
|
|
33
|
+
if(this.value == null) {
|
|
34
|
+
return 0;
|
|
35
|
+
}
|
|
36
|
+
return HashUtil.hash(this.value);
|
|
37
|
+
};
|
|
38
|
+
this.toString = function() {
|
|
39
|
+
if(this.value == null) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
return "byte[" + this.value.length + "]";
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
BlobValue.prototype = new Value();
|
|
47
|
+
BlobValue.prototype.constructor = BlobValue;
|
|
48
|
+
BlobValue.prototype.read = function(din) {
|
|
49
|
+
this.value = din.readBlob();
|
|
50
|
+
return this;
|
|
51
|
+
};
|
|
52
|
+
BlobValue.prototype.write = function(dout) {
|
|
53
|
+
dout.writeBlob(this.value);
|
|
54
|
+
};
|
|
55
|
+
BlobValue.prototype.getValueType = function() {
|
|
56
|
+
return ValueEnum.BLOB;
|
|
57
|
+
};
|
|
58
|
+
BlobValue.prototype.toObject = function() {
|
|
59
|
+
return this.value;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
62
|
module.exports = BlobValue;
|