From 8551cd9559b48f120a6144aa3b932956f86abf92 Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Mon, 3 Aug 2015 10:56:00 -0700 Subject: [PATCH 1/4] Disabled deprecation warnings in Node build --- binding.gyp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/binding.gyp b/binding.gyp index 6ba23338..734dc841 100644 --- a/binding.gyp +++ b/binding.gyp @@ -11,7 +11,8 @@ '-pedantic', '-g', '-zdefs', - '-Werror' + '-Werror', + '-Wno-error=deprecated-declarations' ], 'ldflags': [ '-g' From 1e65e15085512221153ab2d2935f43988d8b062b Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Wed, 12 Aug 2015 10:48:39 -0700 Subject: [PATCH 2/4] Fixed failing cloud-to-prod auth interop tests --- interop/interop_client.js | 6 ++++-- src/client.js | 11 +++++++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/interop/interop_client.js b/interop/interop_client.js index 221d69e2..6152d445 100644 --- a/interop/interop_client.js +++ b/interop/interop_client.js @@ -298,7 +298,9 @@ function authTest(expected_user, scope, client, done) { assert.strictEqual(resp.payload.type, 'COMPRESSABLE'); assert.strictEqual(resp.payload.body.length, 314159); assert.strictEqual(resp.username, expected_user); - assert.strictEqual(resp.oauth_scope, AUTH_SCOPE_RESPONSE); + if (scope) { + assert.strictEqual(resp.oauth_scope, AUTH_SCOPE_RESPONSE); + } if (done) { done(); } @@ -335,7 +337,7 @@ function oauth2Test(expected_user, scope, per_rpc, client, done) { if (done) { done(); } - }); + }, client_metadata); }; if (per_rpc) { updateMetadata('', {}, makeTestCall); diff --git a/src/client.js b/src/client.js index b2b44237..a253c860 100644 --- a/src/client.js +++ b/src/client.js @@ -523,7 +523,7 @@ var requester_makers = { * requestSerialize: function to serialize request objects * responseDeserialize: function to deserialize response objects * @param {Object} methods An object mapping method names to method attributes - * @param {string} serviceName The name of the service + * @param {string} serviceName The fully qualified name of the service * @return {function(string, Object)} New client constructor */ exports.makeClientConstructor = function(methods, serviceName) { @@ -548,8 +548,10 @@ exports.makeClientConstructor = function(methods, serviceName) { } options['grpc.primary_user_agent'] = 'grpc-node/' + version; this.channel = new grpc.Channel(address, credentials, options); - this.server_address = address.replace(/\/$/, ''); - this.auth_uri = this.server_address + '/' + serviceName; + // Extract the DNS name from the address string + address = address.replace(/(\w+:\/\/)?([^:]+)(:\d+)?\/?$/, '$2'); + this.server_address = address; + this.auth_uri = 'https://' + this.server_address + '/' + serviceName; this.updateMetadata = updateMetadata; } @@ -587,7 +589,8 @@ exports.makeClientConstructor = function(methods, serviceName) { */ exports.makeProtobufClientConstructor = function(service) { var method_attrs = common.getProtobufServiceAttrs(service, service.name); - var Client = exports.makeClientConstructor(method_attrs); + var Client = exports.makeClientConstructor( + method_attrs, common.fullyQualifiedName(service)); Client.service = service; return Client; }; From 7970af5e1b681aa6a983e3b1753781a447c7a8c9 Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Wed, 12 Aug 2015 11:32:54 -0700 Subject: [PATCH 3/4] Fix scheme matching in auth URI --- src/client.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client.js b/src/client.js index a253c860..4e631456 100644 --- a/src/client.js +++ b/src/client.js @@ -549,7 +549,7 @@ exports.makeClientConstructor = function(methods, serviceName) { options['grpc.primary_user_agent'] = 'grpc-node/' + version; this.channel = new grpc.Channel(address, credentials, options); // Extract the DNS name from the address string - address = address.replace(/(\w+:\/\/)?([^:]+)(:\d+)?\/?$/, '$2'); + address = address.replace(/(\w+:\/\/+)?([^:]+)(:\d+)?\/?$/, '$2'); this.server_address = address; this.auth_uri = 'https://' + this.server_address + '/' + serviceName; this.updateMetadata = updateMetadata; From 02b7005b49380bacaba21dc112586c17e4303cf7 Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Wed, 12 Aug 2015 11:54:41 -0700 Subject: [PATCH 4/4] Clarified address regex --- src/client.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/client.js b/src/client.js index 4e631456..bbb45382 100644 --- a/src/client.js +++ b/src/client.js @@ -548,8 +548,8 @@ exports.makeClientConstructor = function(methods, serviceName) { } options['grpc.primary_user_agent'] = 'grpc-node/' + version; this.channel = new grpc.Channel(address, credentials, options); - // Extract the DNS name from the address string - address = address.replace(/(\w+:\/\/+)?([^:]+)(:\d+)?\/?$/, '$2'); + // Remove the optional DNS scheme, trailing port, and trailing backslash + address = address.replace(/^(dns:\/{3})?([^:\/]+)(:\d+)?\/?$/, '$2'); this.server_address = address; this.auth_uri = 'https://' + this.server_address + '/' + serviceName; this.updateMetadata = updateMetadata;