node-opcua-transport 2.99.0 → 2.101.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 (36) hide show
  1. package/dist/source/client_tcp_transport.d.ts +4 -9
  2. package/dist/source/client_tcp_transport.js +36 -70
  3. package/dist/source/client_tcp_transport.js.map +1 -1
  4. package/dist/source/server_tcp_transport.d.ts +3 -15
  5. package/dist/source/server_tcp_transport.js +38 -40
  6. package/dist/source/server_tcp_transport.js.map +1 -1
  7. package/dist/source/tcp_transport.d.ts +44 -28
  8. package/dist/source/tcp_transport.js +155 -110
  9. package/dist/source/tcp_transport.js.map +1 -1
  10. package/dist/test_helpers/ITransportPair.d.ts +7 -0
  11. package/dist/test_helpers/ITransportPair.js +3 -0
  12. package/dist/test_helpers/ITransportPair.js.map +1 -0
  13. package/dist/test_helpers/fake_server.d.ts +2 -0
  14. package/dist/test_helpers/fake_server.js +3 -0
  15. package/dist/test_helpers/fake_server.js.map +1 -1
  16. package/dist/test_helpers/half_com_channel.d.ts +17 -10
  17. package/dist/test_helpers/half_com_channel.js +63 -4
  18. package/dist/test_helpers/half_com_channel.js.map +1 -1
  19. package/dist/test_helpers/index.d.ts +2 -2
  20. package/dist/test_helpers/index.js +2 -2
  21. package/dist/test_helpers/index.js.map +1 -1
  22. package/dist/test_helpers/{direct_transport.d.ts → transport_pair_direct.d.ts} +2 -6
  23. package/dist/test_helpers/{direct_transport.js → transport_pair_direct.js} +11 -18
  24. package/dist/test_helpers/transport_pair_direct.js.map +1 -0
  25. package/dist/test_helpers/transport_pair_socket.d.ts +14 -0
  26. package/dist/test_helpers/transport_pair_socket.js +33 -0
  27. package/dist/test_helpers/transport_pair_socket.js.map +1 -0
  28. package/dist/tsconfig.tsbuildinfo +1 -1
  29. package/package.json +3 -2
  30. package/source/client_tcp_transport.ts +55 -88
  31. package/source/server_tcp_transport.ts +46 -49
  32. package/source/tcp_transport.ts +224 -155
  33. package/dist/test_helpers/direct_transport.js.map +0 -1
  34. package/dist/test_helpers/socket_transport.d.ts +0 -10
  35. package/dist/test_helpers/socket_transport.js +0 -31
  36. package/dist/test_helpers/socket_transport.js.map +0 -1
@@ -4,17 +4,14 @@ import { TCP_transport } from "./tcp_transport";
4
4
  import { AcknowledgeMessage } from "./AcknowledgeMessage";
5
5
  export interface ClientTCP_transport {
6
6
  on(eventName: "chunk", eventHandler: (messageChunk: Buffer) => void): this;
7
- on(eventName: "socket_closed", eventHandler: (err: Error | null) => void): this;
8
7
  on(eventName: "close", eventHandler: (err: Error | null) => void): this;
9
8
  on(eventName: "connection_break", eventHandler: () => void): this;
10
9
  on(eventName: "connect", eventHandler: () => void): this;
11
10
  once(eventName: "chunk", eventHandler: (messageChunk: Buffer) => void): this;
12
- once(eventName: "socket_closed", eventHandler: (err: Error | null) => void): this;
13
11
  once(eventName: "close", eventHandler: (err: Error | null) => void): this;
14
12
  once(eventName: "connection_break", eventHandler: () => void): this;
15
13
  once(eventName: "connect", eventHandler: () => void): this;
16
14
  emit(eventName: "chunk", messageChunk: Buffer): boolean;
17
- emit(eventName: "socket_closed", err?: Error | null): boolean;
18
15
  emit(eventName: "close", err?: Error | null): boolean;
19
16
  emit(eventName: "connection_break"): boolean;
20
17
  emit(eventName: "connect"): boolean;
@@ -40,7 +37,7 @@ export interface TransportSettingsOptions {
40
37
  *
41
38
  * transport.timeout = 10000;
42
39
  *
43
- * transport.connect(function(err)) {
40
+ * transport.connect(function (err)) {
44
41
  * if (err) {
45
42
  * // cannot connect
46
43
  * } else {
@@ -50,16 +47,16 @@ export interface TransportSettingsOptions {
50
47
  * });
51
48
  * ....
52
49
  *
53
- * transport.write(message_chunk,'F');
50
+ * transport.write(message_chunk, 'F');
54
51
  *
55
52
  * ....
56
53
  *
57
- * transport.on("chunk",function(message_chunk) {
54
+ * transport.on("chunk", function (message_chunk) {
58
55
  * // do something with chunk from server...
59
56
  * });
60
57
  *
61
58
  *
62
- * ```
59
+ * ```
63
60
  *
64
61
  *
65
62
  */
@@ -72,14 +69,12 @@ export declare class ClientTCP_transport extends TCP_transport {
72
69
  serverUri: string;
73
70
  numberOfRetry: number;
74
71
  parameters?: AcknowledgeMessage;
75
- private connected;
76
72
  private _counter;
77
73
  private _helloSettings;
78
74
  constructor(transportSettings?: TransportSettingsOptions);
79
75
  getTransportSettings(): TransportSettingsOptions;
80
76
  dispose(): void;
81
77
  connect(endpointUrl: string, callback: ErrorCallback): void;
82
- protected on_socket_ended(err: Error | null): void;
83
78
  private _handle_ACK_response;
84
79
  private _send_HELLO_request;
85
80
  private _on_ACK_response;
@@ -22,7 +22,7 @@ const debugLog = debug.make_debugLog(__filename);
22
22
  const warningLog = debug.make_warningLog(__filename);
23
23
  const errorLog = debug.make_errorLog(__filename);
24
24
  const gHostname = os.hostname();
25
- function createClientSocket(endpointUrl) {
25
+ function createClientSocket(endpointUrl, timeout) {
26
26
  // create a socket based on Url
27
27
  const ep = (0, tools_1.parseEndpointUrl)(endpointUrl);
28
28
  const port = parseInt(ep.port, 10);
@@ -30,19 +30,17 @@ function createClientSocket(endpointUrl) {
30
30
  let socket;
31
31
  switch (ep.protocol) {
32
32
  case "opc.tcp:":
33
- socket = (0, net_1.createConnection)({ host: hostname, port });
34
- socket.setKeepAlive(true);
35
- // Setting true for noDelay will immediately fire off data each time socket.write() is called.
36
- socket.setNoDelay(true);
33
+ socket = (0, net_1.createConnection)({ host: hostname, port, timeout }, () => {
34
+ doDebug && debugLog(`connected to server! ${hostname}:${port} timeout:${timeout} `);
35
+ });
37
36
  return socket;
38
37
  case "fake:":
39
- socket = (0, tcp_transport_1.getFakeTransport)();
40
38
  (0, node_opcua_assert_1.assert)(ep.protocol === "fake:", " Unsupported transport protocol");
41
- process.nextTick(() => socket.emit("connect"));
39
+ socket = (0, tcp_transport_1.getFakeTransport)();
42
40
  return socket;
43
41
  case "websocket:":
44
42
  case "http:":
45
- case "https:FF":
43
+ case "https:":
46
44
  default: {
47
45
  const msg = "[NODE-OPCUA-E05] this transport protocol is not supported :" + ep.protocol;
48
46
  errorLog(msg);
@@ -65,7 +63,7 @@ function createClientSocket(endpointUrl) {
65
63
  *
66
64
  * transport.timeout = 10000;
67
65
  *
68
- * transport.connect(function(err)) {
66
+ * transport.connect(function (err)) {
69
67
  * if (err) {
70
68
  * // cannot connect
71
69
  * } else {
@@ -75,23 +73,22 @@ function createClientSocket(endpointUrl) {
75
73
  * });
76
74
  * ....
77
75
  *
78
- * transport.write(message_chunk,'F');
76
+ * transport.write(message_chunk, 'F');
79
77
  *
80
78
  * ....
81
79
  *
82
- * transport.on("chunk",function(message_chunk) {
80
+ * transport.on("chunk", function (message_chunk) {
83
81
  * // do something with chunk from server...
84
82
  * });
85
83
  *
86
84
  *
87
- * ```
85
+ * ```
88
86
  *
89
87
  *
90
88
  */
91
89
  class ClientTCP_transport extends tcp_transport_1.TCP_transport {
92
90
  constructor(transportSettings) {
93
91
  super();
94
- this.connected = false;
95
92
  this.endpointUrl = "";
96
93
  this.serverUri = "";
97
94
  this._counter = 0;
@@ -113,9 +110,7 @@ class ClientTCP_transport extends tcp_transport_1.TCP_transport {
113
110
  }
114
111
  dispose() {
115
112
  /* istanbul ignore next */
116
- if (doDebug) {
117
- debugLog(" ClientTCP_transport disposed");
118
- }
113
+ doDebug && debugLog(" ClientTCP_transport disposed");
119
114
  super.dispose();
120
115
  }
121
116
  connect(endpointUrl, callback) {
@@ -125,31 +120,32 @@ class ClientTCP_transport extends tcp_transport_1.TCP_transport {
125
120
  this.endpointUrl = endpointUrl;
126
121
  this.serverUri = "urn:" + gHostname + ":Sample";
127
122
  /* istanbul ignore next */
128
- if (doDebug) {
129
- debugLog(chalk.cyan("ClientTCP_transport#connect(endpointUrl = " + endpointUrl + ")"));
130
- }
123
+ doDebug && debugLog(chalk.cyan("ClientTCP_transport#connect(endpointUrl = " + endpointUrl + ")"));
124
+ let socket = null;
131
125
  try {
132
- this._socket = createClientSocket(endpointUrl);
126
+ socket = createClientSocket(endpointUrl, this.timeout);
133
127
  }
134
128
  catch (err) {
135
129
  /* istanbul ignore next */
136
- if (doDebug) {
137
- debugLog("CreateClientSocket has failed");
138
- }
130
+ doDebug && debugLog("CreateClientSocket has failed");
139
131
  return callback(err);
140
132
  }
133
+ /**
134
+ *
135
+ */
141
136
  const _on_socket_error_after_connection = (err) => {
142
137
  /* istanbul ignore next */
143
- if (doDebug) {
144
- debugLog(" _on_socket_error_after_connection ClientTCP_transport Socket Error", err.message);
145
- }
138
+ doDebug && debugLog(" _on_socket_error_after_connection ClientTCP_transport Socket Error", err.message);
146
139
  // EPIPE : EPIPE (Broken pipe): A write on a pipe, socket, or FIFO for which there is no process to read the
147
140
  // data. Commonly encountered at the net and http layers, indicative that the remote side of the stream
148
141
  // being written to has been closed.
149
142
  // ECONNRESET (Connection reset by peer): A connection was forcibly closed by a peer. This normally results
150
143
  // from a loss of the connection on the remote socket due to a timeout or reboot. Commonly encountered
151
144
  // via the http and net module
152
- if (err.message.match(/ECONNRESET|EPIPE/)) {
145
+ // socket termination could happen:
146
+ // * when the socket times out (lost of connection, network outage, etc...)
147
+ // * or, when the server abruptly disconnects the socket ( in case of invalid communication for instance)
148
+ if (err.message.match(/ECONNRESET|EPIPE|premature socket termination/)) {
153
149
  /**
154
150
  * @event connection_break
155
151
  *
@@ -159,9 +155,7 @@ class ClientTCP_transport extends tcp_transport_1.TCP_transport {
159
155
  };
160
156
  const _on_socket_connect = () => {
161
157
  /* istanbul ignore next */
162
- if (doDebug) {
163
- debugLog("entering _on_socket_connect");
164
- }
158
+ doDebug && debugLog("entering _on_socket_connect");
165
159
  _remove_connect_listeners();
166
160
  this._perform_HEL_ACK_transaction((err) => {
167
161
  if (!err) {
@@ -171,7 +165,6 @@ class ClientTCP_transport extends tcp_transport_1.TCP_transport {
171
165
  }
172
166
  // install error handler to detect connection break
173
167
  this._socket.on("error", _on_socket_error_after_connection);
174
- this.connected = true;
175
168
  /**
176
169
  * notify the observers that the transport is connected (the socket is connected and the the HEL/ACK
177
170
  * transaction has been done)
@@ -189,18 +182,15 @@ class ClientTCP_transport extends tcp_transport_1.TCP_transport {
189
182
  const _on_socket_error_for_connect = (err) => {
190
183
  // this handler will catch attempt to connect to an inaccessible address.
191
184
  /* istanbul ignore next */
192
- if (doDebug) {
193
- debugLog(chalk.cyan("ClientTCP_transport#connect - _on_socket_error_for_connect"), err.message);
194
- }
185
+ doDebug && debugLog(chalk.cyan("ClientTCP_transport#connect - _on_socket_error_for_connect"), err.message);
195
186
  (0, node_opcua_assert_1.assert)(err instanceof Error);
196
187
  _remove_connect_listeners();
197
188
  callback(err);
198
189
  };
199
- const _on_socket_end_for_connect = (err) => {
190
+ const _on_socket_end_for_connect = () => {
200
191
  /* istanbul ignore next */
201
- if (doDebug) {
202
- debugLog(chalk.cyan("ClientTCP_transport#connect -> _on_socket_end_for_connect Socket has been closed by server"), err);
203
- }
192
+ doDebug &&
193
+ debugLog(chalk.cyan("ClientTCP_transport#connect -> _on_socket_end_for_connect Socket has been closed by server"));
204
194
  };
205
195
  const _remove_connect_listeners = () => {
206
196
  /* istanbul ignore next */
@@ -210,19 +200,10 @@ class ClientTCP_transport extends tcp_transport_1.TCP_transport {
210
200
  this._socket.removeListener("error", _on_socket_error_for_connect);
211
201
  this._socket.removeListener("end", _on_socket_end_for_connect);
212
202
  };
203
+ this._install_socket(socket);
213
204
  this._socket.once("error", _on_socket_error_for_connect);
214
205
  this._socket.once("end", _on_socket_end_for_connect);
215
206
  this._socket.once("connect", _on_socket_connect);
216
- this._install_socket(this._socket);
217
- }
218
- on_socket_ended(err) {
219
- debugLog("on_socket_ended", this.name, err ? err.message : "");
220
- if (this.connected) {
221
- super.on_socket_ended(err);
222
- }
223
- // if (this._socket) {
224
- // this._socket.removeAllListeners();
225
- // }
226
207
  }
227
208
  _handle_ACK_response(messageChunk, callback) {
228
209
  const _stream = new node_opcua_binary_stream_1.BinaryStream(messageChunk);
@@ -242,9 +223,7 @@ class ClientTCP_transport extends tcp_transport_1.TCP_transport {
242
223
  err = new Error("ACK: ERR received " + response.statusCode.toString() + " : " + response.reason);
243
224
  err.statusCode = response.statusCode;
244
225
  // istanbul ignore next
245
- if (utils_1.doTraceHelloAck) {
246
- warningLog("receiving ERR instead of Ack", response.toString());
247
- }
226
+ utils_1.doTraceHelloAck && warningLog("receiving ERR instead of Ack", response.toString());
248
227
  callback(err);
249
228
  }
250
229
  else {
@@ -254,17 +233,13 @@ class ClientTCP_transport extends tcp_transport_1.TCP_transport {
254
233
  this.parameters = response;
255
234
  this.setLimits(response);
256
235
  // istanbul ignore next
257
- if (utils_1.doTraceHelloAck) {
258
- warningLog("receiving Ack\n", response.toString());
259
- }
236
+ utils_1.doTraceHelloAck && warningLog("receiving Ack\n", response.toString());
260
237
  callback();
261
238
  }
262
239
  }
263
240
  _send_HELLO_request() {
264
241
  /* istanbul ignore next */
265
- if (doDebug) {
266
- debugLog("entering _send_HELLO_request");
267
- }
242
+ doDebug && debugLog("entering _send_HELLO_request");
268
243
  (0, node_opcua_assert_1.assert)(this._socket);
269
244
  (0, node_opcua_assert_1.assert)(isFinite(this.protocolVersion));
270
245
  (0, node_opcua_assert_1.assert)(this.endpointUrl.length > 0, " expecting a valid endpoint url");
@@ -280,17 +255,13 @@ class ClientTCP_transport extends tcp_transport_1.TCP_transport {
280
255
  sendBufferSize
281
256
  });
282
257
  // istanbul ignore next
283
- if (utils_1.doTraceHelloAck) {
284
- warningLog(`sending Hello\n ${helloMessage.toString()}`);
285
- }
258
+ utils_1.doTraceHelloAck && warningLog(`sending Hello\n ${helloMessage.toString()} `);
286
259
  const messageChunk = (0, tools_1.packTcpMessage)("HEL", helloMessage);
287
260
  this._write_chunk(messageChunk);
288
261
  }
289
262
  _on_ACK_response(externalCallback, err, data) {
290
263
  /* istanbul ignore next */
291
- if (doDebug) {
292
- debugLog("entering _on_ACK_response");
293
- }
264
+ doDebug && debugLog("entering _on_ACK_response");
294
265
  (0, node_opcua_assert_1.assert)(typeof externalCallback === "function");
295
266
  (0, node_opcua_assert_1.assert)(this._counter === 0, "Ack response should only be received once !");
296
267
  this._counter += 1;
@@ -298,7 +269,6 @@ class ClientTCP_transport extends tcp_transport_1.TCP_transport {
298
269
  externalCallback(err || new Error("no data"));
299
270
  if (this._socket) {
300
271
  this._socket.end();
301
- // Xx this._socket.removeAllListeners();
302
272
  }
303
273
  }
304
274
  else {
@@ -314,14 +284,10 @@ class ClientTCP_transport extends tcp_transport_1.TCP_transport {
314
284
  (0, node_opcua_assert_1.assert)(typeof callback === "function");
315
285
  this._counter = 0;
316
286
  /* istanbul ignore next */
317
- if (doDebug) {
318
- debugLog("entering _perform_HEL_ACK_transaction");
319
- }
287
+ doDebug && debugLog("entering _perform_HEL_ACK_transaction");
320
288
  this._install_one_time_message_receiver((err, data) => {
321
289
  /* istanbul ignore next */
322
- if (doDebug) {
323
- debugLog("before _on_ACK_response ", err ? err.message : "");
324
- }
290
+ doDebug && debugLog("before _on_ACK_response ", err ? err.message : "");
325
291
  this._on_ACK_response(callback, err, data);
326
292
  });
327
293
  this._send_HELLO_request();
@@ -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,23 +1,12 @@
1
1
  /// <reference types="node" />
2
- /// <reference types="node" />
3
- /**
4
- * @module node-opcua-transport
5
- */
6
- import { Socket } from "net";
7
- import { StatusCode } from "node-opcua-status-code";
8
2
  import { ErrorCallback } from "node-opcua-status-code";
9
- import { TCP_transport } from "./tcp_transport";
10
- /**
11
- * @class ServerTCP_transport
12
- * @extends TCP_transport
13
- * @constructor
14
- *
15
- */
3
+ import { ISocketLike, TCP_transport } from "./tcp_transport";
16
4
  export declare class ServerTCP_transport extends TCP_transport {
17
5
  static throttleTime: number;
18
6
  private _aborted;
19
7
  private _helloReceived;
20
8
  constructor();
9
+ toString(): string;
21
10
  protected _write_chunk(messageChunk: Buffer): void;
22
11
  /**
23
12
  * Initialize the server transport.
@@ -35,8 +24,7 @@ export declare class ServerTCP_transport extends TCP_transport {
35
24
  *
36
25
  *
37
26
  */
38
- init(socket: Socket, callback: ErrorCallback): void;
39
- abortWithError(statusCode: StatusCode, extraErrorDescription: string, callback: ErrorCallback): void;
27
+ init(socket: ISocketLike, callback: ErrorCallback): void;
40
28
  private _abortWithError;
41
29
  private _send_ACK_response;
42
30
  private _install_HEL_message_receiver;
@@ -15,9 +15,10 @@ const tcp_transport_1 = require("./tcp_transport");
15
15
  const tools_1 = require("./tools");
16
16
  const utils_1 = require("./utils");
17
17
  const hexDump = debug.hexDump;
18
- const debugLog = debug.make_debugLog(__filename);
19
- const errorLog = debug.make_errorLog(__filename);
20
- const doDebug = debug.checkDebugFlag(__filename);
18
+ const debugLog = debug.make_debugLog("TRANSPORT");
19
+ const errorLog = debug.make_errorLog("TRANSPORT");
20
+ const warningLog = debug.make_warningLog("TRANSPORT");
21
+ const doDebug = debug.checkDebugFlag("TRANSPORT");
21
22
  function clamp_value(value, minVal, maxVal) {
22
23
  (0, node_opcua_assert_1.assert)(minVal < maxVal);
23
24
  if (value === 0) {
@@ -33,12 +34,6 @@ function clamp_value(value, minVal, maxVal) {
33
34
  return value;
34
35
  }
35
36
  const minimumBufferSize = 8192;
36
- /**
37
- * @class ServerTCP_transport
38
- * @extends TCP_transport
39
- * @constructor
40
- *
41
- */
42
37
  class ServerTCP_transport extends tcp_transport_1.TCP_transport {
43
38
  constructor() {
44
39
  super();
@@ -49,6 +44,12 @@ class ServerTCP_transport extends tcp_transport_1.TCP_transport {
49
44
  this.maxMessageSize = 4 * 1024;
50
45
  this.receiveBufferSize = 4 * 1024;
51
46
  }
47
+ toString() {
48
+ let str = super.toString();
49
+ str += "helloReceived...... = " + this._helloReceived + "\n";
50
+ str += "aborted............ = " + this._aborted + "\n";
51
+ return str;
52
+ }
52
53
  _write_chunk(messageChunk) {
53
54
  // istanbul ignore next
54
55
  if (this.sendBufferSize > 0 && messageChunk.length > this.sendBufferSize) {
@@ -73,34 +74,35 @@ class ServerTCP_transport extends tcp_transport_1.TCP_transport {
73
74
  *
74
75
  */
75
76
  init(socket, callback) {
76
- if (debugLog) {
77
- debugLog(chalk.cyan("init socket"));
78
- }
77
+ (0, node_opcua_assert_1.assert)(socket, "missing called!");
78
+ // istanbul ignore next
79
+ debugLog && debugLog(chalk.cyan("init socket"));
79
80
  (0, node_opcua_assert_1.assert)(!this._socket, "init already called!");
80
81
  (0, node_opcua_assert_1.assert)(typeof callback === "function", "expecting a valid callback ");
81
82
  this._install_socket(socket);
82
83
  this._install_HEL_message_receiver(callback);
83
84
  }
84
- abortWithError(statusCode, extraErrorDescription, callback) {
85
- return this._abortWithError(statusCode, extraErrorDescription, callback);
86
- }
87
85
  _abortWithError(statusCode, extraErrorDescription, callback) {
86
+ var _a;
88
87
  // When a fatal error occurs, the Server shall send an Error Message to the Client and
89
88
  // closes the TransportConnection gracefully.
90
- doDebug && debugLog(chalk.cyan("_abortWithError"));
89
+ doDebug && debugLog(this.name, chalk.cyan("_abortWithError", statusCode.toString(), extraErrorDescription));
91
90
  /* istanbul ignore next */
92
91
  if (this._aborted) {
92
+ errorLog("Internal Er!ror: _abortWithError already called! Should not happen here");
93
93
  // already called
94
94
  return callback(new Error(statusCode.name));
95
95
  }
96
96
  this._aborted = 1;
97
+ (_a = this._socket) === null || _a === void 0 ? void 0 : _a.setTimeout(0);
98
+ const err = new Error(extraErrorDescription + " StatusCode = " + statusCode.name);
99
+ this._theCloseError = err;
97
100
  setTimeout(() => {
98
101
  // send the error message and close the connection
99
102
  this.sendErrorMessage(statusCode, statusCode.description);
100
- this.disconnect(() => {
101
- this._aborted = 2;
102
- callback(new Error(extraErrorDescription + " StatusCode = " + statusCode.name));
103
- });
103
+ this.prematureTerminate(err, statusCode);
104
+ this._emitClose(err);
105
+ callback(err);
104
106
  }, ServerTCP_transport.throttleTime);
105
107
  }
106
108
  _send_ACK_response(helloMessage) {
@@ -131,10 +133,11 @@ class ServerTCP_transport extends tcp_transport_1.TCP_transport {
131
133
  });
132
134
  // istanbul ignore next
133
135
  if (utils_1.doTraceHelloAck) {
134
- console.log(`received Hello \n${helloMessage.toString()}`);
135
- console.log("Client accepts only message of size => ", this.maxMessageSize);
136
+ warningLog(`received Hello \n${helloMessage.toString()}`);
137
+ warningLog("Client accepts only message of size => ", this.maxMessageSize);
136
138
  }
137
- debugLog("Client accepts only message of size => ", this.maxMessageSize);
139
+ // istanbul ignore next
140
+ doDebug && debugLog("Client accepts only message of size => ", this.maxMessageSize);
138
141
  const acknowledgeMessage = new AcknowledgeMessage_1.AcknowledgeMessage({
139
142
  maxChunkCount: this.maxChunkCount,
140
143
  maxMessageSize: this.maxMessageSize,
@@ -143,9 +146,7 @@ class ServerTCP_transport extends tcp_transport_1.TCP_transport {
143
146
  sendBufferSize: this.sendBufferSize
144
147
  });
145
148
  // istanbul ignore next
146
- if (utils_1.doTraceHelloAck) {
147
- console.log(`sending Ack \n${acknowledgeMessage.toString()}`);
148
- }
149
+ utils_1.doTraceHelloAck && warningLog(`sending Ack \n${acknowledgeMessage.toString()}`);
149
150
  const messageChunk = (0, tools_1.packTcpMessage)("ACK", acknowledgeMessage);
150
151
  /* istanbul ignore next*/
151
152
  if (doDebug) {
@@ -158,12 +159,11 @@ class ServerTCP_transport extends tcp_transport_1.TCP_transport {
158
159
  this.write(messageChunk);
159
160
  }
160
161
  _install_HEL_message_receiver(callback) {
161
- if (debugLog) {
162
- debugLog(chalk.cyan("_install_HEL_message_receiver "));
163
- }
162
+ // istanbul ignore next
163
+ doDebug && debugLog(chalk.cyan("_install_HEL_message_receiver "));
164
164
  this._install_one_time_message_receiver((err, data) => {
165
165
  if (err) {
166
- this._abortWithError(node_opcua_status_code_1.StatusCodes.BadConnectionRejected, err.message, callback);
166
+ callback(err);
167
167
  }
168
168
  else {
169
169
  // handle the HEL message
@@ -172,9 +172,8 @@ class ServerTCP_transport extends tcp_transport_1.TCP_transport {
172
172
  });
173
173
  }
174
174
  _on_HEL_message(data, callback) {
175
- if (debugLog) {
176
- debugLog(chalk.cyan("_on_HEL_message"));
177
- }
175
+ // istanbul ignore next
176
+ doDebug && debugLog(chalk.cyan("_on_HEL_message"));
178
177
  (0, node_opcua_assert_1.assert)(!this._helloReceived);
179
178
  const stream = new node_opcua_binary_stream_1.BinaryStream(data);
180
179
  const msgType = data.subarray(0, 3).toString("utf-8");
@@ -187,13 +186,14 @@ class ServerTCP_transport extends tcp_transport_1.TCP_transport {
187
186
  try {
188
187
  (0, node_opcua_assert_1.assert)(data.length >= 24);
189
188
  const helloMessage = (0, tools_1.decodeMessage)(stream, HelloMessage_1.HelloMessage);
190
- (0, node_opcua_assert_1.assert)(isFinite(this.protocolVersion));
191
189
  // OPCUA Spec 1.03 part 6 - page 41
192
190
  // The Server shall always accept versions greater than what it supports.
193
191
  if (helloMessage.protocolVersion !== this.protocolVersion) {
194
- debugLog(`warning ! client sent helloMessage.protocolVersion = ` +
195
- ` 0x${helloMessage.protocolVersion.toString(16)} ` +
196
- `whereas server protocolVersion is 0x${this.protocolVersion.toString(16)}`);
192
+ // istanbul ignore next
193
+ doDebug &&
194
+ debugLog(`warning ! client sent helloMessage.protocolVersion = ` +
195
+ ` 0x${helloMessage.protocolVersion.toString(16)} ` +
196
+ `whereas server protocolVersion is 0x${this.protocolVersion.toString(16)}`);
197
197
  }
198
198
  if (helloMessage.protocolVersion === 0xdeadbeef || helloMessage.protocolVersion < this.protocolVersion) {
199
199
  // Note: 0xDEADBEEF is our special version number to simulate BadProtocolVersionUnsupported in tests
@@ -221,9 +221,7 @@ class ServerTCP_transport extends tcp_transport_1.TCP_transport {
221
221
  else {
222
222
  // invalid packet , expecting HEL
223
223
  /* istanbul ignore next*/
224
- if (doDebug) {
225
- debugLog(chalk.red("BadCommunicationError ") + "Expecting 'HEL' message to initiate communication");
226
- }
224
+ doDebug && debugLog(chalk.red("BadCommunicationError ") + "Expecting 'HEL' message to initiate communication");
227
225
  this._abortWithError(node_opcua_status_code_1.StatusCodes.BadCommunicationError, "Expecting 'HEL' message to initiate communication", callback);
228
226
  }
229
227
  }
@@ -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":"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"}