diff --git a/src/udp_wrap.cc b/src/udp_wrap.cc index 1f67296076bb25..8a4b6ea9664cfb 100644 --- a/src/udp_wrap.cc +++ b/src/udp_wrap.cc @@ -237,9 +237,9 @@ void UDPWrap::BufferSize(const FunctionCallbackInfo& args) { if (!args[0]->IsInt32()) { if (args[1].As()->Value() == 0) - return env->ThrowUVException(EINVAL, "uv_recv_buffer_size"); + return env->ThrowUVException(UV_EINVAL, "uv_recv_buffer_size"); else - return env->ThrowUVException(EINVAL, "uv_send_buffer_size"); + return env->ThrowUVException(UV_EINVAL, "uv_send_buffer_size"); } int err; diff --git a/test/parallel/test-dgram-socket-buffer-size.js b/test/parallel/test-dgram-socket-buffer-size.js index 13fbd4fb4be601..7d6e2bfcc564ca 100644 --- a/test/parallel/test-dgram-socket-buffer-size.js +++ b/test/parallel/test-dgram-socket-buffer-size.js @@ -72,3 +72,24 @@ const dgram = require('dgram'); socket.close(); })); } + +function checkBufferSizeError(type, size) { + const errorObj = { + code: 'ERR_SOCKET_BUFFER_SIZE', + type: Error, + message: 'Could not get or set buffer size: Error: EINVAL: ' + + `invalid argument, uv_${type}_buffer_size` + }; + const functionName = `set${type.charAt(0).toUpperCase()}${type.slice(1)}` + + 'BufferSize'; + const socket = dgram.createSocket('udp4'); + socket.bind(common.mustCall(() => { + assert.throws(() => { + socket[functionName](size); + }, common.expectsError(errorObj)); + socket.close(); + })); +} + +checkBufferSizeError('recv', 2147483648); +checkBufferSizeError('send', 2147483648);