Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
}
util.inherits(OPCUAClient, OPCUAClientBase);
OPCUAClient.prototype._nextSessionName = function () {
if (!this.___sessionName_counter) {
this.___sessionName_counter = 0;
}
this.___sessionName_counter += 1;
return this.clientName + this.___sessionName_counter;
};
const makeApplicationUrn = require("node-opcua-common").makeApplicationUrn;
const hostname = require("node-opcua-hostname").get_fully_qualified_domain_name();
OPCUAClient.prototype._getApplicationUri = function () {
// get applicationURI from certificate
const exploreCertificate = require("node-opcua-crypto").exploreCertificate;
const certificate = this.getCertificate();
let applicationUri;
if (certificate) {
const e = exploreCertificate(certificate);
if (!e.tbsCertificate.extensions || !e.tbsCertificate.extensions.subjectAltName) {
console.log(chalk.red(" Warning: client certificate is invalid : subjectAltName is missing"));
applicationUri = makeApplicationUrn(hostname, this.applicationName);
} else {
applicationUri = e.tbsCertificate.extensions.subjectAltName.uniformResourceIdentifier[0];
}
constructor(options) {
const default_certificate_file = constructFilename("certificates/server_selfsigned_cert_2048.pem");
options.certificateFile = options.certificateFile || default_certificate_file;
assert(fs.existsSync(options.certificateFile));
const default_private_key_file = constructFilename("certificates/PKI/own/private/private_key.pem");
options.privateKeyFile = options.privateKeyFile || default_private_key_file;
assert(fs.existsSync(options.certificateFile));
const defaultApplicationUri = makeApplicationUrn(get_fully_qualified_domain_name(), "NodeOPCUA-DiscoveryServer");
super(options);
const serverInfo = options.serverInfo || {};
serverInfo.applicationType = ApplicationType.DiscoveryServer;
serverInfo.applicationUri = serverInfo.applicationUri || defaultApplicationUri;
serverInfo.productUri = serverInfo.productUri || "SampleDiscoveryServer";
serverInfo.applicationName = serverInfo.applicationName || {text: "SampleDiscoveryServer", locale: null};
serverInfo.gatewayServerUri = serverInfo.gatewayServerUri || "";
serverInfo.discoveryProfileUri = serverInfo.discoveryProfileUri || "";
serverInfo.discoveryUrls = serverInfo.discoveryUrls || [];
this.serverInfo = serverInfo;
const port = options.port || 4840;