Upmerge 1.14 to master

This commit is contained in:
murgatroid99 2018-08-17 13:50:05 -07:00
commit 41ac29ddd5
7 changed files with 42 additions and 17 deletions

View File

@ -91,7 +91,7 @@
'GPR_BACKWARDS_COMPATIBILITY_MODE', 'GPR_BACKWARDS_COMPATIBILITY_MODE',
'GRPC_ARES=0', 'GRPC_ARES=0',
'GRPC_UV', 'GRPC_UV',
'GRPC_NODE_VERSION="1.15.0-dev"' 'GRPC_NODE_VERSION="1.14.1"'
], ],
'conditions': [ 'conditions': [
['grpc_gcov=="true"', { ['grpc_gcov=="true"', {

View File

@ -1,2 +1,3 @@
settings: settings:
'#': It's possible to have node_version here as a key to override the core's version. '#': It's possible to have node_version here as a key to override the core's version.
node_version: 1.14.1

View File

@ -270,6 +270,10 @@ NAN_METHOD(Channel::GetTarget) {
"getTarget can only be called on Channel objects"); "getTarget can only be called on Channel objects");
} }
Channel *channel = ObjectWrap::Unwrap<Channel>(info.This()); Channel *channel = ObjectWrap::Unwrap<Channel>(info.This());
if (channel->wrapped_channel == NULL) {
return Nan::ThrowError(
"Cannot call getTarget on a closed Channel");
}
info.GetReturnValue().Set( info.GetReturnValue().Set(
Nan::New(grpc_channel_get_target(channel->wrapped_channel)) Nan::New(grpc_channel_get_target(channel->wrapped_channel))
.ToLocalChecked()); .ToLocalChecked());
@ -281,6 +285,10 @@ NAN_METHOD(Channel::GetConnectivityState) {
"getConnectivityState can only be called on Channel objects"); "getConnectivityState can only be called on Channel objects");
} }
Channel *channel = ObjectWrap::Unwrap<Channel>(info.This()); Channel *channel = ObjectWrap::Unwrap<Channel>(info.This());
if (channel->wrapped_channel == NULL) {
return Nan::ThrowError(
"Cannot call getConnectivityState on a closed Channel");
}
int try_to_connect = (int)info[0]->Equals(Nan::True()); int try_to_connect = (int)info[0]->Equals(Nan::True());
info.GetReturnValue().Set(grpc_channel_check_connectivity_state( info.GetReturnValue().Set(grpc_channel_check_connectivity_state(
channel->wrapped_channel, try_to_connect)); channel->wrapped_channel, try_to_connect));
@ -303,12 +311,16 @@ NAN_METHOD(Channel::WatchConnectivityState) {
return Nan::ThrowTypeError( return Nan::ThrowTypeError(
"watchConnectivityState's third argument must be a callback"); "watchConnectivityState's third argument must be a callback");
} }
Channel *channel = ObjectWrap::Unwrap<Channel>(info.This());
if (channel->wrapped_channel == NULL) {
return Nan::ThrowError(
"Cannot call watchConnectivityState on a closed Channel");
}
grpc_connectivity_state last_state = static_cast<grpc_connectivity_state>( grpc_connectivity_state last_state = static_cast<grpc_connectivity_state>(
Nan::To<uint32_t>(info[0]).FromJust()); Nan::To<uint32_t>(info[0]).FromJust());
double deadline = Nan::To<double>(info[1]).FromJust(); double deadline = Nan::To<double>(info[1]).FromJust();
Local<Function> callback_func = info[2].As<Function>(); Local<Function> callback_func = info[2].As<Function>();
Nan::Callback *callback = new Callback(callback_func); Nan::Callback *callback = new Callback(callback_func);
Channel *channel = ObjectWrap::Unwrap<Channel>(info.This());
unique_ptr<OpVec> ops(new OpVec()); unique_ptr<OpVec> ops(new OpVec());
grpc_channel_watch_connectivity_state( grpc_channel_watch_connectivity_state(
channel->wrapped_channel, last_state, MillisecondsToTimespec(deadline), channel->wrapped_channel, last_state, MillisecondsToTimespec(deadline),

View File

@ -816,7 +816,7 @@ declare module "grpc" {
* Additional peer verification options that can be set when creating * Additional peer verification options that can be set when creating
* SSL credentials. * SSL credentials.
*/ */
export interface VerifyOptions: { export interface VerifyOptions {
/** /**
* If set, this callback will be invoked after the usual hostname verification * If set, this callback will be invoked after the usual hostname verification
* has been performed on the peer certificate. * has been performed on the peer certificate.
@ -1538,7 +1538,7 @@ declare module "grpc" {
* @param callback Called with no error when a state change, or with an * @param callback Called with no error when a state change, or with an
* error if the deadline passes without a state change. * error if the deadline passes without a state change.
*/ */
watchConnectivityState(currentState: connectivityState, deadline: Date|number, callback: (error?: Error) => void); watchConnectivityState(currentState: connectivityState, deadline: Date|number, callback: (error?: Error) => void): void;
/** /**
* Create a call object. Call is an opaque type that is used by the Client * Create a call object. Call is an opaque type that is used by the Client
* and Server classes. This function is called by the gRPC library when * and Server classes. This function is called by the gRPC library when

View File

@ -1,6 +1,6 @@
{ {
"name": "grpc", "name": "grpc",
"version": "1.15.0-dev", "version": "1.14.1",
"author": "Google Inc.", "author": "Google Inc.",
"description": "gRPC Library for Node", "description": "gRPC Library for Node",
"homepage": "https://grpc.io/", "homepage": "https://grpc.io/",
@ -19,10 +19,10 @@
"lib": "src" "lib": "src"
}, },
"scripts": { "scripts": {
"build": "./node_modules/.bin/node-pre-gyp build", "build": "node-pre-gyp build",
"electron-build": "./node_modules/.bin/node-pre-gyp configure build --runtime=electron --disturl=https://atom.io/download/atom-shell", "electron-build": "node-pre-gyp configure build --runtime=electron --disturl=https://atom.io/download/atom-shell",
"coverage": "./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha test", "coverage": "istanbul cover ./node_modules/.bin/_mocha test",
"install": "./node_modules/.bin/node-pre-gyp install --fallback-to-build --library=static_library", "install": "node-pre-gyp install --fallback-to-build --library=static_library",
"prepack": "git submodule update --init --recursive && npm install" "prepack": "git submodule update --init --recursive && npm install"
}, },
"bundledDependencies": [ "bundledDependencies": [
@ -67,7 +67,8 @@
"ext/*.{cc,h}", "ext/*.{cc,h}",
"deps/grpc/include/grpc/**/*.h", "deps/grpc/include/grpc/**/*.h",
"deps/grpc/src/core/**/*.{c,cc,h}", "deps/grpc/src/core/**/*.{c,cc,h}",
"deps/grpc/src/boringssl/*.{c,cc,h}", "deps/grpc/src/boringssl/err_data.c",
"deps/grpc/src/cpp/ext/filters/census/grpc_context.cc",
"deps/grpc/third_party/nanopb/*.{c,cc,h}", "deps/grpc/third_party/nanopb/*.{c,cc,h}",
"deps/grpc/third_party/zlib/**/*.{c,cc,h}", "deps/grpc/third_party/zlib/**/*.{c,cc,h}",
"deps/grpc/third_party/boringssl/crypto/**/*.{c,cc,h}", "deps/grpc/third_party/boringssl/crypto/**/*.{c,cc,h}",

View File

@ -720,13 +720,23 @@ Client.prototype.waitForReady = function(deadline, callback) {
callback(new Error('Failed to connect before the deadline')); callback(new Error('Failed to connect before the deadline'));
return; return;
} }
var new_state = self.$channel.getConnectivityState(true); var new_state;
try {
new_state = self.$channel.getConnectivityState(true);
} catch (e) {
callback(new Error('The channel has been closed'));
return;
}
if (new_state === grpc.connectivityState.READY) { if (new_state === grpc.connectivityState.READY) {
callback(); callback();
} else if (new_state === grpc.connectivityState.FATAL_FAILURE) { } else if (new_state === grpc.connectivityState.FATAL_FAILURE) {
callback(new Error('Failed to connect to server')); callback(new Error('Failed to connect to server'));
} else { } else {
self.$channel.watchConnectivityState(new_state, deadline, checkState); try {
self.$channel.watchConnectivityState(new_state, deadline, checkState);
} catch (e) {
callback(new Error('The channel has been closed'));
}
} }
}; };
/* Force a single round of polling to ensure that the channel state is up /* Force a single round of polling to ensure that the channel state is up

View File

@ -21,10 +21,10 @@
"lib": "src" "lib": "src"
}, },
"scripts": { "scripts": {
"build": "./node_modules/.bin/node-pre-gyp build", "build": "node-pre-gyp build",
"electron-build": "./node_modules/.bin/node-pre-gyp configure build --runtime=electron --disturl=https://atom.io/download/atom-shell", "electron-build": "node-pre-gyp configure build --runtime=electron --disturl=https://atom.io/download/atom-shell",
"coverage": "./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha test", "coverage": "istanbul cover ./node_modules/.bin/_mocha test",
"install": "./node_modules/.bin/node-pre-gyp install --fallback-to-build --library=static_library", "install": "node-pre-gyp install --fallback-to-build --library=static_library",
"prepack": "git submodule update --init --recursive && npm install" "prepack": "git submodule update --init --recursive && npm install"
}, },
"bundledDependencies": [ "bundledDependencies": [
@ -69,7 +69,8 @@
"ext/*.{cc,h}", "ext/*.{cc,h}",
"deps/grpc/include/grpc/**/*.h", "deps/grpc/include/grpc/**/*.h",
"deps/grpc/src/core/**/*.{c,cc,h}", "deps/grpc/src/core/**/*.{c,cc,h}",
"deps/grpc/src/boringssl/*.{c,cc,h}", "deps/grpc/src/boringssl/err_data.c",
"deps/grpc/src/cpp/ext/filters/census/grpc_context.cc",
"deps/grpc/third_party/nanopb/*.{c,cc,h}", "deps/grpc/third_party/nanopb/*.{c,cc,h}",
"deps/grpc/third_party/zlib/**/*.{c,cc,h}", "deps/grpc/third_party/zlib/**/*.{c,cc,h}",
"deps/grpc/third_party/boringssl/crypto/**/*.{c,cc,h}", "deps/grpc/third_party/boringssl/crypto/**/*.{c,cc,h}",