diff options
author | Matteo Collina <hello@matteocollina.com> | 2016-02-24 09:12:59 +0100 |
---|---|---|
committer | Matteo Collina <hello@matteocollina.com> | 2016-02-28 11:25:36 +0100 |
commit | 725ffdb9b73305dbff2e14db0e8b8fc5aa001c41 (patch) | |
tree | 482662c33b988b0595718e501a6abbaf0fd4d8eb /lib/dgram.js | |
parent | ffdc046e5c2e80cdde31db72554dcf5196ed6d4b (diff) | |
download | android-node-v8-725ffdb9b73305dbff2e14db0e8b8fc5aa001c41.tar.gz android-node-v8-725ffdb9b73305dbff2e14db0e8b8fc5aa001c41.tar.bz2 android-node-v8-725ffdb9b73305dbff2e14db0e8b8fc5aa001c41.zip |
dgram: handle default address case when offset and length are specified
Fixes a regression introduced by: https://github.com/nodejs/node/pull/4374.
Adds a new test to avoid similar issue in the future.
The test is disabled on windows, because this feature never worked
there.
Fixes: https://github.com/nodejs/node/issues/5398
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Evan Lucas <evanlucas@me.com>
Diffstat (limited to 'lib/dgram.js')
-rw-r--r-- | lib/dgram.js | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/dgram.js b/lib/dgram.js index 279f595269..6937ab6362 100644 --- a/lib/dgram.js +++ b/lib/dgram.js @@ -286,6 +286,13 @@ function enqueue(self, toEnqueue) { } +// valid combinations +// send(buffer, offset, length, port, address, callback) +// send(buffer, offset, length, port, address) +// send(buffer, offset, length, port) +// send(bufferOrList, port, address, callback) +// send(bufferOrList, port, address) +// send(bufferOrList, port) Socket.prototype.send = function(buffer, offset, length, @@ -294,8 +301,7 @@ Socket.prototype.send = function(buffer, callback) { var self = this; - // same as arguments.length === 5 || arguments.length === 6 - if (address) { + if (address || (port && typeof port !== 'function')) { buffer = sliceBuffer(buffer, offset, length); } else { callback = port; |