mirror of https://github.com/lukechilds/node.git
Browse Source
dgram#send callback was changed synchronously. The PR-URL is here https://github.com/joyent/libuv/pull/1358 This commit is temporary fix until libuv issue is resolved. https://github.com/libuv/libuv/issues/301 PR-URL: https://github.com/iojs/io.js/pull/1313 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Trevor Norris <trev.norris@gmail.com>v2.0.2
Yosuke Furukawa
10 years ago
2 changed files with 42 additions and 1 deletions
@ -0,0 +1,38 @@ |
|||
'use strict'; |
|||
const common = require('../common'); |
|||
const assert = require('assert'); |
|||
|
|||
const dgram = require('dgram'); |
|||
const client = dgram.createSocket('udp4'); |
|||
const chunk = 'abc'; |
|||
var recursiveCount = 0; |
|||
var received = 0; |
|||
const limit = 10; |
|||
|
|||
function onsend() { |
|||
if (recursiveCount > limit) { |
|||
throw new Error('infinite loop detected'); |
|||
} |
|||
if (received < limit) { |
|||
client.send( |
|||
chunk, 0, chunk.length, common.PORT, common.localhostIPv4, onsend); |
|||
} |
|||
recursiveCount++; |
|||
} |
|||
|
|||
client.on('listening', function() { |
|||
onsend(); |
|||
}); |
|||
|
|||
client.on('message', function(buf, info) { |
|||
received++; |
|||
if (received === limit) { |
|||
client.close(); |
|||
} |
|||
}); |
|||
|
|||
client.on('close', common.mustCall(function() { |
|||
assert.equal(received, limit); |
|||
})); |
|||
|
|||
client.bind(common.PORT); |
Loading…
Reference in new issue