node-opcua-server-discovery 2.183.0 → 2.184.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.
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -17
- package/dist/index.js.map +1 -1
- package/dist/mdns_responder.d.ts +1 -0
- package/dist/mdns_responder.d.ts.map +1 -0
- package/dist/mdns_responder.js +14 -18
- package/dist/mdns_responder.js.map +1 -1
- package/dist/opcua_discovery_server.d.ts +1 -0
- package/dist/opcua_discovery_server.d.ts.map +1 -0
- package/dist/opcua_discovery_server.js +89 -96
- package/dist/opcua_discovery_server.js.map +1 -1
- package/package.json +14 -13
- package/source/mdns_responder.ts +2 -2
- package/source/opcua_discovery_server.ts +7 -7
package/dist/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,6BAA6B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,21 +1,5 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = 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);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
1
|
/**
|
|
18
2
|
* @module node-opcua-server-discovery
|
|
19
3
|
*/
|
|
20
|
-
|
|
4
|
+
export * from "./opcua_discovery_server.js";
|
|
21
5
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,6BAA6B,CAAC"}
|
package/dist/mdns_responder.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mdns_responder.d.ts","sourceRoot":"","sources":["../source/mdns_responder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,eAAe,EAAmB,MAAM,8BAA8B,CAAC;AAQhF,qBAAa,aAAa;;IACtB;;OAEG;IACI,iBAAiB,EAAE,eAAe,EAAE,CAAC;IAMrC,cAAc,EAAE,IAAI,CAAc;IAEzC,cAyGC;IACY,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAcpC;CACJ"}
|
package/dist/mdns_responder.js
CHANGED
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @module node-opcua-server-discovery
|
|
4
3
|
*/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
const registry = new node_opcua_object_registry_1.ObjectRegistry();
|
|
14
|
-
class MDNSResponder {
|
|
4
|
+
import { checkDebugFlag, make_debugLog } from "node-opcua-debug";
|
|
5
|
+
import { ObjectRegistry } from "node-opcua-object-registry";
|
|
6
|
+
import { ServerOnNetwork, serviceToString } from "node-opcua-service-discovery";
|
|
7
|
+
import { Bonjour } from "sterfive-bonjour-service";
|
|
8
|
+
const debugLog = make_debugLog("LDSSERVER");
|
|
9
|
+
const doDebug = checkDebugFlag("LDSSERVER") || true;
|
|
10
|
+
const registry = new ObjectRegistry();
|
|
11
|
+
export class MDNSResponder {
|
|
15
12
|
/**
|
|
16
13
|
* the list of servers that have been activated as mDNS service
|
|
17
14
|
*/
|
|
@@ -23,7 +20,7 @@ class MDNSResponder {
|
|
|
23
20
|
constructor() {
|
|
24
21
|
registry.register(this);
|
|
25
22
|
this.registeredServers = [];
|
|
26
|
-
this.#bonjour = new
|
|
23
|
+
this.#bonjour = new Bonjour();
|
|
27
24
|
this.#recordId = 0;
|
|
28
25
|
this.#mDNSBrowser = this.#bonjour.find({
|
|
29
26
|
protocol: "tcp",
|
|
@@ -34,7 +31,7 @@ class MDNSResponder {
|
|
|
34
31
|
return index;
|
|
35
32
|
};
|
|
36
33
|
const addService = (service) => {
|
|
37
|
-
|
|
34
|
+
/* c8 ignore next */
|
|
38
35
|
doDebug && debugLog("adding server ", service.name, "port =", service.port);
|
|
39
36
|
// example:
|
|
40
37
|
// {
|
|
@@ -58,7 +55,7 @@ class MDNSResponder {
|
|
|
58
55
|
// },
|
|
59
56
|
const existingIndex = findServiceIndex(service.name);
|
|
60
57
|
if (existingIndex >= 0) {
|
|
61
|
-
|
|
58
|
+
/* c8 ignore next */
|
|
62
59
|
doDebug && debugLog("Ignoring existing server ", service.name);
|
|
63
60
|
return;
|
|
64
61
|
}
|
|
@@ -74,7 +71,7 @@ class MDNSResponder {
|
|
|
74
71
|
.sort();
|
|
75
72
|
const path = service_txt.path || "";
|
|
76
73
|
const discoveryUrl = `opc.tcp://${service.host}:${service.port}${path}`;
|
|
77
|
-
this.registeredServers.push(new
|
|
74
|
+
this.registeredServers.push(new ServerOnNetwork({
|
|
78
75
|
discoveryUrl,
|
|
79
76
|
recordId,
|
|
80
77
|
serverCapabilities,
|
|
@@ -99,13 +96,13 @@ class MDNSResponder {
|
|
|
99
96
|
};
|
|
100
97
|
this.#mDNSBrowser.on("up", (service) => {
|
|
101
98
|
// c8 ignore next
|
|
102
|
-
doDebug && debugLog("MDNSResponder : service is up with ",
|
|
99
|
+
doDebug && debugLog("MDNSResponder : service is up with ", serviceToString(service));
|
|
103
100
|
addService(service);
|
|
104
101
|
// console.log("records " , JSON.stringify(service.records()));
|
|
105
102
|
});
|
|
106
103
|
this.#mDNSBrowser.on("down", (service) => {
|
|
107
104
|
// c8 ignore next
|
|
108
|
-
doDebug && debugLog("MDNSResponder : service is down with ",
|
|
105
|
+
doDebug && debugLog("MDNSResponder : service is down with ", serviceToString(service));
|
|
109
106
|
removeService(service);
|
|
110
107
|
});
|
|
111
108
|
}
|
|
@@ -125,5 +122,4 @@ class MDNSResponder {
|
|
|
125
122
|
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
126
123
|
}
|
|
127
124
|
}
|
|
128
|
-
exports.MDNSResponder = MDNSResponder;
|
|
129
125
|
//# sourceMappingURL=mdns_responder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mdns_responder.js","sourceRoot":"","sources":["../source/mdns_responder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mdns_responder.js","sourceRoot":"","sources":["../source/mdns_responder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opcua_discovery_server.d.ts","sourceRoot":"","sources":["../source/opcua_discovery_server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,32 +1,26 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @module node-opcua-server-discovery
|
|
4
3
|
*/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
const
|
|
25
|
-
const mdns_responder_js_1 = require("./mdns_responder.js");
|
|
26
|
-
const debugLog = (0, node_opcua_debug_1.make_debugLog)("LDSSERVER");
|
|
27
|
-
const doDebug = (0, node_opcua_debug_1.checkDebugFlag)("LDSSERVER");
|
|
28
|
-
const errorLog = (0, node_opcua_debug_1.make_errorLog)("LDSSERVER");
|
|
29
|
-
const warningLog = (0, node_opcua_debug_1.make_warningLog)("LDSSERVER");
|
|
4
|
+
import os from "node:os";
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
import { URL } from "node:url";
|
|
7
|
+
import chalk from "chalk";
|
|
8
|
+
import envPaths from "env-paths";
|
|
9
|
+
import { assert } from "node-opcua-assert";
|
|
10
|
+
import { OPCUACertificateManager } from "node-opcua-certificate-manager";
|
|
11
|
+
import { makeApplicationUrn } from "node-opcua-common";
|
|
12
|
+
import { exploreCertificate, split_der } from "node-opcua-crypto";
|
|
13
|
+
import { checkDebugFlag, make_debugLog, make_errorLog, make_warningLog } from "node-opcua-debug";
|
|
14
|
+
import { MessageSecurityMode, ServiceFault } from "node-opcua-secure-channel";
|
|
15
|
+
import { OPCUABaseServer, OPCUAServerEndPoint } from "node-opcua-server";
|
|
16
|
+
import { announcementToServiceConfig, BonjourHolder, FindServersOnNetworkRequest, FindServersOnNetworkResponse, isSameService, MdnsDiscoveryConfiguration, RegisterServer2Request, RegisterServer2Response, RegisterServerRequest, RegisterServerResponse, serviceToString } from "node-opcua-service-discovery";
|
|
17
|
+
import { ApplicationDescription, ApplicationType } from "node-opcua-service-endpoints";
|
|
18
|
+
import { StatusCodes } from "node-opcua-status-code";
|
|
19
|
+
import { MDNSResponder } from "./mdns_responder.js";
|
|
20
|
+
const debugLog = make_debugLog("LDSSERVER");
|
|
21
|
+
const doDebug = checkDebugFlag("LDSSERVER");
|
|
22
|
+
const errorLog = make_errorLog("LDSSERVER");
|
|
23
|
+
const warningLog = make_warningLog("LDSSERVER");
|
|
30
24
|
function hasCapabilities(serverCapabilities, serverCapabilityFilter) {
|
|
31
25
|
if (serverCapabilities == null) {
|
|
32
26
|
return true; // filter is empty => no filtering should take place
|
|
@@ -37,14 +31,14 @@ function hasCapabilities(serverCapabilities, serverCapabilityFilter) {
|
|
|
37
31
|
return !!serverCapabilities.join(" ").match(serverCapabilityFilter);
|
|
38
32
|
}
|
|
39
33
|
const defaultProductUri = "NodeOPCUA-LocalDiscoveryServer";
|
|
40
|
-
const defaultApplicationUri =
|
|
34
|
+
const defaultApplicationUri = makeApplicationUrn(os.hostname(), defaultProductUri);
|
|
41
35
|
let _discoveryDefaultCertificateManager;
|
|
42
36
|
function getDefaultCertificateManager(automaticallyAcceptUnknownCertificate) {
|
|
43
37
|
if (!_discoveryDefaultCertificateManager) {
|
|
44
|
-
const config = (
|
|
45
|
-
_discoveryDefaultCertificateManager = new
|
|
38
|
+
const config = envPaths(defaultProductUri).config;
|
|
39
|
+
_discoveryDefaultCertificateManager = new OPCUACertificateManager({
|
|
46
40
|
name: "PKI",
|
|
47
|
-
rootFolder:
|
|
41
|
+
rootFolder: path.join(config, "PKI"),
|
|
48
42
|
automaticallyAcceptUnknownCertificate
|
|
49
43
|
});
|
|
50
44
|
}
|
|
@@ -57,8 +51,8 @@ function getDefaultCertificateManager(automaticallyAcceptUnknownCertificate) {
|
|
|
57
51
|
*/
|
|
58
52
|
function extractApplicationUris(certificateChain) {
|
|
59
53
|
try {
|
|
60
|
-
const leaf =
|
|
61
|
-
const info =
|
|
54
|
+
const leaf = split_der(certificateChain)[0];
|
|
55
|
+
const info = exploreCertificate(leaf);
|
|
62
56
|
return info.tbsCertificate.extensions?.subjectAltName?.uniformResourceIdentifier ?? [];
|
|
63
57
|
}
|
|
64
58
|
catch (_err) {
|
|
@@ -66,7 +60,7 @@ function extractApplicationUris(certificateChain) {
|
|
|
66
60
|
}
|
|
67
61
|
}
|
|
68
62
|
// const weakMap = new WeakMap<MdnsDiscoveryConfiguration, BonjourHolder>;
|
|
69
|
-
class OPCUADiscoveryServer extends
|
|
63
|
+
export class OPCUADiscoveryServer extends OPCUABaseServer {
|
|
70
64
|
mDnsLDSAnnouncer;
|
|
71
65
|
mDnsResponder;
|
|
72
66
|
registeredServers;
|
|
@@ -75,7 +69,7 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
|
|
|
75
69
|
constructor(options) {
|
|
76
70
|
options.serverInfo = options.serverInfo || {};
|
|
77
71
|
const serverInfo = options.serverInfo;
|
|
78
|
-
serverInfo.applicationType =
|
|
72
|
+
serverInfo.applicationType = ApplicationType.DiscoveryServer;
|
|
79
73
|
serverInfo.applicationUri = serverInfo.applicationUri || defaultApplicationUri;
|
|
80
74
|
serverInfo.productUri = serverInfo.productUri || defaultProductUri;
|
|
81
75
|
serverInfo.applicationName = serverInfo.applicationName || {
|
|
@@ -96,7 +90,7 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
|
|
|
96
90
|
this.registeredServers = new Map();
|
|
97
91
|
this.mDnsResponder = undefined;
|
|
98
92
|
this._delayInit = async () => {
|
|
99
|
-
const endPoint = new
|
|
93
|
+
const endPoint = new OPCUAServerEndPoint({
|
|
100
94
|
port,
|
|
101
95
|
certificateKeyPairProvider: this.getCertificateChainProvider(),
|
|
102
96
|
certificateManager: this.serverCertificateManager,
|
|
@@ -119,17 +113,17 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
|
|
|
119
113
|
};
|
|
120
114
|
}
|
|
121
115
|
async start() {
|
|
122
|
-
|
|
123
|
-
|
|
116
|
+
assert(!this.mDnsResponder);
|
|
117
|
+
assert(Array.isArray(this.capabilitiesForMDNS));
|
|
124
118
|
this._preInitTask.push(async () => {
|
|
125
119
|
await this._delayInit?.();
|
|
126
120
|
});
|
|
127
121
|
await new Promise((resolve, reject) => super.start((err) => (err ? reject(err) : resolve())));
|
|
128
122
|
this.#logRegistrationPolicy();
|
|
129
123
|
const endpointUri = this.getEndpointUrl();
|
|
130
|
-
const { hostname } = new
|
|
131
|
-
this.mDnsResponder = new
|
|
132
|
-
this.mDnsLDSAnnouncer = new
|
|
124
|
+
const { hostname } = new URL(endpointUri);
|
|
125
|
+
this.mDnsResponder = new MDNSResponder();
|
|
126
|
+
this.mDnsLDSAnnouncer = new BonjourHolder();
|
|
133
127
|
await this.mDnsLDSAnnouncer.announcedOnMulticastSubnet({
|
|
134
128
|
capabilities: this.capabilitiesForMDNS,
|
|
135
129
|
name: this.serverInfo.applicationUri || "",
|
|
@@ -143,34 +137,34 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
|
|
|
143
137
|
if (this.#shutting_down)
|
|
144
138
|
return;
|
|
145
139
|
this.#shutting_down = true;
|
|
146
|
-
|
|
140
|
+
/* c8 ignore next */
|
|
147
141
|
doDebug && debugLog("stopping announcement of LDS on mDNS");
|
|
148
142
|
//
|
|
149
143
|
for (const registeredServer of this.registeredServers.values()) {
|
|
150
|
-
|
|
144
|
+
/* c8 ignore next */
|
|
151
145
|
doDebug && debugLog("LDS is shutting down and is forcefuly unregistering server", registeredServer.serverUri);
|
|
152
146
|
await this.#internalRegisterServerOffline(registeredServer, true);
|
|
153
147
|
}
|
|
154
148
|
if (this.mDnsResponder) {
|
|
155
|
-
|
|
149
|
+
/* c8 ignore next */
|
|
156
150
|
doDebug && debugLog("disposing mDnsResponder");
|
|
157
151
|
await this.mDnsResponder.dispose();
|
|
158
152
|
this.mDnsResponder = undefined;
|
|
159
|
-
|
|
153
|
+
/* c8 ignore next */
|
|
160
154
|
doDebug && debugLog(" mDnsResponder disposed");
|
|
161
155
|
}
|
|
162
156
|
if (this.mDnsLDSAnnouncer) {
|
|
163
|
-
|
|
157
|
+
/* c8 ignore next */
|
|
164
158
|
doDebug && debugLog("disposing mDnsLDSAnnouncer of this LDS to the mDNS");
|
|
165
159
|
await this.mDnsLDSAnnouncer.stopAnnouncedOnMulticastSubnet();
|
|
166
160
|
this.mDnsLDSAnnouncer = undefined;
|
|
167
161
|
}
|
|
168
|
-
|
|
162
|
+
/* c8 ignore next */
|
|
169
163
|
doDebug && debugLog("Shutting down Discovery Server");
|
|
170
164
|
// OPCUAServerEndPoint#shutdown only calls back once the listening socket has emitted
|
|
171
165
|
// 'close', so the port is free when this resolves: no extra delay is needed.
|
|
172
166
|
await new Promise((resolve, reject) => super.shutdown((err) => (err ? reject(err) : resolve())));
|
|
173
|
-
|
|
167
|
+
/* c8 ignore next */
|
|
174
168
|
doDebug && debugLog("stopping announcement of LDS on mDNS - DONE");
|
|
175
169
|
}
|
|
176
170
|
/**
|
|
@@ -183,7 +177,7 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
|
|
|
183
177
|
this.serverInfo.discoveryUrls = this.getDiscoveryUrls();
|
|
184
178
|
const servers = [this.serverInfo];
|
|
185
179
|
for (const registered_server of this.registeredServers.values()) {
|
|
186
|
-
const serverInfo = new
|
|
180
|
+
const serverInfo = new ApplicationDescription(registered_server.serverInfo);
|
|
187
181
|
servers.push(serverInfo);
|
|
188
182
|
}
|
|
189
183
|
return servers;
|
|
@@ -192,8 +186,8 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
|
|
|
192
186
|
const cm = this.serverCertificateManager;
|
|
193
187
|
if (!cm.automaticallyAcceptUnknownCertificate) {
|
|
194
188
|
warningLog(`LDS: registrations from applications with an unknown certificate are refused.\n` +
|
|
195
|
-
` To allow a server, move its certificate from ${
|
|
196
|
-
` to ${
|
|
189
|
+
` To allow a server, move its certificate from ${path.join(cm.rootDir, "rejected")}\n` +
|
|
190
|
+
` to ${path.join(cm.rootDir, "trusted", "certs")}`);
|
|
197
191
|
}
|
|
198
192
|
else {
|
|
199
193
|
warningLog("LDS: automaticallyAcceptUnknownCertificate is enabled: any application certificate is trusted (not recommended)");
|
|
@@ -218,21 +212,21 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
|
|
|
218
212
|
*/
|
|
219
213
|
#checkRegistrationChannel(channel, server) {
|
|
220
214
|
const clientCertificate = channel.clientCertificate;
|
|
221
|
-
if (channel.securityMode ===
|
|
215
|
+
if (channel.securityMode === MessageSecurityMode.None || !clientCertificate || clientCertificate.length === 0) {
|
|
222
216
|
if (this.#allowUnsecuredRegistration) {
|
|
223
217
|
warningLog(`LDS: accepting unauthenticated registration of ${server.serverUri} (allowUnsecuredRegistration)`);
|
|
224
|
-
return
|
|
218
|
+
return StatusCodes.Good;
|
|
225
219
|
}
|
|
226
|
-
return
|
|
220
|
+
return StatusCodes.BadSecurityModeInsufficient;
|
|
227
221
|
}
|
|
228
222
|
const uris = extractApplicationUris(clientCertificate);
|
|
229
223
|
if (uris === null) {
|
|
230
|
-
return
|
|
224
|
+
return StatusCodes.BadCertificateInvalid;
|
|
231
225
|
}
|
|
232
226
|
if (!server.serverUri || !uris.includes(server.serverUri)) {
|
|
233
|
-
return
|
|
227
|
+
return StatusCodes.BadServerUriInvalid;
|
|
234
228
|
}
|
|
235
|
-
return
|
|
229
|
+
return StatusCodes.Good;
|
|
236
230
|
}
|
|
237
231
|
#refuseRegistration(message, channel, server, statusCode) {
|
|
238
232
|
const uris = (channel.clientCertificate && extractApplicationUris(channel.clientCertificate)) || [];
|
|
@@ -246,22 +240,22 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
|
|
|
246
240
|
warningLog(`LDS: registration refused ${statusCode.toString()}: serverUri=${server.serverUri} ` +
|
|
247
241
|
`serverNames=[${(server.serverNames || []).map((n) => n.text).join(", ")}] ` +
|
|
248
242
|
`discoveryUrls=[${(server.discoveryUrls || []).join(", ")}] ` +
|
|
249
|
-
`from ${info.remoteAddress}:${info.remotePort} securityMode=${
|
|
243
|
+
`from ${info.remoteAddress}:${info.remotePort} securityMode=${MessageSecurityMode[info.securityMode]} ` +
|
|
250
244
|
`certificateApplicationUris=[${uris.join(", ")}]`);
|
|
251
245
|
this.emit("onRegistrationRefused", server, info);
|
|
252
|
-
const response = new
|
|
246
|
+
const response = new ServiceFault({ responseHeader: { serviceResult: statusCode } });
|
|
253
247
|
channel.send_response("MSG", response, message);
|
|
254
248
|
}
|
|
255
249
|
_on_RegisterServer2Request(message, channel) {
|
|
256
|
-
|
|
250
|
+
assert(message.request instanceof RegisterServer2Request);
|
|
257
251
|
const request = message.request;
|
|
258
|
-
|
|
252
|
+
assert(request.schema.name === "RegisterServer2Request");
|
|
259
253
|
const gate = this.#checkRegistrationChannel(channel, request.server);
|
|
260
254
|
if (gate.isNotGood()) {
|
|
261
255
|
return this.#refuseRegistration(message, channel, request.server, gate);
|
|
262
256
|
}
|
|
263
257
|
request.discoveryConfiguration = request.discoveryConfiguration || [];
|
|
264
|
-
this.#internalRegisterServer(
|
|
258
|
+
this.#internalRegisterServer(RegisterServer2Response, request.server, request.discoveryConfiguration)
|
|
265
259
|
.then((response) => {
|
|
266
260
|
channel.send_response("MSG", response, message);
|
|
267
261
|
})
|
|
@@ -274,20 +268,20 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
|
|
|
274
268
|
if (err.stack) {
|
|
275
269
|
additional_messages = additional_messages.concat(err.stack.split("\n"));
|
|
276
270
|
}
|
|
277
|
-
const response = OPCUADiscoveryServer.makeServiceFault(
|
|
271
|
+
const response = OPCUADiscoveryServer.makeServiceFault(StatusCodes.BadInternalError, additional_messages);
|
|
278
272
|
channel.send_response("MSG", response, message);
|
|
279
273
|
});
|
|
280
274
|
// c8 ignore next
|
|
281
275
|
}
|
|
282
276
|
_on_RegisterServerRequest(message, channel) {
|
|
283
|
-
|
|
277
|
+
assert(message.request instanceof RegisterServerRequest);
|
|
284
278
|
const request = message.request;
|
|
285
|
-
|
|
279
|
+
assert(request.schema.name === "RegisterServerRequest");
|
|
286
280
|
const gate = this.#checkRegistrationChannel(channel, request.server);
|
|
287
281
|
if (gate.isNotGood()) {
|
|
288
282
|
return this.#refuseRegistration(message, channel, request.server, gate);
|
|
289
283
|
}
|
|
290
|
-
this.#internalRegisterServer(
|
|
284
|
+
this.#internalRegisterServer(RegisterServerResponse, request.server, undefined)
|
|
291
285
|
.then((response) => {
|
|
292
286
|
channel.send_response("MSG", response, message);
|
|
293
287
|
})
|
|
@@ -298,7 +292,7 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
|
|
|
298
292
|
if (err.stack) {
|
|
299
293
|
additional_messages = additional_messages.concat(err.stack.split("\n"));
|
|
300
294
|
}
|
|
301
|
-
const response = OPCUADiscoveryServer.makeServiceFault(
|
|
295
|
+
const response = OPCUADiscoveryServer.makeServiceFault(StatusCodes.BadInternalError, additional_messages);
|
|
302
296
|
channel.send_response("MSG", response, message);
|
|
303
297
|
});
|
|
304
298
|
}
|
|
@@ -320,16 +314,16 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
|
|
|
320
314
|
// This Service can be used without security and it is therefore vulnerable to Denial Of Service
|
|
321
315
|
// (DOS) attacks. A Server should minimize the amount of processing required to send the response
|
|
322
316
|
// for this Service. This can be achieved by preparing the result in advance
|
|
323
|
-
|
|
317
|
+
assert(message.request instanceof FindServersOnNetworkRequest);
|
|
324
318
|
const request = message.request;
|
|
325
|
-
|
|
319
|
+
assert(request.schema.name === "FindServersOnNetworkRequest");
|
|
326
320
|
function sendError(statusCode) {
|
|
327
|
-
const response1 = new
|
|
321
|
+
const response1 = new FindServersOnNetworkResponse({ responseHeader: { serviceResult: statusCode } });
|
|
328
322
|
return channel.send_response("MSG", response1, message);
|
|
329
323
|
}
|
|
330
324
|
sendError;
|
|
331
325
|
if (this.#shutting_down) {
|
|
332
|
-
return sendError(
|
|
326
|
+
return sendError(StatusCodes.BadShutdown);
|
|
333
327
|
}
|
|
334
328
|
// startingRecordId Counter Only records with an identifier greater than this number will be
|
|
335
329
|
// returned.
|
|
@@ -379,7 +373,7 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
|
|
|
379
373
|
}
|
|
380
374
|
}
|
|
381
375
|
}
|
|
382
|
-
const response = new
|
|
376
|
+
const response = new FindServersOnNetworkResponse({
|
|
383
377
|
lastCounterResetTime, // UtcTime The last time the counters were reset
|
|
384
378
|
servers
|
|
385
379
|
});
|
|
@@ -394,10 +388,10 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
|
|
|
394
388
|
conf.bonjourHolder = undefined;
|
|
395
389
|
}
|
|
396
390
|
async #announcedOnMulticastSubnet(conf, announcement) {
|
|
397
|
-
const serviceConfig =
|
|
391
|
+
const serviceConfig = announcementToServiceConfig(announcement);
|
|
398
392
|
let b = conf.bonjourHolder;
|
|
399
393
|
if (b?.serviceConfig) {
|
|
400
|
-
if (
|
|
394
|
+
if (isSameService(b.serviceConfig, serviceConfig)) {
|
|
401
395
|
// c8 ignore next
|
|
402
396
|
doDebug && debugLog("Configuration ", conf.mdnsServerName, " has not changed !");
|
|
403
397
|
// nothing to do
|
|
@@ -407,13 +401,13 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
|
|
|
407
401
|
// c8 ignore next
|
|
408
402
|
if (doDebug) {
|
|
409
403
|
debugLog("Configuration ", conf.mdnsServerName, " HAS changed !");
|
|
410
|
-
debugLog(" Was ",
|
|
404
|
+
debugLog(" Was ", serviceToString(b.serviceConfig));
|
|
411
405
|
debugLog(" is ", announcement);
|
|
412
406
|
}
|
|
413
407
|
}
|
|
414
408
|
await this.#stopAnnouncedOnMulticastSubnet(conf);
|
|
415
409
|
}
|
|
416
|
-
b = new
|
|
410
|
+
b = new BonjourHolder();
|
|
417
411
|
conf.bonjourHolder = b;
|
|
418
412
|
await b.announcedOnMulticastSubnet(announcement);
|
|
419
413
|
}
|
|
@@ -432,7 +426,7 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
|
|
|
432
426
|
}
|
|
433
427
|
serverInfo.discoveryUrls ??= [];
|
|
434
428
|
const endpointUrl = serverInfo.discoveryUrls[0] || this.getEndpointUrl();
|
|
435
|
-
const parsedUrl = new
|
|
429
|
+
const parsedUrl = new URL(endpointUrl);
|
|
436
430
|
discoveryConfiguration.serverCapabilities = discoveryConfiguration.serverCapabilities || [];
|
|
437
431
|
const announcement = {
|
|
438
432
|
capabilities: discoveryConfiguration.serverCapabilities.map((x) => x || "") || ["DA"],
|
|
@@ -451,7 +445,7 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
|
|
|
451
445
|
}
|
|
452
446
|
// let's announce the server on the multicast DNS
|
|
453
447
|
await this.#announcedOnMulticastSubnet(discoveryConfiguration, announcement);
|
|
454
|
-
return
|
|
448
|
+
return StatusCodes.Good;
|
|
455
449
|
}
|
|
456
450
|
/**
|
|
457
451
|
*
|
|
@@ -473,12 +467,12 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
|
|
|
473
467
|
throw new Error("internal error");
|
|
474
468
|
}
|
|
475
469
|
// c8 ignore next
|
|
476
|
-
doDebug && debugLog(
|
|
470
|
+
doDebug && debugLog(chalk.cyan("unregistering server : "), chalk.yellow(serverToUnregister?.serverUri));
|
|
477
471
|
configurationResults = [];
|
|
478
472
|
const discoveryConfigurations = serverToUnregister?.discoveryConfiguration || [];
|
|
479
473
|
for (const conf of discoveryConfigurations) {
|
|
480
474
|
await this.#stopAnnouncedOnMulticastSubnet(conf);
|
|
481
|
-
configurationResults.push(
|
|
475
|
+
configurationResults.push(StatusCodes.Good);
|
|
482
476
|
}
|
|
483
477
|
this.registeredServers.delete(key);
|
|
484
478
|
serverToUnregister.isOnline = false;
|
|
@@ -487,14 +481,14 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
|
|
|
487
481
|
return configurationResults;
|
|
488
482
|
}
|
|
489
483
|
async #internalRegisterServerOnline(server, discoveryConfigurations) {
|
|
490
|
-
|
|
484
|
+
assert(discoveryConfigurations);
|
|
491
485
|
if (!server.serverUri) {
|
|
492
486
|
throw new Error("#internalRegisterServerOnline: server.serverUri is required");
|
|
493
487
|
}
|
|
494
488
|
const key = server.serverUri;
|
|
495
489
|
let configurationResults = null;
|
|
496
490
|
// c8 ignore next
|
|
497
|
-
doDebug && debugLog(
|
|
491
|
+
doDebug && debugLog(chalk.cyan(" registering server : "), chalk.yellow(server.serverUri));
|
|
498
492
|
// prepare serverInfo which will be used by FindServers
|
|
499
493
|
const serverInfo = {
|
|
500
494
|
applicationName: server.serverNames?.[0], // which one shall we use ?
|
|
@@ -540,43 +534,43 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
|
|
|
540
534
|
// #region check parameter validity
|
|
541
535
|
function sendError(statusCode) {
|
|
542
536
|
// c8 ignore next
|
|
543
|
-
doDebug && debugLog(
|
|
544
|
-
const response1 = new
|
|
537
|
+
doDebug && debugLog(chalk.red("_on_RegisterServer(2)Request error"), statusCode.toString());
|
|
538
|
+
const response1 = new ServiceFault({
|
|
545
539
|
responseHeader: { serviceResult: statusCode }
|
|
546
540
|
});
|
|
547
541
|
return response1;
|
|
548
542
|
}
|
|
549
543
|
if (this.#shutting_down) {
|
|
550
|
-
return sendError(
|
|
544
|
+
return sendError(StatusCodes.BadShutdown);
|
|
551
545
|
}
|
|
552
546
|
const server = rawServer;
|
|
553
547
|
// check serverType is valid
|
|
554
548
|
if (!_isValidServerType(server.serverType)) {
|
|
555
549
|
// c8 ignore next
|
|
556
|
-
doDebug && debugLog("Invalid server Type",
|
|
557
|
-
return sendError(
|
|
550
|
+
doDebug && debugLog("Invalid server Type", ApplicationType[server.serverType]);
|
|
551
|
+
return sendError(StatusCodes.BadInvalidArgument);
|
|
558
552
|
}
|
|
559
553
|
if (!server.serverUri) {
|
|
560
554
|
// c8 ignore next
|
|
561
555
|
doDebug && debugLog("Missing serverURI");
|
|
562
|
-
return sendError(
|
|
556
|
+
return sendError(StatusCodes.BadInvalidArgument);
|
|
563
557
|
}
|
|
564
558
|
server.serverNames = server.serverNames || [];
|
|
565
559
|
// BadServerNameMissing
|
|
566
560
|
if (server.serverNames.length === 0 || !server.serverNames[0].text) {
|
|
567
|
-
return sendError(
|
|
561
|
+
return sendError(StatusCodes.BadServerNameMissing);
|
|
568
562
|
}
|
|
569
563
|
// BadDiscoveryUrlMissing
|
|
570
564
|
server.discoveryUrls = server.discoveryUrls || [];
|
|
571
565
|
if (server.discoveryUrls.length === 0 || !server.discoveryUrls[0]) {
|
|
572
|
-
return sendError(
|
|
566
|
+
return sendError(StatusCodes.BadDiscoveryUrlMissing);
|
|
573
567
|
}
|
|
574
568
|
// BadServerUriInvalid (serverUri vs certificate ApplicationUri) is enforced
|
|
575
569
|
// by #checkRegistrationChannel before we get here.
|
|
576
570
|
// #endregion
|
|
577
571
|
if (!discoveryConfigurations) {
|
|
578
572
|
discoveryConfigurations = [
|
|
579
|
-
new
|
|
573
|
+
new MdnsDiscoveryConfiguration({
|
|
580
574
|
mdnsServerName: undefined,
|
|
581
575
|
serverCapabilities: ["NA"]
|
|
582
576
|
})
|
|
@@ -586,13 +580,12 @@ class OPCUADiscoveryServer extends node_opcua_server_1.OPCUABaseServer {
|
|
|
586
580
|
? await this.#internalRegisterServerOnline(server, discoveryConfigurations)
|
|
587
581
|
: await this.#internalRegisterServerOffline(server, false);
|
|
588
582
|
const response = new RegisterServerXResponse({});
|
|
589
|
-
if (response instanceof
|
|
583
|
+
if (response instanceof RegisterServer2Response) {
|
|
590
584
|
response.configurationResults = configurationResults;
|
|
591
585
|
}
|
|
592
586
|
return response;
|
|
593
587
|
}
|
|
594
588
|
}
|
|
595
|
-
exports.OPCUADiscoveryServer = OPCUADiscoveryServer;
|
|
596
589
|
/*== private
|
|
597
590
|
* returns true if the serverType can be added to a discovery server.
|
|
598
591
|
* @param serverType
|
|
@@ -601,11 +594,11 @@ exports.OPCUADiscoveryServer = OPCUADiscoveryServer;
|
|
|
601
594
|
*/
|
|
602
595
|
function _isValidServerType(serverType) {
|
|
603
596
|
switch (serverType) {
|
|
604
|
-
case
|
|
597
|
+
case ApplicationType.Client:
|
|
605
598
|
return false;
|
|
606
|
-
case
|
|
607
|
-
case
|
|
608
|
-
case
|
|
599
|
+
case ApplicationType.Server:
|
|
600
|
+
case ApplicationType.ClientAndServer:
|
|
601
|
+
case ApplicationType.DiscoveryServer:
|
|
609
602
|
return true;
|
|
610
603
|
}
|
|
611
604
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opcua_discovery_server.js","sourceRoot":"","sources":["../source/opcua_discovery_server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"opcua_discovery_server.js","sourceRoot":"","sources":["../source/opcua_discovery_server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-opcua-server-discovery",
|
|
3
|
-
"
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "2.184.0",
|
|
4
5
|
"description": "pure nodejs OPCUA SDK - module server-discovery",
|
|
5
6
|
"scripts": {
|
|
6
7
|
"build": "tsc -b",
|
|
@@ -16,18 +17,18 @@
|
|
|
16
17
|
"dependencies": {
|
|
17
18
|
"chalk": "4.1.2",
|
|
18
19
|
"env-paths": "2.2.1",
|
|
19
|
-
"node-opcua-assert": "2.
|
|
20
|
-
"node-opcua-basic-types": "2.
|
|
21
|
-
"node-opcua-certificate-manager": "2.
|
|
22
|
-
"node-opcua-common": "2.
|
|
20
|
+
"node-opcua-assert": "2.184.0",
|
|
21
|
+
"node-opcua-basic-types": "2.184.0",
|
|
22
|
+
"node-opcua-certificate-manager": "2.184.0",
|
|
23
|
+
"node-opcua-common": "2.184.0",
|
|
23
24
|
"node-opcua-crypto": "5.10.1",
|
|
24
|
-
"node-opcua-debug": "2.
|
|
25
|
-
"node-opcua-object-registry": "2.
|
|
26
|
-
"node-opcua-secure-channel": "2.
|
|
27
|
-
"node-opcua-server": "2.
|
|
28
|
-
"node-opcua-service-discovery": "2.
|
|
29
|
-
"node-opcua-service-endpoints": "2.
|
|
30
|
-
"node-opcua-status-code": "2.
|
|
25
|
+
"node-opcua-debug": "2.184.0",
|
|
26
|
+
"node-opcua-object-registry": "2.184.0",
|
|
27
|
+
"node-opcua-secure-channel": "2.184.0",
|
|
28
|
+
"node-opcua-server": "2.184.0",
|
|
29
|
+
"node-opcua-service-discovery": "2.184.0",
|
|
30
|
+
"node-opcua-service-endpoints": "2.184.0",
|
|
31
|
+
"node-opcua-status-code": "2.184.0",
|
|
31
32
|
"sterfive-bonjour-service": "1.1.4",
|
|
32
33
|
"thenify-ex": "4.4.0"
|
|
33
34
|
},
|
|
@@ -46,7 +47,7 @@
|
|
|
46
47
|
"internet of things"
|
|
47
48
|
],
|
|
48
49
|
"homepage": "http://node-opcua.github.io/",
|
|
49
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "441a5c63e3a4202eb8de8597acac77a3a49248b7",
|
|
50
51
|
"files": [
|
|
51
52
|
"dist",
|
|
52
53
|
"source"
|
package/source/mdns_responder.ts
CHANGED
|
@@ -43,7 +43,7 @@ export class MDNSResponder {
|
|
|
43
43
|
};
|
|
44
44
|
|
|
45
45
|
const addService = (service: Service) => {
|
|
46
|
-
|
|
46
|
+
/* c8 ignore next */
|
|
47
47
|
doDebug && debugLog("adding server ", service.name, "port =", service.port);
|
|
48
48
|
|
|
49
49
|
// example:
|
|
@@ -69,7 +69,7 @@ export class MDNSResponder {
|
|
|
69
69
|
|
|
70
70
|
const existingIndex = findServiceIndex(service.name);
|
|
71
71
|
if (existingIndex >= 0) {
|
|
72
|
-
|
|
72
|
+
/* c8 ignore next */
|
|
73
73
|
doDebug && debugLog("Ignoring existing server ", service.name);
|
|
74
74
|
return;
|
|
75
75
|
}
|
|
@@ -280,37 +280,37 @@ export class OPCUADiscoveryServer extends OPCUABaseServer<OPCUADiscoveryServerEv
|
|
|
280
280
|
if (this.#shutting_down) return;
|
|
281
281
|
this.#shutting_down = true;
|
|
282
282
|
|
|
283
|
-
|
|
283
|
+
/* c8 ignore next */
|
|
284
284
|
doDebug && debugLog("stopping announcement of LDS on mDNS");
|
|
285
285
|
//
|
|
286
286
|
for (const registeredServer of this.registeredServers.values()) {
|
|
287
|
-
|
|
287
|
+
/* c8 ignore next */
|
|
288
288
|
doDebug && debugLog("LDS is shutting down and is forcefuly unregistering server", registeredServer.serverUri);
|
|
289
289
|
await this.#internalRegisterServerOffline(registeredServer, true);
|
|
290
290
|
}
|
|
291
291
|
|
|
292
292
|
if (this.mDnsResponder) {
|
|
293
|
-
|
|
293
|
+
/* c8 ignore next */
|
|
294
294
|
doDebug && debugLog("disposing mDnsResponder");
|
|
295
295
|
await this.mDnsResponder.dispose();
|
|
296
296
|
this.mDnsResponder = undefined;
|
|
297
|
-
|
|
297
|
+
/* c8 ignore next */
|
|
298
298
|
doDebug && debugLog(" mDnsResponder disposed");
|
|
299
299
|
}
|
|
300
300
|
|
|
301
301
|
if (this.mDnsLDSAnnouncer) {
|
|
302
|
-
|
|
302
|
+
/* c8 ignore next */
|
|
303
303
|
doDebug && debugLog("disposing mDnsLDSAnnouncer of this LDS to the mDNS");
|
|
304
304
|
await this.mDnsLDSAnnouncer.stopAnnouncedOnMulticastSubnet();
|
|
305
305
|
this.mDnsLDSAnnouncer = undefined;
|
|
306
306
|
}
|
|
307
307
|
|
|
308
|
-
|
|
308
|
+
/* c8 ignore next */
|
|
309
309
|
doDebug && debugLog("Shutting down Discovery Server");
|
|
310
310
|
// OPCUAServerEndPoint#shutdown only calls back once the listening socket has emitted
|
|
311
311
|
// 'close', so the port is free when this resolves: no extra delay is needed.
|
|
312
312
|
await new Promise<void>((resolve, reject) => super.shutdown((err) => (err ? reject(err) : resolve())));
|
|
313
|
-
|
|
313
|
+
/* c8 ignore next */
|
|
314
314
|
doDebug && debugLog("stopping announcement of LDS on mDNS - DONE");
|
|
315
315
|
}
|
|
316
316
|
|