MCPcopy Index your code
hub / github.com/nodejs/node / internalConnect

Function internalConnect

lib/net.js:1251–1320  ·  view source on GitHub ↗
(
  self, address, port, addressType, localAddress, localPort, flags)

Source from the content-addressed store, hash-verified

1249
1250
1251function internalConnect(
1252 self, address, port, addressType, localAddress, localPort, flags) {
1253 // TODO return promise from Socket.prototype.connect which
1254 // wraps _connectReq.
1255
1256 assert(self.connecting);
1257
1258 let err;
1259
1260 if (localAddress || localPort) {
1261 if (addressType === 4) {
1262 localAddress ||= DEFAULT_IPV4_ADDR;
1263 err = self._handle.bind(localAddress, localPort);
1264 } else { // addressType === 6
1265 localAddress ||= DEFAULT_IPV6_ADDR;
1266 err = self._handle.bind6(localAddress, localPort, flags);
1267 }
1268 debug('connect: binding to localAddress: %s and localPort: %d (addressType: %d)',
1269 localAddress, localPort, addressType);
1270
1271 err = checkBindError(err, localPort, self._handle);
1272 if (err) {
1273 const ex = new ExceptionWithHostPort(err, 'bind', localAddress, localPort);
1274 self.destroy(ex);
1275 return;
1276 }
1277 }
1278
1279 debug('connect: attempting to connect to %s:%d (addressType: %d)', address, port, addressType);
1280 self.emit('connectionAttempt', address, port, addressType);
1281
1282 if (addressType === 6 || addressType === 4) {
1283 if (self.blockList?.check(address, `ipv${addressType}`)) {
1284 self.destroy(new ERR_IP_BLOCKED(address));
1285 return;
1286 }
1287 const req = new TCPConnectWrap();
1288 req.oncomplete = afterConnect;
1289 req.address = address;
1290 req.port = port;
1291 req.localAddress = localAddress;
1292 req.localPort = localPort;
1293 req.addressType = addressType;
1294
1295 if (addressType === 4)
1296 err = self._handle.connect(req, address, port);
1297 else
1298 err = self._handle.connect6(req, address, port);
1299 } else {
1300 const req = new PipeConnectWrap();
1301 req.address = address;
1302 req.oncomplete = afterConnect;
1303
1304 err = self._handle.connect(req, address);
1305 }
1306
1307 if (err) {
1308 const sockname = self._getsockname();

Callers

nothing calls this directly

Calls 10

checkBindErrorFunction · 0.85
hasObserverFunction · 0.85
startPerfFunction · 0.85
assertFunction · 0.70
connectMethod · 0.65
debugFunction · 0.50
bindMethod · 0.45
destroyMethod · 0.45
emitMethod · 0.45
checkMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…