whatap 0.5.26 → 1.0.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.
Files changed (196) hide show
  1. package/agent/darwin/arm64/whatap_nodejs +0 -0
  2. package/agent/linux/amd64/whatap_nodejs +0 -0
  3. package/agent/linux/arm64/whatap_nodejs +0 -0
  4. package/build.txt +4 -0
  5. package/lib/conf/config-default.js +3 -10
  6. package/lib/conf/configure.js +349 -369
  7. package/lib/conf/license.js +1 -1
  8. package/lib/control/packagectr-helper.js +3 -34
  9. package/lib/core/agent.js +882 -176
  10. package/lib/core/interceptor.js +6 -6
  11. package/lib/core/shimmer.js +36 -82
  12. package/lib/counter/counter-manager.js +8 -79
  13. package/lib/counter/task/activetransaction.js +17 -68
  14. package/lib/io/data-inputx.js +3 -13
  15. package/lib/io/data-outputx.js +206 -268
  16. package/lib/logger.js +6 -6
  17. package/lib/net/security-master.js +20 -139
  18. package/lib/observers/apollo-server-observer.js +27 -33
  19. package/lib/observers/global-observer.js +80 -155
  20. package/lib/observers/http-observer.js +236 -666
  21. package/lib/observers/ioredis-observer.js +294 -0
  22. package/lib/observers/maria-observer.js +362 -204
  23. package/lib/observers/mongodb-observer.js +226 -169
  24. package/lib/observers/mongoose-observer.js +323 -518
  25. package/lib/observers/mssql-observer.js +418 -177
  26. package/lib/observers/mysql-observer.js +449 -342
  27. package/lib/observers/mysql2-observer.js +358 -396
  28. package/lib/observers/oracle-observer.js +384 -559
  29. package/lib/observers/pgsql-observer.js +489 -231
  30. package/lib/observers/prisma-observer.js +92 -303
  31. package/lib/observers/process-observer.js +35 -79
  32. package/lib/observers/redis-observer.js +331 -166
  33. package/lib/observers/socket.io-observer.js +187 -226
  34. package/lib/observers/websocket-observer.js +301 -175
  35. package/lib/pack/counter-pack.js +0 -3
  36. package/lib/pack/log-sink-pack.js +52 -14
  37. package/lib/pack/tagcount-pack.js +4 -4
  38. package/lib/{counter/task → system}/gc-action.js +74 -27
  39. package/lib/trace/trace-context-manager.js +25 -113
  40. package/lib/trace/trace-context.js +7 -21
  41. package/lib/trace/trace-httpc.js +11 -17
  42. package/lib/trace/trace-sql.js +21 -29
  43. package/lib/udp/async_sender.js +119 -0
  44. package/lib/udp/index.js +17 -0
  45. package/lib/udp/packet_enum.js +52 -0
  46. package/lib/udp/packet_queue.js +69 -0
  47. package/lib/udp/packet_type_enum.js +33 -0
  48. package/lib/udp/param_def.js +72 -0
  49. package/lib/udp/udp_session.js +336 -0
  50. package/lib/util/escape-literal-sql.js +5 -5
  51. package/lib/util/hashutil.js +18 -18
  52. package/lib/util/keygen.js +3 -0
  53. package/lib/util/linkedset.js +2 -1
  54. package/lib/util/nodeutil.js +1 -2
  55. package/lib/util/sql-util.js +178 -0
  56. package/lib/util/trace-helper.js +91 -0
  57. package/lib/util/transfer.js +58 -0
  58. package/lib/value/map-value.js +2 -3
  59. package/package.json +5 -10
  60. package/lib/conf/conf-sys-mon.js +0 -101
  61. package/lib/control/cmd-config.js +0 -24
  62. package/lib/control/control-handler.js +0 -367
  63. package/lib/core/request-agent.js +0 -27
  64. package/lib/counter/meter/meter-activex.js +0 -67
  65. package/lib/counter/meter/meter-httpc.js +0 -57
  66. package/lib/counter/meter/meter-resource.js +0 -9
  67. package/lib/counter/meter/meter-service.js +0 -168
  68. package/lib/counter/meter/meter-socket.io.js +0 -51
  69. package/lib/counter/meter/meter-sql.js +0 -71
  70. package/lib/counter/meter/meter-users.js +0 -58
  71. package/lib/counter/meter.js +0 -183
  72. package/lib/counter/task/agentinfo.js +0 -107
  73. package/lib/counter/task/gcstat.js +0 -34
  74. package/lib/counter/task/heapmem.js +0 -25
  75. package/lib/counter/task/httpc.js +0 -76
  76. package/lib/counter/task/metering-info.js +0 -125
  77. package/lib/counter/task/proc-cpu.js +0 -29
  78. package/lib/counter/task/realtimeuser.js +0 -31
  79. package/lib/counter/task/res/systemECSTask.js +0 -39
  80. package/lib/counter/task/res/systemKubeTask.js +0 -53
  81. package/lib/counter/task/res/util/awsEcsClientThread.js +0 -218
  82. package/lib/counter/task/res/util/linuxProcStatUtil.js +0 -14
  83. package/lib/counter/task/res-sys-cpu.js +0 -62
  84. package/lib/counter/task/service.js +0 -202
  85. package/lib/counter/task/socketio.js +0 -30
  86. package/lib/counter/task/sql.js +0 -105
  87. package/lib/counter/task/systemperf.js +0 -43
  88. package/lib/data/datapack-sender.js +0 -289
  89. package/lib/data/dataprofile-agent.js +0 -162
  90. package/lib/data/datatext-agent.js +0 -135
  91. package/lib/data/event-level.js +0 -15
  92. package/lib/data/test.js +0 -49
  93. package/lib/data/zipprofile.js +0 -197
  94. package/lib/env/constants.js +0 -21
  95. package/lib/error/error-handler.js +0 -437
  96. package/lib/kube/kube-client.js +0 -144
  97. package/lib/lang/text-types.js +0 -58
  98. package/lib/logsink/line-log-util.js +0 -87
  99. package/lib/logsink/line-log.js +0 -12
  100. package/lib/logsink/log-sender.js +0 -78
  101. package/lib/logsink/log-tracer.js +0 -40
  102. package/lib/logsink/sender-util.js +0 -56
  103. package/lib/logsink/zip/zip-send.js +0 -177
  104. package/lib/net/netflag.js +0 -55
  105. package/lib/net/receiver.js +0 -66
  106. package/lib/net/sender.js +0 -141
  107. package/lib/net/tcp-return.js +0 -18
  108. package/lib/net/tcp-session.js +0 -286
  109. package/lib/net/tcpreq-client-proxy.js +0 -70
  110. package/lib/net/tcprequest-mgr.js +0 -58
  111. package/lib/observers/cluster-observer.js +0 -22
  112. package/lib/observers/express-observer.js +0 -215
  113. package/lib/observers/file-observer.js +0 -184
  114. package/lib/observers/grpc-observer.js +0 -336
  115. package/lib/observers/memcached-observer.js +0 -56
  116. package/lib/observers/mongo-observer.js +0 -317
  117. package/lib/observers/net-observer.js +0 -77
  118. package/lib/observers/promise-observer.js +0 -31
  119. package/lib/observers/schedule-observer.js +0 -67
  120. package/lib/observers/stream-observer.js +0 -19
  121. package/lib/observers/thrift-observer.js +0 -197
  122. package/lib/pack/activestack-pack.js +0 -55
  123. package/lib/pack/apenum.js +0 -8
  124. package/lib/pack/errorsnap-pack.js +0 -69
  125. package/lib/pack/event-pack.js +0 -54
  126. package/lib/pack/hitmap-pack.js +0 -63
  127. package/lib/pack/hitmap-pack1.js +0 -152
  128. package/lib/pack/netstat.js +0 -15
  129. package/lib/pack/otype.js +0 -7
  130. package/lib/pack/profile-pack.js +0 -49
  131. package/lib/pack/realtimeuser-pack.js +0 -41
  132. package/lib/pack/stat-general-pack.js +0 -96
  133. package/lib/pack/staterror-pack.js +0 -120
  134. package/lib/pack/stathttpc-pack.js +0 -66
  135. package/lib/pack/stathttpc-rec.js +0 -78
  136. package/lib/pack/statremote-pack.js +0 -46
  137. package/lib/pack/statservice-pack.js +0 -63
  138. package/lib/pack/statservice-pack1.js +0 -88
  139. package/lib/pack/statservice-rec.js +0 -292
  140. package/lib/pack/statservice-rec_dep.js +0 -151
  141. package/lib/pack/statsql-pack.js +0 -69
  142. package/lib/pack/statsql-rec.js +0 -100
  143. package/lib/pack/statuseragent-pack.js +0 -44
  144. package/lib/pack/tagctr.js +0 -15
  145. package/lib/pack/text-pack.js +0 -50
  146. package/lib/pack/time-count.js +0 -25
  147. package/lib/pack/websocket.js +0 -15
  148. package/lib/pack/zip-pack.js +0 -70
  149. package/lib/pii/pii-item.js +0 -31
  150. package/lib/pii/pii-mask.js +0 -174
  151. package/lib/plugin/plugin-loadermanager.js +0 -57
  152. package/lib/plugin/plugin.js +0 -75
  153. package/lib/service/tx-record.js +0 -332
  154. package/lib/stat/stat-error.js +0 -116
  155. package/lib/stat/stat-httpc.js +0 -98
  156. package/lib/stat/stat-remote-ip.js +0 -46
  157. package/lib/stat/stat-remote-ipurl.js +0 -88
  158. package/lib/stat/stat-sql.js +0 -113
  159. package/lib/stat/stat-tranx.js +0 -58
  160. package/lib/stat/stat-tx-caller.js +0 -160
  161. package/lib/stat/stat-tx-domain.js +0 -111
  162. package/lib/stat/stat-tx-referer.js +0 -112
  163. package/lib/stat/stat-useragent.js +0 -48
  164. package/lib/stat/timingsender.js +0 -76
  165. package/lib/step/activestack-step.js +0 -38
  166. package/lib/step/dbc-step.js +0 -36
  167. package/lib/step/http-stepx.js +0 -67
  168. package/lib/step/message-step.js +0 -40
  169. package/lib/step/method-stepx.js +0 -45
  170. package/lib/step/resultset-step.js +0 -40
  171. package/lib/step/securemsg-step.js +0 -44
  172. package/lib/step/socket-step.js +0 -46
  173. package/lib/step/sql-stepx.js +0 -68
  174. package/lib/step/sqlxtype.js +0 -16
  175. package/lib/step/step.js +0 -66
  176. package/lib/step/stepenum.js +0 -54
  177. package/lib/topology/link.js +0 -63
  178. package/lib/topology/nodeinfo.js +0 -123
  179. package/lib/topology/status-detector.js +0 -111
  180. package/lib/util/anylist.js +0 -103
  181. package/lib/util/cardinality/hyperloglog.js +0 -106
  182. package/lib/util/cardinality/murmurhash.js +0 -31
  183. package/lib/util/cardinality/registerset.js +0 -75
  184. package/lib/util/errordata.js +0 -21
  185. package/lib/util/iputil_x.js +0 -527
  186. package/lib/util/kube-util.js +0 -73
  187. package/lib/util/paramsecurity.js +0 -80
  188. package/lib/util/pre-process.js +0 -13
  189. package/lib/util/process-seq.js +0 -166
  190. package/lib/util/property-util.js +0 -36
  191. package/lib/util/request-queue.js +0 -70
  192. package/lib/util/requestdouble-queue.js +0 -72
  193. package/lib/util/resourceprofile.js +0 -157
  194. package/lib/util/stop-watch.js +0 -30
  195. package/lib/util/system-util.js +0 -10
  196. package/lib/util/userid-util.js +0 -57
@@ -1,527 +0,0 @@
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 ipv6Part = "(?:[0-9a-f]+::?)+";
9
- const ipv4Part = "(0?\\d+|0x[a-f0-9]+)";
10
- const ipv4Regexes = {
11
- fourOctet: new RegExp("^" + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "$", 'i'),
12
- longValue: new RegExp("^" + ipv4Part + "$", 'i')
13
- };
14
- const ipv6Regexes = {
15
- "native": new RegExp("^(::)?(" + ipv6Part + ")?([0-9a-f]+)?(::)?$", 'i'),
16
- transitional: new RegExp(("^((?:" + ipv6Part + ")|(?:::)(?:" + ipv6Part + ")?)") + ("" + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "$"), 'i')
17
- };
18
-
19
- var DataOutputX = require('../io/data-outputx');
20
- var expandIPv6 = function(string, parts) {
21
- var colonCount, lastColon, part, replacement, replacementCount;
22
- if (string.indexOf('::') !== string.lastIndexOf('::')) {
23
- return null;
24
- }
25
- colonCount = 0;
26
- lastColon = -1;
27
- while ((lastColon = string.indexOf(':', lastColon + 1)) >= 0) {
28
- colonCount++;
29
- }
30
- if (string.substr(0, 2) === '::') {
31
- colonCount--;
32
- }
33
- if (string.substr(-2, 2) === '::') {
34
- colonCount--;
35
- }
36
- if (colonCount > parts) {
37
- return null;
38
- }
39
- replacementCount = parts - colonCount;
40
- replacement = ':';
41
- while (replacementCount--) {
42
- replacement += '0:';
43
- }
44
- string = string.replace('::', replacement);
45
- if (string[0] === ':') {
46
- string = string.slice(1);
47
- }
48
- if (string[string.length - 1] === ':') {
49
- string = string.slice(0, -1);
50
- }
51
- return (function() {
52
- var _i, _len, _ref, _results;
53
- _ref = string.split(":");
54
- _results = [];
55
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
56
- part = _ref[_i];
57
- _results.push(parseInt(part, 16));
58
- }
59
- return _results;
60
- })();
61
- };
62
- var matchCIDR = function(first, second, partSize, cidrBits) {
63
- var part, shift;
64
- if (first.length !== second.length) {
65
- throw new Error("ipaddr: cannot match CIDR for objects with different lengths");
66
- }
67
- part = 0;
68
- while (cidrBits > 0) {
69
- shift = partSize - cidrBits;
70
- if (shift < 0) {
71
- shift = 0;
72
- }
73
- if (first[part] >> shift !== second[part] >> shift) {
74
- return false;
75
- }
76
- cidrBits -= partSize;
77
- part += 1;
78
- }
79
- return true;
80
- };
81
-
82
- function IPUtilX() {
83
-
84
- };
85
-
86
- IPUtilX.IPv6 = (function() {
87
- function IPv6(parts) {
88
- var i, part, _i, _j, _len, _ref;
89
- if (parts.length === 16) {
90
- this.parts = [];
91
- for (i = _i = 0; _i <= 14; i = _i += 2) {
92
- this.parts.push((parts[i] << 8) | parts[i + 1]);
93
- }
94
- } else if (parts.length === 8) {
95
- this.parts = parts;
96
- } else {
97
- throw new Error("ipaddr: ipv6 part count should be 8 or 16");
98
- }
99
- _ref = this.parts;
100
- for (_j = 0, _len = _ref.length; _j < _len; _j++) {
101
- part = _ref[_j];
102
- if (!((0 <= part && part <= 0xffff))) {
103
- throw new Error("ipaddr: ipv6 part should fit in 16 bits");
104
- }
105
- }
106
- }
107
- IPv6.prototype.kind = function() {
108
- return 'ipv6';
109
- };
110
- IPv6.prototype.toString = function() {
111
- var compactStringParts, part, pushPart, state, stringParts, _i, _len;
112
- stringParts = (function() {
113
- var _i, _len, _ref, _results;
114
- _ref = this.parts;
115
- _results = [];
116
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
117
- part = _ref[_i];
118
- _results.push(part.toString(16));
119
- }
120
- return _results;
121
- }).call(this);
122
- compactStringParts = [];
123
- pushPart = function(part) {
124
- return compactStringParts.push(part);
125
- };
126
- state = 0;
127
- for (_i = 0, _len = stringParts.length; _i < _len; _i++) {
128
- part = stringParts[_i];
129
- switch (state) {
130
- case 0:
131
- if (part === '0') {
132
- pushPart('');
133
- } else {
134
- pushPart(part);
135
- }
136
- state = 1;
137
- break;
138
- case 1:
139
- if (part === '0') {
140
- state = 2;
141
- } else {
142
- pushPart(part);
143
- }
144
- break;
145
- case 2:
146
- if (part !== '0') {
147
- pushPart('');
148
- pushPart(part);
149
- state = 3;
150
- }
151
- break;
152
- case 3:
153
- pushPart(part);
154
- }
155
- }
156
- if (state === 2) {
157
- pushPart('');
158
- pushPart('');
159
- }
160
- return compactStringParts.join(":");
161
- };
162
- IPv6.prototype.toByteArray = function() {
163
- var bytes, part, _i, _len, _ref;
164
- bytes = [];
165
- _ref = this.parts;
166
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
167
- part = _ref[_i];
168
- bytes.push(part >> 8);
169
- bytes.push(part & 0xff);
170
- }
171
- return bytes;
172
- };
173
- IPv6.prototype.toNormalizedString = function() {
174
- var part;
175
- return ((function() {
176
- var _i, _len, _ref, _results;
177
- _ref = this.parts;
178
- _results = [];
179
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
180
- part = _ref[_i];
181
- _results.push(part.toString(16));
182
- }
183
- return _results;
184
- }).call(this)).join(":");
185
- };
186
- IPv6.prototype.match = function(other, cidrRange) {
187
- var _ref;
188
- if (cidrRange === void 0) {
189
- _ref = other, other = _ref[0], cidrRange = _ref[1];
190
- }
191
- if (other.kind() !== 'ipv6') {
192
- throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");
193
- }
194
- return matchCIDR(this.parts, other.parts, 16, cidrRange);
195
- };
196
- IPv6.prototype.SpecialRanges = {
197
- unspecified: [new IPv6([0, 0, 0, 0, 0, 0, 0, 0]), 128],
198
- linkLocal: [new IPv6([0xfe80, 0, 0, 0, 0, 0, 0, 0]), 10],
199
- multicast: [new IPv6([0xff00, 0, 0, 0, 0, 0, 0, 0]), 8],
200
- loopback: [new IPv6([0, 0, 0, 0, 0, 0, 0, 1]), 128],
201
- uniqueLocal: [new IPv6([0xfc00, 0, 0, 0, 0, 0, 0, 0]), 7],
202
- ipv4Mapped: [new IPv6([0, 0, 0, 0, 0, 0xffff, 0, 0]), 96],
203
- rfc6145: [new IPv6([0, 0, 0, 0, 0xffff, 0, 0, 0]), 96],
204
- rfc6052: [new IPv6([0x64, 0xff9b, 0, 0, 0, 0, 0, 0]), 96],
205
- '6to4': [new IPv6([0x2002, 0, 0, 0, 0, 0, 0, 0]), 16],
206
- teredo: [new IPv6([0x2001, 0, 0, 0, 0, 0, 0, 0]), 32],
207
- reserved: [[new IPv6([0x2001, 0xdb8, 0, 0, 0, 0, 0, 0]), 32]]
208
- };
209
- IPv6.prototype.range = function() {
210
- return IPUtilX.subnetMatch(this, this.SpecialRanges);
211
- };
212
- IPv6.prototype.isIPv4MappedAddress = function() {
213
- return this.range() === 'ipv4Mapped';
214
- };
215
- IPv6.prototype.toIPv4Address = function() {
216
- var high, low, _ref;
217
- if (!this.isIPv4MappedAddress()) {
218
- throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4");
219
- }
220
- _ref = this.parts.slice(-2), high = _ref[0], low = _ref[1];
221
- return new IPUtilX.IPv4([high >> 8, high & 0xff, low >> 8, low & 0xff]);
222
- };
223
- return IPv6;
224
- })();
225
- IPUtilX.IPv6.isValid = function(string) {
226
- var e;
227
- if (typeof string === "string" && string.indexOf(":") === -1) {
228
- return false;
229
- }
230
- try {
231
- new this(this.parser(string));
232
- return true;
233
- } catch (_error) {
234
- e = _error;
235
- return false;
236
- }
237
- };
238
- IPUtilX.IPv6.parser = function(string) {
239
- var match, octet, octets, parts, _i, _len;
240
- if (string.match(ipv6Regexes['native'])) {
241
- return expandIPv6(string, 8);
242
- } else if (match = string.match(ipv6Regexes['transitional'])) {
243
- parts = expandIPv6(match[1].slice(0, -1), 6);
244
- if (parts) {
245
- octets = [parseInt(match[2]), parseInt(match[3]), parseInt(match[4]), parseInt(match[5])];
246
- for (_i = 0, _len = octets.length; _i < _len; _i++) {
247
- octet = octets[_i];
248
- if (!((0 <= octet && octet <= 255))) {
249
- return null;
250
- }
251
- }
252
- parts.push(octets[0] << 8 | octets[1]);
253
- parts.push(octets[2] << 8 | octets[3]);
254
- return parts;
255
- }
256
- }
257
- return null;
258
- };
259
-
260
- IPUtilX.IPv4 = (function() {
261
- function IPv4(octets) {
262
- var octet, _i, _len;
263
- if (octets.length !== 4) {
264
- throw new Error("ipaddr: ipv4 octet count should be 4");
265
- }
266
- for (_i = 0, _len = octets.length; _i < _len; _i++) {
267
- octet = octets[_i];
268
- if (!((0 <= octet && octet <= 255))) {
269
- throw new Error("ipaddr: ipv4 octet should fit in 8 bits");
270
- }
271
- }
272
- this.octets = octets;
273
- }
274
-
275
- IPv4.prototype.kind = function() {
276
- return 'ipv4';
277
- };
278
- IPv4.prototype.toString = function() {
279
- return this.octets.join(".");
280
- };
281
- IPv4.prototype.toByteArray = function() {
282
- return this.octets.slice(0);
283
- };
284
- IPv4.prototype.match = function(other, cidrRange) {
285
- var _ref;
286
- if (cidrRange === void 0) {
287
- _ref = other, other = _ref[0], cidrRange = _ref[1];
288
- }
289
- if (other.kind() !== 'ipv4') {
290
- throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");
291
- }
292
- return matchCIDR(this.octets, other.octets, 8, cidrRange);
293
- };
294
- IPv4.prototype.SpecialRanges = {
295
- unspecified: [[new IPv4([0, 0, 0, 0]), 8]],
296
- broadcast: [[new IPv4([255, 255, 255, 255]), 32]],
297
- multicast: [[new IPv4([224, 0, 0, 0]), 4]],
298
- linkLocal: [[new IPv4([169, 254, 0, 0]), 16]],
299
- loopback: [[new IPv4([127, 0, 0, 0]), 8]],
300
- "private": [[new IPv4([10, 0, 0, 0]), 8], [new IPv4([172, 16, 0, 0]), 12], [new IPv4([192, 168, 0, 0]), 16]],
301
- reserved: [[new IPv4([192, 0, 0, 0]), 24], [new IPv4([192, 0, 2, 0]), 24], [new IPv4([192, 88, 99, 0]), 24], [new IPv4([198, 51, 100, 0]), 24], [new IPv4([203, 0, 113, 0]), 24], [new IPv4([240, 0, 0, 0]), 4]]
302
- };
303
- IPv4.prototype.range = function() {
304
- return IPUtilX.subnetMatch(this, this.SpecialRanges);
305
- };
306
- IPv4.prototype.toIPv4MappedAddress = function() {
307
- return IPUtilX.IPv6.parse("::ffff:" + (this.toString()));
308
- };
309
- IPv4.prototype.prefixLengthFromSubnetMask = function() {
310
- var cidr, i, octet, stop, zeros, zerotable, _i;
311
- zerotable = {
312
- 0: 8,
313
- 128: 7,
314
- 192: 6,
315
- 224: 5,
316
- 240: 4,
317
- 248: 3,
318
- 252: 2,
319
- 254: 1,
320
- 255: 0
321
- };
322
- cidr = 0;
323
- stop = false;
324
- for (i = _i = 3; _i >= 0; i = _i += -1) {
325
- octet = this.octets[i];
326
- if (octet in zerotable) {
327
- zeros = zerotable[octet];
328
- if (stop && zeros !== 0) {
329
- return null;
330
- }
331
- if (zeros !== 8) {
332
- stop = true;
333
- }
334
- cidr += zeros;
335
- } else {
336
- return null;
337
- }
338
- }
339
- return 32 - cidr;
340
- };
341
- IPv4.prototype.isValid = function(string) {
342
- var e;
343
- try {
344
- new this(this.parser(string));
345
- return true;
346
- } catch (_error) {
347
- e = _error;
348
- return false;
349
- }
350
- };
351
- return IPv4;
352
-
353
- })();
354
- IPUtilX.IPv4.isValid = function(string) {
355
- var e;
356
- try {
357
- new this(this.parser(string));
358
- return true;
359
- } catch (_error) {
360
- e = _error;
361
- return false;
362
- }
363
- };
364
- IPUtilX.IPv4.parser = function(string) {
365
- var match, parseIntAuto, part, shift, value;
366
- parseIntAuto = function(string) {
367
- if (string[0] === "0" && string[1] !== "x") {
368
- return parseInt(string, 8);
369
- } else {
370
- return parseInt(string);
371
- }
372
- };
373
- if (match = string.match(ipv4Regexes.fourOctet)) {
374
- return (function() {
375
- var _i, _len, _ref, _results;
376
- _ref = match.slice(1, 6);
377
- _results = [];
378
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
379
- part = _ref[_i];
380
- _results.push(parseIntAuto(part));
381
- }
382
- return _results;
383
- })();
384
- } else if (match = string.match(ipv4Regexes.longValue)) {
385
- value = parseIntAuto(match[1]);
386
- if (value > 0xffffffff || value < 0) {
387
- throw new Error("ipaddr: address outside defined range");
388
- }
389
- return ((function() {
390
- var _i, _results;
391
- _results = [];
392
- for (shift = _i = 0; _i <= 24; shift = _i += 8) {
393
- _results.push((value >> shift) & 0xff);
394
- }
395
- return _results;
396
- })()).reverse();
397
- } else {
398
- return null;
399
- }
400
- };
401
- IPUtilX.IPv4.parse = IPUtilX.IPv6.parse = function(string) {
402
- var parts;
403
- parts = this.parser(string);
404
- if (parts == null) {
405
- throw new Error("ipaddr: string is not formatted like ip address");
406
- }
407
- return new this(parts);
408
- };
409
-
410
- IPUtilX.toString = function(ip) {
411
- if(ip == null) {
412
- return empty;
413
- }
414
-
415
- try{
416
- if(typeof ip == 'number') {
417
- ip = DataOutputX.toBytes(ip);
418
- }
419
-
420
- if(typeof ip == 'object' && ip.length == 4) {
421
- var str = ip[0] & 0xff;
422
- str += '.';
423
- str += ip[1] & 0xff;
424
- str += '.';
425
- str += ip[2] & 0xff;
426
- str += '.';
427
- str += ip[3] & 0xff;
428
- }
429
- return str;
430
- } catch(e) {
431
- return empty;
432
- };
433
- };
434
- IPUtilX.toBytes = function(ip) {
435
- if(ip == null) {
436
- return [0, 0, 0, 0];
437
- }
438
-
439
- if(typeof ip == 'number') {
440
- return DataOutputX.toBytes(ip);
441
- }
442
-
443
- var result = new Array(4),
444
- s = ip.split('.');
445
-
446
- try {
447
- if(s.length != 4) {
448
- return [0, 0, 0, 0];
449
- }
450
- var val;
451
- for(var i=0; i<4; i++) {
452
- val = parseInt(s[i]);
453
- if(val < 0 || val > 0xff) {
454
- return [0, 0, 0, 0];
455
- }
456
- result[i] = (val & 0xff);
457
- }
458
- } catch(exeption) {
459
- return [0, 0, 0, 0];
460
- }
461
- return result;
462
- };
463
- IPUtilX.isOK = function(ip) {
464
- try {
465
- return ip != null && ip.length == 4;
466
- } catch(e) {
467
- return false;
468
- }
469
- };
470
- IPUtilX.isNotLocal = function(ip) {
471
- return this.isOK(ip) && (ip[0] & 0xff) != 127;
472
- };
473
- IPUtilX.getIp = function(){
474
- var interfaces = require('os').networkInterfaces();
475
- var results = [];
476
- Object
477
- .keys(interfaces)
478
- .map(function(key){
479
- results = results.concat(interfaces[key]);
480
- });
481
-
482
- results = results
483
- .filter(function(iface){
484
- return iface.family === 'IPv4' && !iface.internal;
485
- })
486
- .map(function(iface){ return iface.address });
487
- return (results[0] || "127.0.0.1");
488
- }
489
- IPUtilX.parse = function(string) {
490
- if (IPUtilX.IPv6.isValid(string)) {
491
- return IPUtilX.IPv6.parse(string);
492
- } else if (IPUtilX.IPv4.isValid(string)) {
493
- return IPUtilX.IPv4.parse(string);
494
- } else {
495
- throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format");
496
- }
497
- };
498
- IPUtilX.process = function(string) {
499
- var addr;
500
- addr = this.parse(string);
501
- if (addr.kind() === 'ipv6' && addr.isIPv4MappedAddress()) {
502
- return addr.toIPv4Address();
503
- } else {
504
- return addr;
505
- }
506
- };
507
- IPUtilX.subnetMatch = function(address, rangeList, defaultName) {
508
- var rangeName, rangeSubnets, subnet, _i, _len;
509
- if (defaultName == null) {
510
- defaultName = 'unicast';
511
- }
512
- for (rangeName in rangeList) {
513
- rangeSubnets = rangeList[rangeName];
514
- if (rangeSubnets[0] && !(rangeSubnets[0] instanceof Array)) {
515
- rangeSubnets = [rangeSubnets];
516
- }
517
- for (_i = 0, _len = rangeSubnets.length; _i < _len; _i++) {
518
- subnet = rangeSubnets[_i];
519
- if (address.match.apply(address, subnet)) {
520
- return rangeName;
521
- }
522
- }
523
- }
524
- return defaultName;
525
- };
526
-
527
- module.exports = IPUtilX;
@@ -1,73 +0,0 @@
1
- var fs = require('fs');
2
- var HashUtil2 = require('./hashutil2'),
3
- StringUtil = require('./string-util'),
4
- Logger = require('./../logger');
5
-
6
- var KubeUtil = {
7
- container_key: 0,
8
- container_id: undefined,
9
- loadFromMountinfo: function() {
10
- if (this.container_id) return;
11
-
12
- try{
13
- var content = fs.readFileSync("/proc/self/mountinfo");
14
- content = content.toString('utf-8');
15
- var contents = content.split('\n')
16
-
17
- for(var i = 0 ; i < contents.length ; i++){
18
- var line = contents[i].trim();
19
- if(line){
20
- if(line.indexOf("/kubelet/pods/") >= 0) {
21
- let lineParts = line.split("/kubelet/pods/");
22
- if (lineParts != null && lineParts.length > 1) {
23
- this.container_id= lineParts[1].split('/')[0];
24
- }
25
- if(this.container_id.length > 5){
26
- this.container_key = HashUtil2.hash(this.container_id);
27
- break;
28
- }
29
- }
30
- }
31
- }
32
- Logger.print('WHATAP-800' , 'loadFromMountinfo id:' + this.container_id + ' // key:' + this.container_key , false)
33
- }catch(e){
34
- Logger.printError('WHATAP-800', 'KubeUtil(loadFromMountinfo) ', e)
35
- }
36
- },
37
- loadContainerId: function(){
38
- if (this.container_id) return;
39
-
40
- try{
41
- var content = fs.readFileSync("/proc/self/cgroup");
42
- content = content.toString('utf-8');
43
- var contents = content.split('\n')
44
-
45
- for(var i = 0 ; i < contents.length ; i++){
46
- var line = contents[i].trim();
47
- if(line){
48
- if(line.indexOf("/ecs/") >= 0) {
49
- this.container_id = line.substr(line.lastIndexOf('/')+1) || '';
50
- } else{
51
- //this.container_id = line.substr(line.lastIndexOf('/')+1) || '';
52
- //this.container_id = this.container_id.replace(/^(docker-)+|(cri-containerd-)+|(crio-)+|(\\.scope)+$/ig, "");
53
- //container_id = container_id.replace(/^(docker-)+|(cri-)+|(cri-containerd-)+|(crio-)+|(.scope)+$/ig, "");
54
- this.container_id = line.substr(line.lastIndexOf('/')+1) || '';
55
- this.container_id = this.container_id.replace(/^|(.scope)+$/ig, "");
56
- this.container_id = this.container_id.substr(this.container_id.lastIndexOf('-')+1);
57
- this.container_id = this.container_id.substr(this.container_id.lastIndexOf(':')+1);
58
- }
59
-
60
- if(this.container_id.length > 5){
61
- this.container_key = HashUtil2.hash(this.container_id);
62
- break;
63
- }
64
- }
65
- }
66
- Logger.print('WHATAP-800' , 'loadContainerId id:' + this.container_id + ' // key:' + this.container_key , false);
67
- }catch(e){
68
- Logger.printError('WHATAP-800', 'KubeUtil(loadContainerId) ', e)
69
- }
70
- if(!this.container_key) this.loadFromMountinfo();
71
- }
72
- }
73
- module.exports = KubeUtil;
@@ -1,80 +0,0 @@
1
-
2
- var KeyGen = require('./keygen'),
3
- conf = require('../conf/configure'),
4
- fs = require('fs'),
5
- path = require('path');
6
- var Buffer = require('buffer').Buffer;
7
-
8
- var ParamSecurity = function () {
9
- this.key = null;
10
- this.reload();
11
- };
12
-
13
- ParamSecurity.prototype.getKey = function () {
14
- var s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
15
- var buf = '';
16
- for(var i=0; i<6; i++) {
17
- var x = Math.abs(parseInt(KeyGen.next() % s.length));
18
- buf += s.charAt(x);
19
- }
20
- return buf;
21
- };
22
-
23
- ParamSecurity.prototype.reload = function () {
24
- var home = conf['app.root'];
25
- if (home == null ) {
26
- var self = this;
27
- setTimeout(function () {
28
- self.reload();
29
- }, 5000);
30
- return;
31
- }
32
-
33
- var file = path.join(home, 'security.conf');
34
- var self = this;
35
- try {
36
- var stat = fs.statSync(file);
37
- if(stat.size != 6) {
38
- self.key = Buffer.from("WHATAP");
39
- return;
40
- }
41
- var readable = fs.createReadStream(file, {flags : 'r'});
42
- readable.on('readable', function () {
43
- if(self.key !== null
44
- && self.key !== undefined
45
- && self.key.length === 0 ) { return; }
46
- var chunk;
47
- while (null !== (chunk = readable.read())) {
48
- self.key = chunk;
49
- }
50
- self.key = Buffer.from(self.key);
51
- });
52
- } catch (e) {
53
- // self.key = self.getKey();
54
- self.key = 'WHATAP';
55
- var printWriter = fs.createWriteStream(file, {flags : 'w'});
56
- printWriter.write(self.key);
57
- self.key = Buffer.from(self.key);
58
- }
59
- };
60
- ParamSecurity.prototype.encrypt = function (b, crc) {
61
- var self = this;
62
- if(self.key == null || self.key.length === 0) {
63
- self.reload();
64
- return null;
65
- }
66
- for(var i=0, j=0; i<b.length; i++, j = (j + 1) % self.key.length) {
67
- crc.value ^= b[i];
68
- b[i] ^= self.key[j];
69
- }
70
-
71
- return b;
72
- };
73
- ParamSecurity.prototype.decrypt = function (b, crc, dkey) {
74
- for(var i=0, j=0; i<b.length; i++, j = (j+1) % dkey.length) {
75
- b[i] ^= dkey[j];
76
- crc.value ^= b[i];
77
- }
78
- return b;
79
- };
80
- module.exports = new ParamSecurity();
@@ -1,13 +0,0 @@
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
- // config 파일 확인
8
- // 지원 되는 버전 확인
9
- //(node version 확인)
10
- //(지원 되는 라이브러리 버전 확인 )
11
-
12
- // 라이센스 파일 확인
13
- // 라이센스 확인