From bc01199970fe0fa407dbc5c9dd1f23647e4b174e Mon Sep 17 00:00:00 2001 From: Siting Ren Date: Tue, 5 Mar 2024 11:52:00 +0800 Subject: [PATCH 1/3] Fix #136 (#138) --- .../lib/connection-parameters.js | 28 ++++++++++++++++--- .../client/connection-timeout-tests.js | 2 +- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/packages/vertica-nodejs/lib/connection-parameters.js b/packages/vertica-nodejs/lib/connection-parameters.js index 5b874dbf..fa276ff9 100644 --- a/packages/vertica-nodejs/lib/connection-parameters.js +++ b/packages/vertica-nodejs/lib/connection-parameters.js @@ -116,12 +116,32 @@ class ConnectionParameters { this.workload = val('workload', config, false) // client auditing information - this.client_os_hostname = os.hostname() this.client_type = "Node.js Driver" this.client_version = "1.1.2" - this.client_pid = process.pid.toString() - this.client_os = os.platform() - this.client_os_user_name = os.userInfo().username + + try { + this.client_os_hostname = os.hostname() + } catch (e) { + this.client_os_hostname = "" + } + + try { + this.client_pid = process.pid.toString() + } catch (e) { + this.client_pid = "0" + } + + try { + this.client_os = os.platform() + } catch (e) { + this.client_os = "" + } + + try { + this.client_os_user_name = os.userInfo().username + } catch (e) { + this.client_os_user_name = "" + } //NOTE: The client has only been tested to support 3.5, which was chosen in order to include SHA512 support this.protocol_version = (3 << 16 | 5) // 3.5 -> (major << 16 | minor) -> (3 << 16 | 5) -> 196613 diff --git a/packages/vertica-nodejs/test/integration/client/connection-timeout-tests.js b/packages/vertica-nodejs/test/integration/client/connection-timeout-tests.js index 7a3ee444..a462584b 100644 --- a/packages/vertica-nodejs/test/integration/client/connection-timeout-tests.js +++ b/packages/vertica-nodejs/test/integration/client/connection-timeout-tests.js @@ -67,7 +67,7 @@ suite.test('successful connection', (done) => { }) suite.test('expired connection timeout', (done) => { - const opts = { ...options, port: 54322 } + const opts = { ...options, port: 5434 } serverWithConnectionTimeout(opts.port, opts.connectionTimeoutMillis * 2, (closeServer) => { const timeoutId = setTimeout(() => { throw new Error('Client should have emitted an error but it did not.') From b5021475521abba6ee578ddeae51f81e31f197b7 Mon Sep 17 00:00:00 2001 From: Siting Ren Date: Tue, 5 Mar 2024 11:52:53 +0800 Subject: [PATCH 2/3] TLS verify-full fix host (#137) --- packages/vertica-nodejs/lib/client.js | 1 + packages/vertica-nodejs/lib/connection.js | 2 ++ 2 files changed, 3 insertions(+) diff --git a/packages/vertica-nodejs/lib/client.js b/packages/vertica-nodejs/lib/client.js index 905623e0..38764f17 100644 --- a/packages/vertica-nodejs/lib/client.js +++ b/packages/vertica-nodejs/lib/client.js @@ -65,6 +65,7 @@ class Client extends EventEmitter { tls_config: this.connectionParameters.tls_config, tls_mode: this.connectionParameters.tls_mode, tls_trusted_certs: this.connectionParameters.tls_trusted_certs, + tls_host: this.connectionParameters.host, keepAlive: c.keepAlive || false, keepAliveInitialDelayMillis: c.keepAliveInitialDelayMillis || 0, encoding: this.connectionParameters.client_encoding || 'utf8', diff --git a/packages/vertica-nodejs/lib/connection.js b/packages/vertica-nodejs/lib/connection.js index 6f3a10b3..08feed29 100644 --- a/packages/vertica-nodejs/lib/connection.js +++ b/packages/vertica-nodejs/lib/connection.js @@ -50,6 +50,7 @@ class Connection extends EventEmitter { //this.tls_client_key = config.tls_client_key //this.tls_client_cert = config.tls_client_cert this.tls_trusted_certs = config.tls_trusted_certs + this.tls_host = config.tls_host } var self = this this.on('newListener', function (eventName) { @@ -166,6 +167,7 @@ class Connection extends EventEmitter { else if (self.tls_mode === 'verify-full') { //verify that the name on the CA-signed server certificate matches it's hostname try { tls_options.rejectUnauthorized = true + tls_options.host = self.tls_host // Hostname/IP to match certificate's altnames if (self.tls_trusted_certs) { tls_options.ca = fs.readFileSync(self.tls_trusted_certs).toString() } From 5fb374e09f838b79a651e97ae6278132549a6506 Mon Sep 17 00:00:00 2001 From: Daniel Mickens Date: Thu, 7 Mar 2024 09:18:12 -0500 Subject: [PATCH 3/3] Version updates for vertica-nodejs 1.1.3 (#140) --- package.json | 2 +- packages/v-pool/package.json | 4 ++-- packages/vertica-nodejs/lib/connection-parameters.js | 2 +- packages/vertica-nodejs/package.json | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index cb8a6b8c..e7952902 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,6 @@ "singleQuote": true }, "dependencies": { - "vertica-nodejs": "^1.1.2" + "vertica-nodejs": "^1.1.3" } } diff --git a/packages/v-pool/package.json b/packages/v-pool/package.json index 094261e6..bc1a2119 100644 --- a/packages/v-pool/package.json +++ b/packages/v-pool/package.json @@ -1,6 +1,6 @@ { "name": "v-pool", - "version": "1.1.2", + "version": "1.1.3", "description": "Connection pool for Vertica", "main": "index.js", "directories": { @@ -35,6 +35,6 @@ "mocha": "^7.1.2" }, "peerDependencies": { - "vertica-nodejs": "1.1.2" + "vertica-nodejs": "1.1.3" } } diff --git a/packages/vertica-nodejs/lib/connection-parameters.js b/packages/vertica-nodejs/lib/connection-parameters.js index fa276ff9..9134de91 100644 --- a/packages/vertica-nodejs/lib/connection-parameters.js +++ b/packages/vertica-nodejs/lib/connection-parameters.js @@ -117,7 +117,7 @@ class ConnectionParameters { // client auditing information this.client_type = "Node.js Driver" - this.client_version = "1.1.2" + this.client_version = "1.1.3" try { this.client_os_hostname = os.hostname() diff --git a/packages/vertica-nodejs/package.json b/packages/vertica-nodejs/package.json index f25c2d10..3bb3cfbf 100644 --- a/packages/vertica-nodejs/package.json +++ b/packages/vertica-nodejs/package.json @@ -1,6 +1,6 @@ { "name": "vertica-nodejs", - "version": "1.1.2", + "version": "1.1.3", "description": "Vertica client - pure javascript & libpq with the same API", "keywords": [ "database", @@ -32,7 +32,7 @@ "pg-types": "^2.1.0", "pgpass": "1.x", "v-connection-string": "1.1.0", - "v-pool": "1.1.2", + "v-pool": "1.1.3", "v-protocol": "1.1.0" }, "devDependencies": {