| 'use strict'; |
| const common = require('../common'); |
| const dgram = require('dgram'); |
| |
| // Regression test for https://github.com/nodejs/node/issues/30209 |
| // No warning should be emitted when re-trying `.bind()` on UDP sockets |
| // repeatedly. |
| |
| process.on('warning', common.mustNotCall()); |
| |
| const reservePortSocket = dgram.createSocket('udp4'); |
| reservePortSocket.bind(() => { |
| const { port } = reservePortSocket.address(); |
| |
| const newSocket = dgram.createSocket('udp4'); |
| |
| let errors = 0; |
| newSocket.on('error', common.mustCall(() => { |
| if (++errors < 20) { |
| newSocket.bind(port, common.mustNotCall()); |
| } else { |
| newSocket.close(); |
| reservePortSocket.close(); |
| } |
| }, 20)); |
| newSocket.bind(port, common.mustNotCall()); |
| }); |