src: use UV_EINVAL instead of EINVAL in udp_wrap
Currently if the buffer size exceeds the maximum int size the following error will be thrown: dgram.js:180 throw new errors.Error('ERR_SOCKET_BUFFER_SIZE', e); ^ Error [ERR_SOCKET_BUFFER_SIZE]: Could not get or set buffer size: Error: Unknown system error 22: Unknown system error 22, uv_recv_buffer_size at bufferSize (dgram.js:180:11) It looks like perhaps UV_EINVAL was intended to give the following error message instead: dgram.js:180 throw new errors.Error('ERR_SOCKET_BUFFER_SIZE', e); ^ Error [ERR_SOCKET_BUFFER_SIZE]: Could not get or set buffer size: Error: EINVAL: invalid argument, uv_recv_buffer_size at bufferSize (dgram.js:180:11) This commit changes EINVAL to use UV_EINVAL. PR-URL: https://github.com/nodejs/node/pull/15444 Reviewed-By: Tobias Nießen <tniessen@tnie.de> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
parent
3888a576ac
commit
f4899ac4c0
@ -237,9 +237,9 @@ void UDPWrap::BufferSize(const FunctionCallbackInfo<Value>& args) {
|
|||||||
|
|
||||||
if (!args[0]->IsInt32()) {
|
if (!args[0]->IsInt32()) {
|
||||||
if (args[1].As<Uint32>()->Value() == 0)
|
if (args[1].As<Uint32>()->Value() == 0)
|
||||||
return env->ThrowUVException(EINVAL, "uv_recv_buffer_size");
|
return env->ThrowUVException(UV_EINVAL, "uv_recv_buffer_size");
|
||||||
else
|
else
|
||||||
return env->ThrowUVException(EINVAL, "uv_send_buffer_size");
|
return env->ThrowUVException(UV_EINVAL, "uv_send_buffer_size");
|
||||||
}
|
}
|
||||||
|
|
||||||
int err;
|
int err;
|
||||||
|
@ -72,3 +72,24 @@ const dgram = require('dgram');
|
|||||||
socket.close();
|
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);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user