Added explicit insecure credentials constructors

pull/2679/head
murgatroid99 10 years ago
parent 6aff7aa335
commit 6249c0cf78
  1. 47
      src/node/ext/credentials.cc
  2. 1
      src/node/ext/credentials.h

@ -83,6 +83,8 @@ void Credentials::Init(Handle<Object> exports) {
NanNew<FunctionTemplate>(CreateFake)->GetFunction()); NanNew<FunctionTemplate>(CreateFake)->GetFunction());
ctr->Set(NanNew("createIam"), ctr->Set(NanNew("createIam"),
NanNew<FunctionTemplate>(CreateIam)->GetFunction()); NanNew<FunctionTemplate>(CreateIam)->GetFunction());
ctr->Set(NanNew("createInsecure"),
NanNew<FunctionTemplate>(CreateIam)->GetFunction());
constructor = new NanCallback(ctr); constructor = new NanCallback(ctr);
exports->Set(NanNew("Credentials"), ctr); exports->Set(NanNew("Credentials"), ctr);
} }
@ -94,9 +96,6 @@ bool Credentials::HasInstance(Handle<Value> val) {
Handle<Value> Credentials::WrapStruct(grpc_credentials *credentials) { Handle<Value> Credentials::WrapStruct(grpc_credentials *credentials) {
NanEscapableScope(); NanEscapableScope();
if (credentials == NULL) {
return NanEscapeScope(NanNull());
}
const int argc = 1; const int argc = 1;
Handle<Value> argv[argc] = { Handle<Value> argv[argc] = {
NanNew<External>(reinterpret_cast<void *>(credentials))}; NanNew<External>(reinterpret_cast<void *>(credentials))};
@ -130,7 +129,11 @@ NAN_METHOD(Credentials::New) {
NAN_METHOD(Credentials::CreateDefault) { NAN_METHOD(Credentials::CreateDefault) {
NanScope(); NanScope();
NanReturnValue(WrapStruct(grpc_google_default_credentials_create())); grpc_credentials *creds = grpc_google_default_credentials_create();
if (creds == NULL) {
NanReturnNull();
}
NanReturnValue(WrapStruct(creds));
} }
NAN_METHOD(Credentials::CreateSsl) { NAN_METHOD(Credentials::CreateSsl) {
@ -154,9 +157,12 @@ NAN_METHOD(Credentials::CreateSsl) {
return NanThrowTypeError( return NanThrowTypeError(
"createSSl's third argument must be a Buffer if provided"); "createSSl's third argument must be a Buffer if provided");
} }
grpc_credentials *creds = grpc_ssl_credentials_create(
NanReturnValue(WrapStruct(grpc_ssl_credentials_create( root_certs, key_cert_pair.private_key == NULL ? NULL : &key_cert_pair);
root_certs, key_cert_pair.private_key == NULL ? NULL : &key_cert_pair))); if (creds == NULL) {
NanReturnNull();
}
NanReturnValue(WrapStruct(creds));
} }
NAN_METHOD(Credentials::CreateComposite) { NAN_METHOD(Credentials::CreateComposite) {
@ -171,13 +177,21 @@ NAN_METHOD(Credentials::CreateComposite) {
} }
Credentials *creds1 = ObjectWrap::Unwrap<Credentials>(args[0]->ToObject()); Credentials *creds1 = ObjectWrap::Unwrap<Credentials>(args[0]->ToObject());
Credentials *creds2 = ObjectWrap::Unwrap<Credentials>(args[1]->ToObject()); Credentials *creds2 = ObjectWrap::Unwrap<Credentials>(args[1]->ToObject());
NanReturnValue(WrapStruct(grpc_composite_credentials_create( grpc_credentials *creds = grpc_composite_credentials_create(
creds1->wrapped_credentials, creds2->wrapped_credentials))); creds1->wrapped_credentials, creds2->wrapped_credentials);
if (creds == NULL) {
NanReturnNull();
}
NanReturnValue(WrapStruct(creds));
} }
NAN_METHOD(Credentials::CreateGce) { NAN_METHOD(Credentials::CreateGce) {
NanScope(); NanScope();
NanReturnValue(WrapStruct(grpc_compute_engine_credentials_create())); grpc_credentials *creds = grpc_compute_engine_credentials_create();
if (creds == NULL) {
NanReturnNull();
}
NanReturnValue(WrapStruct(creds));
} }
NAN_METHOD(Credentials::CreateFake) { NAN_METHOD(Credentials::CreateFake) {
@ -195,8 +209,17 @@ NAN_METHOD(Credentials::CreateIam) {
} }
NanUtf8String auth_token(args[0]); NanUtf8String auth_token(args[0]);
NanUtf8String auth_selector(args[1]); NanUtf8String auth_selector(args[1]);
NanReturnValue( grpc_credentisl *creds = grpc_iam_credentials_create(*auth_token,
WrapStruct(grpc_iam_credentials_create(*auth_token, *auth_selector))); *auth_selector);
if (creds == NULL) {
NanReturnNull();
}
NanReturnValue(WrapStruct(creds));
}
NAN_METHOD(Credentials::CreateInsecure) {
NanScope();
NanReturnValue(WrapStruct(NULL));
} }
} // namespace node } // namespace node

@ -68,6 +68,7 @@ class Credentials : public ::node::ObjectWrap {
static NAN_METHOD(CreateGce); static NAN_METHOD(CreateGce);
static NAN_METHOD(CreateFake); static NAN_METHOD(CreateFake);
static NAN_METHOD(CreateIam); static NAN_METHOD(CreateIam);
static NAN_METHOD(CreateInsecure);
static NanCallback *constructor; static NanCallback *constructor;
// Used for typechecking instances of this javascript class // Used for typechecking instances of this javascript class
static v8::Persistent<v8::FunctionTemplate> fun_tpl; static v8::Persistent<v8::FunctionTemplate> fun_tpl;

Loading…
Cancel
Save