Skip to content

Commit

Permalink
fix(this): use the correct reference to this for object unwrapping
Browse files Browse the repository at this point in the history
  • Loading branch information
mbroadst committed Jul 8, 2018
1 parent 4bb8953 commit 1acfb20
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 24 deletions.
2 changes: 1 addition & 1 deletion src/kerberos.cc
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ class InitializeServerWorker : public Nan::AsyncWorker {

NAN_METHOD(InitializeServer) {
std::string service(*Nan::Utf8String(info[0]));
Nan::Callback* callback = new Nan::Callback(Nan::To<v8::Function>(info[2]).ToLocalChecked());
Nan::Callback* callback = new Nan::Callback(Nan::To<v8::Function>(info[1]).ToLocalChecked());

AsyncQueueWorker(new InitializeServerWorker(service, callback));
}
Expand Down
22 changes: 11 additions & 11 deletions src/kerberos_client.cc
Original file line number Diff line number Diff line change
Expand Up @@ -44,21 +44,21 @@ gss_client_state* KerberosClient::state() const {
}

NAN_GETTER(KerberosClient::UserNameGetter) {
KerberosClient* client = Nan::ObjectWrap::Unwrap<KerberosClient>(info.Holder());
KerberosClient* client = Nan::ObjectWrap::Unwrap<KerberosClient>(info.This());
(client->_state->username == NULL) ?
info.GetReturnValue().Set(Nan::Null()) :
info.GetReturnValue().Set(Nan::New(client->_state->username).ToLocalChecked());
}

NAN_GETTER(KerberosClient::ResponseGetter) {
KerberosClient* client = Nan::ObjectWrap::Unwrap<KerberosClient>(info.Holder());
KerberosClient* client = Nan::ObjectWrap::Unwrap<KerberosClient>(info.This());
(client->_state->response == NULL) ?
info.GetReturnValue().Set(Nan::Null()) :
info.GetReturnValue().Set(Nan::New(client->_state->response).ToLocalChecked());
}

NAN_GETTER(KerberosClient::ResponseConfGetter) {
KerberosClient* client = Nan::ObjectWrap::Unwrap<KerberosClient>(info.Holder());
KerberosClient* client = Nan::ObjectWrap::Unwrap<KerberosClient>(info.This());
info.GetReturnValue().Set(Nan::New(client->_state->responseConf));
}

Expand All @@ -85,9 +85,9 @@ class ClientStepWorker : public Nan::AsyncWorker {
};

NAN_METHOD(KerberosClient::Step) {
KerberosClient* client = Nan::ObjectWrap::Unwrap<KerberosClient>(info[0]->ToObject());
std::string challenge(*Nan::Utf8String(info[1]));
Nan::Callback *callback = new Nan::Callback(Nan::To<v8::Function>(info[2]).ToLocalChecked());
KerberosClient* client = Nan::ObjectWrap::Unwrap<KerberosClient>(info.This());
std::string challenge(*Nan::Utf8String(info[0]));
Nan::Callback *callback = new Nan::Callback(Nan::To<v8::Function>(info[1]).ToLocalChecked());

AsyncQueueWorker(new ClientStepWorker(client, challenge, callback));
}
Expand Down Expand Up @@ -115,9 +115,9 @@ class ClientUnwrapWorker : public Nan::AsyncWorker {
};

NAN_METHOD(KerberosClient::UnwrapData) {
KerberosClient* client = Nan::ObjectWrap::Unwrap<KerberosClient>(info[0]->ToObject());
std::string challenge(*Nan::Utf8String(info[1]));
Nan::Callback *callback = new Nan::Callback(Nan::To<v8::Function>(info[2]).ToLocalChecked());
KerberosClient* client = Nan::ObjectWrap::Unwrap<KerberosClient>(info.This());
std::string challenge(*Nan::Utf8String(info[0]));
Nan::Callback *callback = new Nan::Callback(Nan::To<v8::Function>(info[1]).ToLocalChecked());

AsyncQueueWorker(new ClientUnwrapWorker(client, challenge, callback));
}
Expand Down Expand Up @@ -149,8 +149,8 @@ class ClientWrapWorker : public Nan::AsyncWorker {
};

NAN_METHOD(KerberosClient::WrapData) {
KerberosClient* client = Nan::ObjectWrap::Unwrap<KerberosClient>(info[0]->ToObject());
std::string challenge(*Nan::Utf8String(info[1]));
KerberosClient* client = Nan::ObjectWrap::Unwrap<KerberosClient>(info.This());
std::string challenge(*Nan::Utf8String(info[0]));
v8::Local<v8::Object> options = Nan::To<v8::Object>(info[1]).ToLocalChecked();
Nan::Callback *callback = new Nan::Callback(Nan::To<v8::Function>(info[2]).ToLocalChecked());

Expand Down
7 changes: 2 additions & 5 deletions src/kerberos_gss.cc
Original file line number Diff line number Diff line change
Expand Up @@ -688,11 +688,8 @@ static gss_result* gss_error_result(OM_uint32 err_maj, OM_uint32 err_min)

result = (gss_result *) malloc(sizeof(gss_result));
result->code = AUTH_GSS_ERROR;
// TODO: set the correct message here
// PyErr_SetObject(GssException_class, Py_BuildValue("((s:i)(s:i))", buf_maj, err_maj, buf_min, err_min));
// result->message = (char *) malloc(sizeof(buf_maj));
// strncpy(result->message, (char *) &buf_maj, sizeof(buf_maj));
result->message = strdup("Figure out what error message to report here!");
result->message = (char *) malloc(sizeof(char) * 1024 + 2);
sprintf(result->message, "%s: %s", buf_maj, buf_min);

return result;
}
Expand Down
13 changes: 6 additions & 7 deletions src/kerberos_server.cc
Original file line number Diff line number Diff line change
Expand Up @@ -42,21 +42,21 @@ gss_server_state* KerberosServer::state() const {
}

NAN_GETTER(KerberosServer::UserNameGetter) {
KerberosServer* server = Nan::ObjectWrap::Unwrap<KerberosServer>(info.Holder());
KerberosServer* server = Nan::ObjectWrap::Unwrap<KerberosServer>(info.This());
(server->_state->username == NULL) ?
info.GetReturnValue().Set(Nan::Null()) :
info.GetReturnValue().Set(Nan::New(server->_state->username).ToLocalChecked());
}

NAN_GETTER(KerberosServer::ResponseGetter) {
KerberosServer* server = Nan::ObjectWrap::Unwrap<KerberosServer>(info.Holder());
KerberosServer* server = Nan::ObjectWrap::Unwrap<KerberosServer>(info.This());
(server->_state->response == NULL) ?
info.GetReturnValue().Set(Nan::Null()) :
info.GetReturnValue().Set(Nan::New(server->_state->response).ToLocalChecked());
}

NAN_GETTER(KerberosServer::TargetNameGetter) {
KerberosServer* server = Nan::ObjectWrap::Unwrap<KerberosServer>(info.Holder());
KerberosServer* server = Nan::ObjectWrap::Unwrap<KerberosServer>(info.This());
(server->_state->targetname == NULL) ?
info.GetReturnValue().Set(Nan::Null()) :
info.GetReturnValue().Set(Nan::New(server->_state->targetname).ToLocalChecked());
Expand Down Expand Up @@ -85,10 +85,9 @@ class ServerStepWorker : public Nan::AsyncWorker {
};

NAN_METHOD(KerberosServer::Step) {
KerberosServer* client =
Nan::ObjectWrap::Unwrap<KerberosServer>(info[0]->ToObject());
std::string challenge(*Nan::Utf8String(info[1]));
Nan::Callback *callback = new Nan::Callback(Nan::To<v8::Function>(info[2]).ToLocalChecked());
KerberosServer* client = Nan::ObjectWrap::Unwrap<KerberosServer>(info.This());
std::string challenge(*Nan::Utf8String(info[0]));
Nan::Callback *callback = new Nan::Callback(Nan::To<v8::Function>(info[1]).ToLocalChecked());

AsyncQueueWorker(new ServerStepWorker(client, challenge, callback));
}

0 comments on commit 1acfb20

Please sign in to comment.