@@ -14,6 +14,18 @@ const createServer = (server, options) => {
14
14
options . handleCommonErrors = true ;
15
15
}
16
16
17
+ function prepareSocket ( socket , name ) {
18
+ socket . setKeepAlive ( true ) ; // prevent idle timeout ECONNRESET
19
+ if ( options . setNoDelay ) {
20
+ socket . setNoDelay ( true ) ; // disable nagle algorithm
21
+ }
22
+ if ( server . timeout ) {
23
+ socket . setTimeout ( server . timeout , ( ) => closeSocket ( socket ) ) ;
24
+ }
25
+ socket . addListener ( 'close' , ( ) => closeSocket ( socket ) ) ;
26
+ socket . addListener ( 'error' , err => onError ( err , name , socket ) ) ;
27
+ }
28
+
17
29
function closeSocket ( socket ) {
18
30
for ( let s = socket ; s !== null ; s = s . _parent ) {
19
31
s . unref ( ) ;
@@ -49,14 +61,7 @@ const createServer = (server, options) => {
49
61
let bytesRead = 0 ;
50
62
let proxyProtoLength ;
51
63
let isProxyProto ;
52
- socket . setKeepAlive ( true ) ; // prevent idle timeout ECONNRESET
53
- if ( options . setNoDelay ) {
54
- socket . setNoDelay ( true ) ; // disable nagle algorithm
55
- }
56
- if ( server . timeout ) {
57
- socket . setTimeout ( server . timeout , ( ) => closeSocket ( socket ) ) ;
58
- }
59
- socket . addListener ( 'error' , err => onError ( err , 'proxyproto socket' , socket ) ) ;
64
+ prepareSocket ( socket , 'proxyproto socket' ) ;
60
65
socket . addListener ( 'data' , onData ) ;
61
66
function onData ( buffer ) {
62
67
socket . pause ( ) ;
@@ -113,18 +118,11 @@ const createServer = (server, options) => {
113
118
configurable : true
114
119
} ) ;
115
120
} ) ;
116
- socket . addListener ( 'error' , err => onError ( err , 'secure socket' , socket ) ) ;
117
- socket . setKeepAlive ( true ) ; // prevent idle timeout ECONNRESET
118
- if ( options . setNoDelay ) {
119
- socket . setNoDelay ( true ) ; // disable nagle algorithm
120
- }
121
- if ( server . timeout ) {
122
- socket . setTimeout ( server . timeout , ( ) => closeSocket ( socket ) ) ;
123
- }
121
+ prepareSocket ( socket , 'secure socket' ) ;
124
122
} ) ;
125
123
} else {
126
124
server . on ( 'connection' , socket => {
127
- socket . addListener ( 'error' , err => onError ( err , 'socket' ) ) ;
125
+ prepareSocket ( socket , 'socket' ) ;
128
126
} ) ;
129
127
}
130
128
0 commit comments