summaryrefslogtreecommitdiff
path: root/lib/dgram.js
diff options
context:
space:
mode:
authorMatteo Collina <hello@matteocollina.com>2016-02-24 09:12:59 +0100
committerMatteo Collina <hello@matteocollina.com>2016-02-28 11:25:36 +0100
commit725ffdb9b73305dbff2e14db0e8b8fc5aa001c41 (patch)
tree482662c33b988b0595718e501a6abbaf0fd4d8eb /lib/dgram.js
parentffdc046e5c2e80cdde31db72554dcf5196ed6d4b (diff)
downloadandroid-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.js10
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;