node-opcua-transport 2.67.1 → 2.69.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 (41) hide show
  1. package/dist/source/client_tcp_transport.d.ts +8 -4
  2. package/dist/source/client_tcp_transport.js +15 -6
  3. package/dist/source/client_tcp_transport.js.map +1 -1
  4. package/dist/source/index.d.ts +5 -3
  5. package/dist/source/index.js +10 -4
  6. package/dist/source/index.js.map +1 -1
  7. package/dist/source/message_builder_base.d.ts +27 -7
  8. package/dist/source/message_builder_base.js +36 -13
  9. package/dist/source/message_builder_base.js.map +1 -1
  10. package/dist/source/server_tcp_transport.d.ts +1 -5
  11. package/dist/source/server_tcp_transport.js +42 -40
  12. package/dist/source/server_tcp_transport.js.map +1 -1
  13. package/dist/source/status_codes.d.ts +100 -0
  14. package/dist/source/status_codes.js +111 -0
  15. package/dist/source/status_codes.js.map +1 -0
  16. package/dist/source/tcp_transport.d.ts +21 -28
  17. package/dist/source/tcp_transport.js +86 -57
  18. package/dist/source/tcp_transport.js.map +1 -1
  19. package/dist/source/tools.d.ts +1 -0
  20. package/dist/source/utils.d.ts +3 -2
  21. package/dist/source/utils.js +4 -3
  22. package/dist/source/utils.js.map +1 -1
  23. package/dist/test-fixtures/index.js +5 -1
  24. package/dist/test-fixtures/index.js.map +1 -1
  25. package/dist/test_helpers/direct_transport.d.ts +4 -0
  26. package/dist/test_helpers/direct_transport.js.map +1 -1
  27. package/dist/test_helpers/fake_server.d.ts +2 -0
  28. package/dist/test_helpers/half_com_channel.d.ts +7 -0
  29. package/dist/test_helpers/half_com_channel.js.map +1 -1
  30. package/dist/test_helpers/index.js +5 -1
  31. package/dist/test_helpers/index.js.map +1 -1
  32. package/package.json +16 -16
  33. package/source/client_tcp_transport.ts +21 -9
  34. package/source/index.ts +5 -3
  35. package/source/message_builder_base.ts +68 -16
  36. package/source/server_tcp_transport.ts +51 -48
  37. package/source/status_codes.ts +109 -0
  38. package/source/tcp_transport.ts +118 -73
  39. package/source/utils.ts +3 -2
  40. package/test_helpers/direct_transport.ts +4 -1
  41. package/test_helpers/half_com_channel.ts +7 -0
@@ -3,11 +3,11 @@ import { ErrorCallback } from "node-opcua-status-code";
3
3
  import { TCP_transport } from "./tcp_transport";
4
4
  import { AcknowledgeMessage } from "./AcknowledgeMessage";
5
5
  export interface ClientTCP_transport {
6
- on(eventName: "message", eventHandler: (message: Buffer) => void): this;
6
+ on(eventName: "chunk", eventHandler: (messageChunk: Buffer) => void): this;
7
7
  on(eventName: "socket_closed", eventHandler: (err: Error | null) => void): this;
8
8
  on(eventName: "close", eventHandler: (err: Error | null) => void): this;
9
9
  on(eventName: "connection_break", eventHandler: () => void): this;
10
- once(eventName: "message", eventHandler: (message: Buffer) => void): this;
10
+ once(eventName: "chunk", eventHandler: (messageChunk: Buffer) => void): this;
11
11
  once(eventName: "socket_closed", eventHandler: (err: Error | null) => void): this;
12
12
  once(eventName: "close", eventHandler: (err: Error | null) => void): this;
13
13
  once(eventName: "connection_break", eventHandler: () => void): this;
@@ -41,8 +41,8 @@ export interface ClientTCP_transport {
41
41
  *
42
42
  * ....
43
43
  *
44
- * transport.on("message",function(message_chunk) {
45
- * // do something with message from server...
44
+ * transport.on("chunk",function(message_chunk) {
45
+ * // do something with chunk from server...
46
46
  * });
47
47
  *
48
48
  *
@@ -51,6 +51,10 @@ export interface ClientTCP_transport {
51
51
  *
52
52
  */
53
53
  export declare class ClientTCP_transport extends TCP_transport {
54
+ static defaultMaxChunk: number;
55
+ static defaultMaxMessageSize: number;
56
+ static defaultReceiveBufferSize: number;
57
+ static defaultSendBufferSize: number;
54
58
  endpointUrl: string;
55
59
  serverUri: string;
56
60
  numberOfRetry: number;
@@ -78,8 +78,8 @@ function createClientSocket(endpointUrl) {
78
78
  *
79
79
  * ....
80
80
  *
81
- * transport.on("message",function(message_chunk) {
82
- * // do something with message from server...
81
+ * transport.on("chunk",function(message_chunk) {
82
+ * // do something with chunk from server...
83
83
  * });
84
84
  *
85
85
  *
@@ -95,6 +95,10 @@ class ClientTCP_transport extends tcp_transport_1.TCP_transport {
95
95
  this.serverUri = "";
96
96
  this._counter = 0;
97
97
  this.numberOfRetry = 0;
98
+ // initially before HEL/ACK
99
+ this.maxChunkCount = 1;
100
+ this.maxMessageSize = 4 * 1024;
101
+ this.receiveBufferSize = 4 * 1024;
98
102
  }
99
103
  dispose() {
100
104
  /* istanbul ignore next */
@@ -237,6 +241,7 @@ class ClientTCP_transport extends tcp_transport_1.TCP_transport {
237
241
  _stream.rewind();
238
242
  response = (0, tools_1.decodeMessage)(_stream, responseClass);
239
243
  this.parameters = response;
244
+ this.setLimits(response);
240
245
  // istanbul ignore next
241
246
  if (utils_1.doTraceHelloAck) {
242
247
  warningLog("receiving Ack\n", response.toString());
@@ -256,11 +261,11 @@ class ClientTCP_transport extends tcp_transport_1.TCP_transport {
256
261
  // the server will receive it as message from the client
257
262
  const helloMessage = new HelloMessage_1.HelloMessage({
258
263
  endpointUrl: this.endpointUrl,
259
- maxChunkCount: 0,
260
- maxMessageSize: 0,
261
264
  protocolVersion: this.protocolVersion,
262
- receiveBufferSize: 1024 * 64 * 10,
263
- sendBufferSize: 1024 * 64 * 10 // 8192 min,
265
+ maxChunkCount: ClientTCP_transport.defaultMaxChunk,
266
+ maxMessageSize: ClientTCP_transport.defaultMaxMessageSize,
267
+ receiveBufferSize: ClientTCP_transport.defaultReceiveBufferSize,
268
+ sendBufferSize: ClientTCP_transport.defaultSendBufferSize
264
269
  });
265
270
  // istanbul ignore next
266
271
  if (utils_1.doTraceHelloAck) {
@@ -311,4 +316,8 @@ class ClientTCP_transport extends tcp_transport_1.TCP_transport {
311
316
  }
312
317
  }
313
318
  exports.ClientTCP_transport = ClientTCP_transport;
319
+ ClientTCP_transport.defaultMaxChunk = 0; // 0 - no limits
320
+ ClientTCP_transport.defaultMaxMessageSize = 0; // 0 - no limits
321
+ ClientTCP_transport.defaultReceiveBufferSize = 1024 * 64 * 10;
322
+ ClientTCP_transport.defaultSendBufferSize = 1024 * 64 * 10; // 8192 min,
314
323
  //# sourceMappingURL=client_tcp_transport.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client_tcp_transport.js","sourceRoot":"","sources":["../../source/client_tcp_transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client_tcp_transport.js","sourceRoot":"","sources":["../../source/client_tcp_transport.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,13 @@
1
1
  /**
2
2
  * @module node-opcua-transport
3
3
  */
4
- export * from "./HelloMessage";
5
4
  export * from "./AcknowledgeMessage";
6
- export * from "./TCPErrorMessage";
7
5
  export * from "./client_tcp_transport";
6
+ export * from "./HelloMessage";
7
+ export * from "./message_builder_base";
8
8
  export * from "./server_tcp_transport";
9
+ export * from "./status_codes";
9
10
  export * from "./tcp_transport";
11
+ export * from "./TCPErrorMessage";
10
12
  export * from "./tools";
11
- export * from "./message_builder_base";
13
+ export * from "./utils";
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -13,12 +17,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
13
17
  /**
14
18
  * @module node-opcua-transport
15
19
  */
16
- __exportStar(require("./HelloMessage"), exports);
17
20
  __exportStar(require("./AcknowledgeMessage"), exports);
18
- __exportStar(require("./TCPErrorMessage"), exports);
19
21
  __exportStar(require("./client_tcp_transport"), exports);
22
+ __exportStar(require("./HelloMessage"), exports);
23
+ __exportStar(require("./message_builder_base"), exports);
20
24
  __exportStar(require("./server_tcp_transport"), exports);
25
+ __exportStar(require("./status_codes"), exports);
21
26
  __exportStar(require("./tcp_transport"), exports);
27
+ __exportStar(require("./TCPErrorMessage"), exports);
22
28
  __exportStar(require("./tools"), exports);
23
- __exportStar(require("./message_builder_base"), exports);
29
+ __exportStar(require("./utils"), exports);
24
30
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;GAEG;AACH,iDAA+B;AAC/B,uDAAqC;AACrC,oDAAkC;AAClC,yDAAuC;AACvC,yDAAuC;AACvC,kDAAgC;AAChC,0CAAwB;AACxB,yDAAuC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;GAEG;AACH,uDAAqC;AACrC,yDAAuC;AACvC,iDAA+B;AAC/B,yDAAuC;AACvC,yDAAuC;AACvC,iDAA+B;AAC/B,kDAAgC;AAChC,oDAAkC;AAClC,0CAAwB;AACxB,0CAAwB"}
@@ -1,4 +1,5 @@
1
1
  /// <reference types="node" />
2
+ /// <reference types="node" />
2
3
  /**
3
4
  * @module node-opcua-transport
4
5
  */
@@ -6,7 +7,24 @@ import { EventEmitter } from "events";
6
7
  import { BinaryStream } from "node-opcua-binary-stream";
7
8
  import { SequenceHeader } from "node-opcua-chunkmanager";
8
9
  import { MessageHeader, PacketAssembler, PacketInfo } from "node-opcua-packet-assembler";
10
+ import { StatusCode } from "node-opcua-status-code";
9
11
  export declare function readRawMessageHeader(data: Buffer): PacketInfo;
12
+ export interface MessageBuilderBaseOptions {
13
+ signatureLength?: number;
14
+ maxMessageSize?: number;
15
+ maxChunkCount?: number;
16
+ maxChunkSize?: number;
17
+ }
18
+ export interface MessageBuilderBase {
19
+ on(eventName: "startChunk", eventHandler: (info: PacketInfo, data: Buffer) => void): this;
20
+ on(eventName: "chunk", eventHandler: (chunk: Buffer) => void): this;
21
+ on(eventName: "error", eventHandler: (err: Error, statusCode: StatusCode, requestId: number | null) => void): this;
22
+ on(eventName: "full_message_body", eventHandler: (fullMessageBody: Buffer) => void): this;
23
+ emit(eventName: "startChunk", info: PacketInfo, data: Buffer): boolean;
24
+ emit(eventName: "chunk", chunk: Buffer): boolean;
25
+ emit(eventName: "error", err: Error, statusCode: StatusCode, requestId: number | null): boolean;
26
+ emit(eventName: "full_message_body", fullMessageBody: Buffer): boolean;
27
+ }
10
28
  /**
11
29
  * @class MessageBuilderBase
12
30
  * @extends EventEmitter
@@ -17,10 +35,14 @@ export declare function readRawMessageHeader(data: Buffer): PacketInfo;
17
35
  *
18
36
  */
19
37
  export declare class MessageBuilderBase extends EventEmitter {
38
+ static defaultMaxChunkCount: number;
39
+ static defaultMaxMessageSize: number;
40
+ static defaultMaxChunkSize: number;
20
41
  readonly signatureLength: number;
21
- readonly options: {
22
- signatureLength?: number;
23
- };
42
+ readonly maxMessageSize: number;
43
+ readonly maxChunkCount: number;
44
+ readonly maxChunkSize: number;
45
+ readonly options: MessageBuilderBaseOptions;
24
46
  readonly _packetAssembler: PacketAssembler;
25
47
  channelId: number;
26
48
  totalMessageSize: number;
@@ -36,9 +58,7 @@ export declare class MessageBuilderBase extends EventEmitter {
36
58
  private blocks;
37
59
  private readonly _expectedChannelId;
38
60
  private offsetBodyStart;
39
- constructor(options?: {
40
- signatureLength?: number;
41
- });
61
+ constructor(options?: MessageBuilderBaseOptions);
42
62
  dispose(): void;
43
63
  /**
44
64
  * Feed message builder with some data
@@ -48,7 +68,7 @@ export declare class MessageBuilderBase extends EventEmitter {
48
68
  feed(data: Buffer): void;
49
69
  protected _decodeMessageBody(fullMessageBody: Buffer): boolean;
50
70
  protected _read_headers(binaryStream: BinaryStream): boolean;
51
- protected _report_error(errorMessage: string): false;
71
+ protected _report_error(statusCode: StatusCode, errorMessage: string): false;
52
72
  private _init_new;
53
73
  /**
54
74
  * append a message chunk
@@ -12,9 +12,11 @@ const node_opcua_chunkmanager_1 = require("node-opcua-chunkmanager");
12
12
  const node_opcua_debug_1 = require("node-opcua-debug");
13
13
  const node_opcua_packet_assembler_1 = require("node-opcua-packet-assembler");
14
14
  const node_opcua_utils_1 = require("node-opcua-utils");
15
+ const status_codes_1 = require("./status_codes");
15
16
  const doPerfMonitoring = process.env.NODEOPCUADEBUG && process.env.NODEOPCUADEBUG.indexOf("PERF") >= 0;
16
17
  const errorLog = (0, node_opcua_debug_1.make_errorLog)("MessageBuilder");
17
18
  const debugLog = (0, node_opcua_debug_1.make_debugLog)("MessageBuilder");
19
+ const warningLog = (0, node_opcua_debug_1.make_warningLog)("MessageBuilder");
18
20
  function readRawMessageHeader(data) {
19
21
  const messageHeader = (0, node_opcua_chunkmanager_1.readMessageHeader)(new node_opcua_binary_stream_1.BinaryStream(data));
20
22
  return {
@@ -43,15 +45,23 @@ class MessageBuilderBase extends events_1.EventEmitter {
43
45
  this.blocks = [];
44
46
  this.messageChunks = [];
45
47
  this._expectedChannelId = 0;
46
- options = options || {};
48
+ options = options || {
49
+ maxMessageSize: 0,
50
+ maxChunkCount: 0,
51
+ maxChunkSize: 0
52
+ };
47
53
  this.signatureLength = options.signatureLength || 0;
54
+ this.maxMessageSize = options.maxMessageSize || MessageBuilderBase.defaultMaxMessageSize;
55
+ this.maxChunkCount = options.maxChunkCount || MessageBuilderBase.defaultMaxChunkCount;
56
+ this.maxChunkSize = options.maxChunkSize || MessageBuilderBase.defaultMaxChunkSize;
48
57
  this.options = options;
49
58
  this._packetAssembler = new node_opcua_packet_assembler_1.PacketAssembler({
50
- minimumSizeInBytes: 0,
51
- readMessageFunc: readRawMessageHeader
59
+ minimumSizeInBytes: 8,
60
+ maxChunkSize: this.maxChunkSize,
61
+ readChunkFunc: readRawMessageHeader
52
62
  });
53
- this._packetAssembler.on("message", (messageChunk) => this._feed_messageChunk(messageChunk));
54
- this._packetAssembler.on("newMessage", (info, data) => {
63
+ this._packetAssembler.on("chunk", (messageChunk) => this._feed_messageChunk(messageChunk));
64
+ this._packetAssembler.on("startChunk", (info, data) => {
55
65
  if (doPerfMonitoring) {
56
66
  // record tick 0: when the first data is received
57
67
  this._tick0 = (0, node_opcua_utils_1.get_clock_tick)();
@@ -63,7 +73,11 @@ class MessageBuilderBase extends events_1.EventEmitter {
63
73
  * @param info
64
74
  * @param data
65
75
  */
66
- this.emit("start_chunk", info, data);
76
+ this.emit("startChunk", info, data);
77
+ });
78
+ this._packetAssembler.on("error", (err) => {
79
+ warningLog("packet assembler ", err.message);
80
+ return this._report_error(status_codes_1.StatusCodes2.BadTcpMessageTooLarge, "packet assembler: " + err.message);
67
81
  });
68
82
  this._securityDefeated = false;
69
83
  this.totalBodySize = 0;
@@ -97,15 +111,15 @@ class MessageBuilderBase extends events_1.EventEmitter {
97
111
  (0, node_opcua_assert_1.assert)(binaryStream.length === 12);
98
112
  // verifying secure ChannelId
99
113
  if (this._expectedChannelId && this.channelId !== this._expectedChannelId) {
100
- return this._report_error("Invalid secure channel Id");
114
+ return this._report_error(status_codes_1.StatusCodes2.BadTcpSecureChannelUnknown, "Invalid secure channel Id");
101
115
  }
102
116
  return true;
103
117
  }
104
118
  catch (err) {
105
- return false;
119
+ return this._report_error(status_codes_1.StatusCodes2.BadTcpInternalError, "_read_headers error " + err.message);
106
120
  }
107
121
  }
108
- _report_error(errorMessage) {
122
+ _report_error(statusCode, errorMessage) {
109
123
  this._hasReceivedError = true;
110
124
  /**
111
125
  * notify the observers that an error has occurred
@@ -114,7 +128,7 @@ class MessageBuilderBase extends events_1.EventEmitter {
114
128
  */
115
129
  debugLog("Error ", this.id, errorMessage);
116
130
  // xx errorLog(new Error());
117
- this.emit("error", new Error(errorMessage), this.sequenceHeader ? this.sequenceHeader.requestId : null);
131
+ this.emit("error", new Error(errorMessage), statusCode, this.sequenceHeader ? this.sequenceHeader.requestId : null);
118
132
  return false;
119
133
  }
120
134
  _init_new() {
@@ -136,17 +150,23 @@ class MessageBuilderBase extends events_1.EventEmitter {
136
150
  // the message builder is in error mode and further message chunks should be discarded.
137
151
  return false;
138
152
  }
153
+ if (this.messageChunks.length + 1 > this.maxChunkCount) {
154
+ return this._report_error(status_codes_1.StatusCodes2.BadTcpMessageTooLarge, `max chunk count exceeded: ${this.maxChunkCount}`);
155
+ }
139
156
  this.messageChunks.push(chunk);
140
157
  this.totalMessageSize += chunk.length;
158
+ if (this.totalMessageSize > this.maxMessageSize) {
159
+ return this._report_error(status_codes_1.StatusCodes2.BadTcpMessageTooLarge, `max message size exceeded: ${this.maxMessageSize}`);
160
+ }
141
161
  const binaryStream = new node_opcua_binary_stream_1.BinaryStream(chunk);
142
162
  if (!this._read_headers(binaryStream)) {
143
- return this._report_error(`Invalid message header detected`);
163
+ return this._report_error(status_codes_1.StatusCodes2.BadTcpInternalError, `Invalid message header detected`);
144
164
  }
145
165
  (0, node_opcua_assert_1.assert)(binaryStream.length >= 12);
146
166
  // verify message chunk length
147
167
  if (this.messageHeader.length !== chunk.length) {
148
168
  // tslint:disable:max-line-length
149
- return this._report_error(`Invalid messageChunk size: the provided chunk is ${chunk.length} bytes long but header specifies ${this.messageHeader.length}`);
169
+ return this._report_error(status_codes_1.StatusCodes2.BadTcpInternalError, `Invalid messageChunk size: the provided chunk is ${chunk.length} bytes long but header specifies ${this.messageHeader.length}`);
150
170
  }
151
171
  // the start of the message body block
152
172
  const offsetBodyStart = binaryStream.length;
@@ -195,7 +215,7 @@ class MessageBuilderBase extends events_1.EventEmitter {
195
215
  return true;
196
216
  }
197
217
  else if (messageHeader.isFinal === "A") {
198
- return this._report_error("received and Abort Message");
218
+ return this._report_error(status_codes_1.StatusCodes2.BadRequestInterrupted, "received and Abort Message");
199
219
  }
200
220
  else if (messageHeader.isFinal === "C") {
201
221
  return this._append(chunk);
@@ -204,4 +224,7 @@ class MessageBuilderBase extends events_1.EventEmitter {
204
224
  }
205
225
  }
206
226
  exports.MessageBuilderBase = MessageBuilderBase;
227
+ MessageBuilderBase.defaultMaxChunkCount = 1000;
228
+ MessageBuilderBase.defaultMaxMessageSize = 1024 * 64;
229
+ MessageBuilderBase.defaultMaxChunkSize = 1024 * 8;
207
230
  //# sourceMappingURL=message_builder_base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"message_builder_base.js","sourceRoot":"","sources":["../../source/message_builder_base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message_builder_base.js","sourceRoot":"","sources":["../../source/message_builder_base.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  /// <reference types="node" />
2
+ /// <reference types="node" />
2
3
  /**
3
4
  * @module node-opcua-transport
4
5
  */
@@ -14,11 +15,6 @@ import { TCP_transport } from "./tcp_transport";
14
15
  */
15
16
  export declare class ServerTCP_transport extends TCP_transport {
16
17
  static throttleTime: number;
17
- receiveBufferSize: number;
18
- sendBufferSize: number;
19
- maxMessageSize: number;
20
- maxChunkCount: number;
21
- protocolVersion: number;
22
18
  private _aborted;
23
19
  private _helloReceived;
24
20
  constructor();
@@ -12,7 +12,6 @@ const node_opcua_status_code_1 = require("node-opcua-status-code");
12
12
  const AcknowledgeMessage_1 = require("./AcknowledgeMessage");
13
13
  const HelloMessage_1 = require("./HelloMessage");
14
14
  const tcp_transport_1 = require("./tcp_transport");
15
- const TCPErrorMessage_1 = require("./TCPErrorMessage");
16
15
  const tools_1 = require("./tools");
17
16
  const utils_1 = require("./utils");
18
17
  const hexDump = debug.hexDump;
@@ -45,13 +44,13 @@ class ServerTCP_transport extends tcp_transport_1.TCP_transport {
45
44
  super();
46
45
  this._aborted = 0;
47
46
  this._helloReceived = false;
48
- this.receiveBufferSize = 0;
49
- this.sendBufferSize = 0;
50
- this.maxMessageSize = 0;
51
- this.maxChunkCount = 0;
52
- this.protocolVersion = 0;
47
+ // before HEL/ACK
48
+ this.maxChunkCount = 1;
49
+ this.maxMessageSize = 4 * 1024;
50
+ this.receiveBufferSize = 4 * 1024;
53
51
  }
54
52
  _write_chunk(messageChunk) {
53
+ // istanbul ignore next
55
54
  if (this.sendBufferSize > 0 && messageChunk.length > this.sendBufferSize) {
56
55
  errorLog("write chunk exceed sendBufferSize messageChunk length = ", messageChunk.length, "sendBufferSize = ", this.sendBufferSize);
57
56
  }
@@ -86,47 +85,50 @@ class ServerTCP_transport extends tcp_transport_1.TCP_transport {
86
85
  return this._abortWithError(statusCode, extraErrorDescription, callback);
87
86
  }
88
87
  _abortWithError(statusCode, extraErrorDescription, callback) {
89
- if (debugLog) {
90
- debugLog(chalk.cyan("_abortWithError"));
91
- }
92
- (0, node_opcua_assert_1.assert)(typeof callback === "function", "expecting a callback");
93
- /* istanbul ignore else */
94
- if (!this._aborted) {
95
- this._aborted = 1;
96
- setTimeout(() => {
97
- // send the error message and close the connection
98
- (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(node_opcua_status_code_1.StatusCodes, statusCode.name));
99
- /* istanbul ignore next*/
100
- if (doDebug) {
101
- debugLog(chalk.red(" Server aborting because ") + chalk.cyan(statusCode.name));
102
- debugLog(chalk.red(" extraErrorDescription ") + chalk.cyan(extraErrorDescription));
103
- }
104
- const errorResponse = new TCPErrorMessage_1.TCPErrorMessage({
105
- reason: statusCode.description,
106
- statusCode
107
- });
108
- const messageChunk = (0, tools_1.packTcpMessage)("ERR", errorResponse);
109
- this.write(messageChunk);
110
- this.disconnect(() => {
111
- this._aborted = 2;
112
- callback(new Error(extraErrorDescription + " StatusCode = " + statusCode.name));
113
- });
114
- }, ServerTCP_transport.throttleTime);
115
- }
116
- else {
117
- callback(new Error(statusCode.name));
88
+ // When a fatal error occurs, the Server shall send an Error Message to the Client and
89
+ // closes the TransportConnection gracefully.
90
+ doDebug && debugLog(chalk.cyan("_abortWithError"));
91
+ /* istanbul ignore next */
92
+ if (this._aborted) {
93
+ // already called
94
+ return callback(new Error(statusCode.name));
118
95
  }
96
+ this._aborted = 1;
97
+ setTimeout(() => {
98
+ // send the error message and close the connection
99
+ this.sendErrorMessage(statusCode, statusCode.description);
100
+ this.disconnect(() => {
101
+ this._aborted = 2;
102
+ callback(new Error(extraErrorDescription + " StatusCode = " + statusCode.name));
103
+ });
104
+ }, ServerTCP_transport.throttleTime);
119
105
  }
120
106
  _send_ACK_response(helloMessage) {
121
107
  (0, node_opcua_assert_1.assert)(helloMessage.receiveBufferSize >= minimumBufferSize);
122
108
  (0, node_opcua_assert_1.assert)(helloMessage.sendBufferSize >= minimumBufferSize);
123
- this.receiveBufferSize = clamp_value(helloMessage.receiveBufferSize, 8192, 512 * 1024);
124
- this.sendBufferSize = clamp_value(helloMessage.sendBufferSize, 8192, 512 * 1024);
125
- this.maxMessageSize = clamp_value(helloMessage.maxMessageSize, 100000, 64 * 1024 * 1024);
126
- this.maxChunkCount = clamp_value(helloMessage.maxChunkCount, 0, 65535);
109
+ const minBufferSize = 8192;
110
+ const maxBufferSize = 64 * 1024;
111
+ const minMaxMessageSize = 128 * 1024;
112
+ const defaultMaxMessageSize = 16 * 1024 * 1024;
113
+ const maxMaxMessageSize = 128 * 1024 * 1024;
114
+ const minMaxChunkCount = 1;
115
+ const defaultMaxChunkCount = defaultMaxMessageSize / maxBufferSize;
116
+ const maxMaxChunkCount = 9000;
117
+ const receiveBufferSize = 32 * 1024;
118
+ const sendBufferSize = 32 * 1024;
119
+ if (!helloMessage.maxChunkCount && helloMessage.sendBufferSize) {
120
+ helloMessage.maxChunkCount = helloMessage.maxMessageSize / helloMessage.sendBufferSize;
121
+ }
122
+ this.setLimits({
123
+ receiveBufferSize: clamp_value(helloMessage.receiveBufferSize || receiveBufferSize, minBufferSize, maxBufferSize),
124
+ sendBufferSize: clamp_value(helloMessage.sendBufferSize || sendBufferSize, minBufferSize, maxBufferSize),
125
+ maxMessageSize: clamp_value(helloMessage.maxMessageSize || defaultMaxMessageSize, minMaxMessageSize, maxMaxMessageSize),
126
+ maxChunkCount: clamp_value(helloMessage.maxChunkCount || defaultMaxChunkCount, minMaxChunkCount, maxMaxChunkCount)
127
+ });
127
128
  // istanbul ignore next
128
129
  if (utils_1.doTraceHelloAck) {
129
130
  console.log(`received Hello \n${helloMessage.toString()}`);
131
+ console.log("Client accepts only message of size => ", this.maxMessageSize);
130
132
  }
131
133
  debugLog("Client accepts only message of size => ", this.maxMessageSize);
132
134
  const acknowledgeMessage = new AcknowledgeMessage_1.AcknowledgeMessage({
@@ -171,7 +173,7 @@ class ServerTCP_transport extends tcp_transport_1.TCP_transport {
171
173
  }
172
174
  (0, node_opcua_assert_1.assert)(!this._helloReceived);
173
175
  const stream = new node_opcua_binary_stream_1.BinaryStream(data);
174
- const msgType = data.slice(0, 3).toString("ascii");
176
+ const msgType = data.slice(0, 3).toString("utf-8");
175
177
  /* istanbul ignore next*/
176
178
  if (doDebug) {
177
179
  debugLog("SERVER received " + chalk.yellow(msgType));
@@ -1 +1 @@
1
- {"version":3,"file":"server_tcp_transport.js","sourceRoot":"","sources":["../../source/server_tcp_transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server_tcp_transport.js","sourceRoot":"","sources":["../../source/server_tcp_transport.ts"],"names":[],"mappings":";;;AAMA,+BAA+B;AAC/B,yDAA2C;AAE3C,iBAAiB;AACjB,0CAA0C;AAC1C,uEAAwD;AACxD,qEAA+D;AAC/D,mEAAiE;AAGjE,wBAAwB;AACxB,6DAA0D;AAC1D,iDAA8C;AAC9C,mDAAgD;AAEhD,mCAAwD;AACxD,mCAA0C;AAE1C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AACjD,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;AAIjD,SAAS,WAAW,CAAC,KAAa,EAAE,MAAc,EAAE,MAAc;IAC9D,IAAA,0BAAM,EAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IACxB,IAAI,KAAK,KAAK,CAAC,EAAE;QACb,OAAO,MAAM,CAAC;KACjB;IACD,IAAI,KAAK,GAAG,MAAM,EAAE;QAChB,OAAO,MAAM,CAAC;KACjB;IACD,yBAAyB;IACzB,IAAI,KAAK,IAAI,MAAM,EAAE;QACjB,OAAO,MAAM,CAAC;KACjB;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAE/B;;;;;GAKG;AACH,MAAa,mBAAoB,SAAQ,6BAAa;IAMlD;QACI,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAE5B,iBAAiB;QACjB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,iBAAiB,GAAG,CAAC,GAAG,IAAI,CAAC;IACtC,CAAC;IAES,YAAY,CAAC,YAAoB;QAEvC,uBAAuB;QACvB,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE;YACtE,QAAQ,CACJ,0DAA0D,EAC1D,YAAY,CAAC,MAAM,EACnB,mBAAmB,EACnB,IAAI,CAAC,cAAc,CACtB,CAAC;SACL;QAED,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC;IACD;;;;;;;;;;;;;;;OAeG;IACI,IAAI,CAAC,MAAc,EAAE,QAAuB;QAC/C,IAAI,QAAQ,EAAE;YACV,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;SACvC;QACD,IAAA,0BAAM,EAAC,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;QAC9C,IAAA,0BAAM,EAAC,OAAO,QAAQ,KAAK,UAAU,EAAE,6BAA6B,CAAC,CAAC;QACtE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IAEM,cAAc,CAAC,UAAsB,EAAE,qBAA6B,EAAE,QAAuB;QAChG,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,qBAAqB,EAAE,QAAQ,CAAC,CAAC;IAC7E,CAAC;IAEO,eAAe,CAAC,UAAsB,EAAE,qBAA6B,EAAE,QAAuB;QAClG,sFAAsF;QACtF,6CAA6C;QAC7C,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAEnD,0BAA0B;QAC1B,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,iBAAiB;YACjB,OAAO,QAAQ,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;SAC/C;QACD,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAElB,UAAU,CAAC,GAAG,EAAE;YACZ,kDAAkD;YAClD,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;YAE1D,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE;gBACjB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;gBAClB,QAAQ,CAAC,IAAI,KAAK,CAAC,qBAAqB,GAAG,gBAAgB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;YACpF,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC;IACzC,CAAC;IAEO,kBAAkB,CAAC,YAA0B;QACjD,IAAA,0BAAM,EAAC,YAAY,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,CAAC;QAC5D,IAAA,0BAAM,EAAC,YAAY,CAAC,cAAc,IAAI,iBAAiB,CAAC,CAAC;QAEzD,MAAM,aAAa,GAAG,IAAI,CAAC;QAC3B,MAAM,aAAa,GAAG,EAAE,GAAG,IAAI,CAAC;QAEhC,MAAM,iBAAiB,GAAG,GAAG,GAAG,IAAI,CAAC;QACrC,MAAM,qBAAqB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;QAC/C,MAAM,iBAAiB,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;QAE5C,MAAM,gBAAgB,GAAG,CAAC,CAAC;QAC3B,MAAM,oBAAoB,GAAG,qBAAqB,GAAG,aAAa,CAAC;QACnE,MAAM,gBAAgB,GAAG,IAAI,CAAC;QAE9B,MAAM,iBAAiB,GAAG,EAAE,GAAG,IAAI,CAAC;QACpC,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,CAAC;QAEjC,IAAI,CAAC,YAAY,CAAC,aAAa,IAAI,YAAY,CAAC,cAAc,EAAE;YAC5D,YAAY,CAAC,aAAa,GAAG,YAAY,CAAC,cAAc,GAAG,YAAY,CAAC,cAAc,CAAC;SAC1F;QAED,IAAI,CAAC,SAAS,CAAC;YACX,iBAAiB,EAAE,WAAW,CAAC,YAAY,CAAC,iBAAiB,IAAI,iBAAiB,EAAE,aAAa,EAAE,aAAa,CAAC;YACjH,cAAc,EAAE,WAAW,CAAC,YAAY,CAAC,cAAc,IAAI,cAAc,EAAE,aAAa,EAAE,aAAa,CAAC;YACxG,cAAc,EAAE,WAAW,CAAC,YAAY,CAAC,cAAc,IAAI,qBAAqB,EAAE,iBAAiB,EAAE,iBAAiB,CAAC;YACvH,aAAa,EAAE,WAAW,CAAC,YAAY,CAAC,aAAa,IAAI,oBAAoB,EAAE,gBAAgB,EAAE,gBAAgB,CAAC;SACrH,CAAC,CAAC;QAEH,uBAAuB;QACvB,IAAI,uBAAe,EAAE;YACjB,OAAO,CAAC,GAAG,CAAC,oBAAoB,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,yCAAyC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SAC/E;QAED,QAAQ,CAAC,yCAAyC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAEzE,MAAM,kBAAkB,GAAG,IAAI,uCAAkB,CAAC;YAC9C,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,cAAc,EAAE,IAAI,CAAC,cAAc;SACtC,CAAC,CAAC;QAEH,uBAAuB;QACvB,IAAI,uBAAe,EAAE;YACjB,OAAO,CAAC,GAAG,CAAC,iBAAiB,kBAAkB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;SACjE;QAED,MAAM,YAAY,GAAG,IAAA,sBAAc,EAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;QAE/D,yBAAyB;QACzB,IAAI,OAAO,EAAE;YACT,IAAA,8CAAoB,EAAC,YAAY,CAAC,CAAC;YACnC,QAAQ,CAAC,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAChD,QAAQ,CAAC,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;YAClD,QAAQ,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,CAAC;SACvD;QAED,qBAAqB;QACrB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC7B,CAAC;IAEO,6BAA6B,CAAC,QAAuB;QACzD,IAAI,QAAQ,EAAE;YACV,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC;SAC1D;QACD,IAAI,CAAC,kCAAkC,CAAC,CAAC,GAAkB,EAAE,IAAa,EAAE,EAAE;YAC1E,IAAI,GAAG,EAAE;gBACL,IAAI,CAAC,eAAe,CAAC,oCAAW,CAAC,qBAAqB,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;aAClF;iBAAM;gBACH,yBAAyB;gBACzB,IAAI,CAAC,eAAe,CAAC,IAAK,EAAE,QAAQ,CAAC,CAAC;aACzC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,eAAe,CAAC,IAAY,EAAE,QAAuB;QACzD,IAAI,QAAQ,EAAE;YACV,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;SAC3C;QACD,IAAA,0BAAM,EAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,uCAAY,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEnD,yBAAyB;QACzB,IAAI,OAAO,EAAE;YACT,QAAQ,CAAC,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACrD,QAAQ,CAAC,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;SAChD;QAED,IAAI,OAAO,KAAK,KAAK,EAAE;YACnB,IAAI;gBACA,IAAA,0BAAM,EAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;gBAC1B,MAAM,YAAY,GAAG,IAAA,qBAAa,EAAC,MAAM,EAAE,2BAAY,CAAiB,CAAC;gBACzE,IAAA,0BAAM,EAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;gBAEvC,mCAAmC;gBACnC,yEAAyE;gBACzE,IAAI,YAAY,CAAC,eAAe,KAAK,IAAI,CAAC,eAAe,EAAE;oBACvD,QAAQ,CACJ,uDAAuD;wBACnD,MAAM,YAAY,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG;wBAClD,uCAAuC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CACjF,CAAC;iBACL;gBAED,IAAI,YAAY,CAAC,eAAe,KAAK,UAAU,IAAI,YAAY,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE;oBACpG,oGAAoG;oBACpG,+CAA+C;oBAC/C,OAAO,IAAI,CAAC,eAAe,CACvB,oCAAW,CAAC,6BAA6B,EACzC,wBAAwB,GAAG,IAAI,CAAC,eAAe,EAC/C,QAAQ,CACX,CAAC;iBACL;gBAED,mCAAmC;gBACnC,6FAA6F;gBAC7F,6FAA6F;gBAC7F,uFAAuF;gBACvF,gGAAgG;gBAChG,IAAI,YAAY,CAAC,iBAAiB,GAAG,iBAAiB,IAAI,YAAY,CAAC,cAAc,GAAG,iBAAiB,EAAE;oBACvG,OAAO,IAAI,CAAC,eAAe,CACvB,oCAAW,CAAC,qBAAqB,EACjC,4CAA4C,GAAG,iBAAiB,EAChE,QAAQ,CACX,CAAC;iBACL;gBACD,gDAAgD;gBAChD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;aACzC;YAAC,OAAO,GAAG,EAAE;gBACV,mDAAmD;gBACnD,OAAO,IAAI,CAAC,eAAe,CAAC,oCAAW,CAAC,qBAAqB,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;aACrH;YACD,QAAQ,EAAE,CAAC,CAAC,WAAW;SAC1B;aAAM;YACH,iCAAiC;YACjC,yBAAyB;YACzB,IAAI,OAAO,EAAE;gBACT,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC,GAAG,mDAAmD,CAAC,CAAC;aACvG;YACD,IAAI,CAAC,eAAe,CAAC,oCAAW,CAAC,qBAAqB,EAAE,mDAAmD,EAAE,QAAQ,CAAC,CAAC;SAC1H;IACL,CAAC;;AAtOL,kDAuOC;AAtOiB,gCAAY,GAAG,IAAI,CAAC"}