mirror of https://github.com/grpc/grpc-node.git
Simplify userdata being passed to checkServerIdentity callback.
This commit is contained in:
parent
b6ad568c09
commit
c70df88fc0
|
@ -60,14 +60,10 @@ ChannelCredentials::~ChannelCredentials() {
|
||||||
grpc_channel_credentials_release(wrapped_credentials);
|
grpc_channel_credentials_release(wrapped_credentials);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct callback_md {
|
|
||||||
Nan::Callback *callback;
|
|
||||||
};
|
|
||||||
|
|
||||||
static int verify_peer_callback_wrapper(const char* servername, const char* cert, void* userdata) {
|
static int verify_peer_callback_wrapper(const char* servername, const char* cert, void* userdata) {
|
||||||
Nan::HandleScope scope;
|
Nan::HandleScope scope;
|
||||||
Nan::TryCatch try_catch;
|
Nan::TryCatch try_catch;
|
||||||
struct callback_md* md = (struct callback_md*)userdata;
|
Nan::Callback *callback = (Nan::Callback*)userdata;
|
||||||
|
|
||||||
const unsigned argc = 2;
|
const unsigned argc = 2;
|
||||||
Local<Value> argv[argc];
|
Local<Value> argv[argc];
|
||||||
|
@ -82,7 +78,7 @@ static int verify_peer_callback_wrapper(const char* servername, const char* cert
|
||||||
argv[1] = Nan::New<v8::String>(cert).ToLocalChecked();
|
argv[1] = Nan::New<v8::String>(cert).ToLocalChecked();
|
||||||
}
|
}
|
||||||
|
|
||||||
md->callback->Call(argc, argv);
|
callback->Call(argc, argv);
|
||||||
|
|
||||||
if (try_catch.HasCaught()) {
|
if (try_catch.HasCaught()) {
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -92,9 +88,8 @@ static int verify_peer_callback_wrapper(const char* servername, const char* cert
|
||||||
}
|
}
|
||||||
|
|
||||||
static void verify_peer_callback_destruct(void *userdata) {
|
static void verify_peer_callback_destruct(void *userdata) {
|
||||||
callback_md *md = (callback_md*)userdata;
|
Nan::Callback *callback = (Nan::Callback*)userdata;
|
||||||
delete md->callback;
|
delete callback;
|
||||||
delete md;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ChannelCredentials::Init(Local<Object> exports) {
|
void ChannelCredentials::Init(Local<Object> exports) {
|
||||||
|
@ -211,10 +206,9 @@ NAN_METHOD(ChannelCredentials::CreateSsl) {
|
||||||
if (!value->IsFunction()) {
|
if (!value->IsFunction()) {
|
||||||
return Nan::ThrowError("Value of checkServerIdentity must be a function.");
|
return Nan::ThrowError("Value of checkServerIdentity must be a function.");
|
||||||
}
|
}
|
||||||
struct callback_md *md = new struct callback_md;
|
Nan::Callback *callback = new Callback(Local<Function>::Cast(value));
|
||||||
md->callback = new Callback(Local<Function>::Cast(value));
|
|
||||||
verify_options.verify_peer_callback = verify_peer_callback_wrapper;
|
verify_options.verify_peer_callback = verify_peer_callback_wrapper;
|
||||||
verify_options.verify_peer_callback_userdata = (void*)md;
|
verify_options.verify_peer_callback_userdata = (void*)callback;
|
||||||
verify_options.verify_peer_destruct = verify_peer_callback_destruct;
|
verify_options.verify_peer_destruct = verify_peer_callback_destruct;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue