@@ -139,7 +139,7 @@ const TrustStrategy = {
139
139
}
140
140
} ) ;
141
141
socket . on ( 'error' , onFailure ) ;
142
- return socket ;
142
+ return configureSocket ( socket ) ;
143
143
} ,
144
144
TRUST_SYSTEM_CA_SIGNED_CERTIFICATES : function ( config , onSuccess , onFailure ) {
145
145
const tlsOpts = newTlsOptions ( config . url . host ) ;
@@ -157,7 +157,7 @@ const TrustStrategy = {
157
157
}
158
158
} ) ;
159
159
socket . on ( 'error' , onFailure ) ;
160
- return socket ;
160
+ return configureSocket ( socket ) ;
161
161
} ,
162
162
/**
163
163
* @deprecated in 1.1 in favour of {@link #TRUST_ALL_CERTIFICATES}. Will be deleted in a future version.
@@ -212,7 +212,7 @@ const TrustStrategy = {
212
212
} ) ;
213
213
} ) ;
214
214
socket . on ( 'error' , onFailure ) ;
215
- return socket ;
215
+ return configureSocket ( socket ) ;
216
216
} ,
217
217
218
218
TRUST_ALL_CERTIFICATES : function ( config , onSuccess , onFailure ) {
@@ -230,7 +230,7 @@ const TrustStrategy = {
230
230
}
231
231
} ) ;
232
232
socket . on ( 'error' , onFailure ) ;
233
- return socket ;
233
+ return configureSocket ( socket ) ;
234
234
}
235
235
} ;
236
236
@@ -244,9 +244,9 @@ const TrustStrategy = {
244
244
function connect ( config , onSuccess , onFailure = ( ( ) => null ) ) {
245
245
const trustStrategy = trustStrategyName ( config ) ;
246
246
if ( ! isEncrypted ( config ) ) {
247
- var conn = net . connect ( config . url . port , config . url . host , onSuccess ) ;
248
- conn . on ( 'error' , onFailure ) ;
249
- return conn ;
247
+ const socket = net . connect ( config . url . port , config . url . host , onSuccess ) ;
248
+ socket . on ( 'error' , onFailure ) ;
249
+ return configureSocket ( socket ) ;
250
250
} else if ( TrustStrategy [ trustStrategy ] ) {
251
251
return TrustStrategy [ trustStrategy ] ( config , onSuccess , onFailure ) ;
252
252
} else {
@@ -290,6 +290,16 @@ function newTlsOptions(hostname, ca = undefined) {
290
290
} ;
291
291
}
292
292
293
+ /**
294
+ * Update socket options for the newly created socket. Accepts either `net.Socket` or its subclass `tls.TLSSocket`.
295
+ * @param {net.Socket } socket the socket to configure.
296
+ * @return {net.Socket } the given socket.
297
+ */
298
+ function configureSocket ( socket ) {
299
+ socket . setKeepAlive ( true ) ;
300
+ return socket ;
301
+ }
302
+
293
303
/**
294
304
* In a Node.js environment the 'net' module is used
295
305
* as transport.
0 commit comments