aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/msgpack_rpc/helpers.c
diff options
context:
space:
mode:
authorSander Bosma <sanderbosma@gmail.com>2017-03-01 10:43:47 +0100
committerJustin M. Keyes <justinkz@gmail.com>2017-04-23 23:44:29 +0200
commit5c9860a0a2bf27d409c986673f0a74542561c4c3 (patch)
tree72f53fdf36e2b627df51a4ee810987ff1a0dd477 /src/nvim/msgpack_rpc/helpers.c
parent45240538742d6276ab25abe0d8b02550e1c68179 (diff)
downloadrneovim-5c9860a0a2bf27d409c986673f0a74542561c4c3.tar.gz
rneovim-5c9860a0a2bf27d409c986673f0a74542561c4c3.tar.bz2
rneovim-5c9860a0a2bf27d409c986673f0a74542561c4c3.zip
api: Do not truncate errors <1 MB. #6237
Closes #5984
Diffstat (limited to 'src/nvim/msgpack_rpc/helpers.c')
-rw-r--r--src/nvim/msgpack_rpc/helpers.c22
1 files changed, 10 insertions, 12 deletions
diff --git a/src/nvim/msgpack_rpc/helpers.c b/src/nvim/msgpack_rpc/helpers.c
index 967ce31c1b..c273343b41 100644
--- a/src/nvim/msgpack_rpc/helpers.c
+++ b/src/nvim/msgpack_rpc/helpers.c
@@ -475,8 +475,7 @@ Object msgpack_rpc_handle_missing_method(uint64_t channel_id,
Array args,
Error *error)
{
- snprintf(error->msg, sizeof(error->msg), "Invalid method name");
- error->set = true;
+ _api_set_error(error, error->type, "Invalid method name");
return NIL;
}
@@ -485,8 +484,7 @@ Object msgpack_rpc_handle_invalid_arguments(uint64_t channel_id,
Array args,
Error *error)
{
- snprintf(error->msg, sizeof(error->msg), "Invalid method arguments");
- error->set = true;
+ _api_set_error(error, error->type, "Invalid method arguments");
return NIL;
}
@@ -572,29 +570,29 @@ void msgpack_rpc_validate(uint64_t *response_id,
*response_id = NO_RESPONSE;
// Validate the basic structure of the msgpack-rpc payload
if (req->type != MSGPACK_OBJECT_ARRAY) {
- api_set_error(err, Validation, _("Message is not an array"));
+ _api_set_error(err, kErrorTypeValidation, _("Message is not an array"));
return;
}
if (req->via.array.size == 0) {
- api_set_error(err, Validation, _("Message is empty"));
+ _api_set_error(err, kErrorTypeValidation, _("Message is empty"));
return;
}
if (req->via.array.ptr[0].type != MSGPACK_OBJECT_POSITIVE_INTEGER) {
- api_set_error(err, Validation, _("Message type must be an integer"));
+ _api_set_error(err, kErrorTypeValidation, _("Message type must be an integer"));
return;
}
uint64_t type = req->via.array.ptr[0].via.u64;
if (type != kMessageTypeRequest && type != kMessageTypeNotification) {
- api_set_error(err, Validation, _("Unknown message type"));
+ _api_set_error(err, kErrorTypeValidation, _("Unknown message type"));
return;
}
if ((type == kMessageTypeRequest && req->via.array.size != 4)
|| (type == kMessageTypeNotification && req->via.array.size != 3)) {
- api_set_error(err, Validation, _("Request array size should be 4 (request) "
+ _api_set_error(err, kErrorTypeValidation, _("Request array size should be 4 (request) "
"or 3 (notification)"));
return;
}
@@ -602,19 +600,19 @@ void msgpack_rpc_validate(uint64_t *response_id,
if (type == kMessageTypeRequest) {
msgpack_object *id_obj = msgpack_rpc_msg_id(req);
if (!id_obj) {
- api_set_error(err, Validation, _("ID must be a positive integer"));
+ _api_set_error(err, kErrorTypeValidation, _("ID must be a positive integer"));
return;
}
*response_id = id_obj->via.u64;
}
if (!msgpack_rpc_method(req)) {
- api_set_error(err, Validation, _("Method must be a string"));
+ _api_set_error(err, kErrorTypeValidation, _("Method must be a string"));
return;
}
if (!msgpack_rpc_args(req)) {
- api_set_error(err, Validation, _("Parameters must be an array"));
+ _api_set_error(err, kErrorTypeValidation, _("Parameters must be an array"));
return;
}
}