proxy-chain 2.6.1 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -110,6 +110,99 @@ server.on('requestFailed', ({ request, error }) => {
110
110
  });
111
111
  ```
112
112
 
113
+ ## Run a simple HTTPS proxy server
114
+
115
+ This example demonstrates how to create an HTTPS proxy server with a self-signed certificate. The HTTPS proxy server works identically to the HTTP version but with TLS encryption.
116
+
117
+ ```javascript
118
+ const fs = require('fs');
119
+ const path = require('path');
120
+ const ProxyChain = require('proxy-chain');
121
+
122
+ (async () => {
123
+ // TODO: update these lines to use your own key and cert
124
+ const sslKey = fs.readFileSync(path.join(__dirname, 'ssl.key'));
125
+ const sslCrt = fs.readFileSync(path.join(__dirname, 'ssl.crt'));
126
+
127
+ const server = new ProxyChain.Server({
128
+ // Main difference between 'http' and 'https' is additional event listening:
129
+ //
130
+ // http
131
+ // -> listen for 'connection' events to track raw TCP sockets
132
+ //
133
+ // https:
134
+ // -> listen for 'securedConnection' events (instead of 'connection') to track only post-TLS-handshake sockets
135
+ // -> additionally listen for 'tlsError' events to handle TLS handshake errors
136
+ //
137
+ // Default value is 'http'
138
+ serverType: 'https',
139
+
140
+ // Provide the TLS certificate and private key
141
+ httpsOptions: {
142
+ key: sslKey,
143
+ cert: sslCrt,
144
+ },
145
+
146
+ // Port where the server will listen
147
+ port: 8443,
148
+
149
+ // Enable verbose logging to see what's happening
150
+ verbose: true,
151
+
152
+ // Optional: Add authentication and upstream proxy configuration
153
+ prepareRequestFunction: ({ username, hostname, port }) => {
154
+ console.log(`Request to ${hostname}:${port} from user: ${username || 'anonymous'}`);
155
+
156
+ // Allow the request
157
+ return {};
158
+ },
159
+ });
160
+
161
+ // Handle failed HTTP/HTTPS requests
162
+ server.on('requestFailed', ({ request, error }) => {
163
+ console.log(`Request ${request.url} failed`);
164
+ console.error(error);
165
+ });
166
+
167
+ // Handle TLS handshake errors
168
+ server.on('tlsError', ({ error, socket }) => {
169
+ console.error(`TLS error from ${socket.remoteAddress}: ${error.message}`);
170
+ });
171
+
172
+ // Emitted when HTTP/HTTPS connection is closed
173
+ server.on('connectionClosed', ({ connectionId, stats }) => {
174
+ console.log(`Connection ${connectionId} closed`);
175
+ console.dir(stats);
176
+ });
177
+
178
+ // Start the server
179
+ await server.listen();
180
+
181
+ // Handle graceful shutdown
182
+ process.on('SIGINT', async () => {
183
+ console.log('\nShutting down server...');
184
+ await server.close(true);
185
+ console.log('Server closed.');
186
+ process.exit(0);
187
+ });
188
+
189
+ // Keep the server running
190
+ await new Promise(() => { });
191
+ })();
192
+ ```
193
+
194
+ Run server:
195
+
196
+ ```bash
197
+ node https_proxy_server.js
198
+ ```
199
+
200
+ Send request via proxy:
201
+
202
+ ```bash
203
+ curl --proxy-insecure -x https://localhost:8443 -k https://example.com
204
+ ```
205
+
113
206
  ## Use custom HTTP agents for connection pooling
114
207
 
115
208
  You can provide custom HTTP/HTTPS agents to enable connection pooling and reuse with upstream proxies. This is particularly useful for maintaining sticky IP addresses or reducing connection overhead:
package/dist/server.d.ts CHANGED
@@ -10,11 +10,14 @@ import { Buffer } from 'node:buffer';
10
10
  import type dns from 'node:dns';
11
11
  import { EventEmitter } from 'node:events';
12
12
  import http from 'node:http';
13
- import type https from 'node:https';
13
+ import https from 'node:https';
14
14
  import { URL } from 'node:url';
15
15
  import type { HandlerOpts as CustomResponseOpts } from './custom_response';
16
- import type { Socket } from './socket';
16
+ import type { Socket, TLSSocket } from './socket';
17
17
  export declare const SOCKS_PROTOCOLS: string[];
18
+ /**
19
+ * Connection statistics for bandwidth tracking.
20
+ */
18
21
  export type ConnectionStats = {
19
22
  srcTxBytes: number;
20
23
  srcRxBytes: number;
@@ -65,10 +68,27 @@ export type PrepareRequestFunctionResult = {
65
68
  };
66
69
  type Promisable<T> = T | Promise<T>;
67
70
  export type PrepareRequestFunction = (opts: PrepareRequestFunctionOpts) => Promisable<undefined | PrepareRequestFunctionResult>;
71
+ type ServerOptionsBase = {
72
+ port?: number;
73
+ host?: string;
74
+ prepareRequestFunction?: PrepareRequestFunction;
75
+ verbose?: boolean;
76
+ authRealm?: unknown;
77
+ };
78
+ export type HttpServerOptions = ServerOptionsBase & {
79
+ serverType?: 'http';
80
+ };
81
+ export type HttpsServerOptions = ServerOptionsBase & {
82
+ serverType: 'https';
83
+ httpsOptions: https.ServerOptions;
84
+ };
85
+ export type ServerOptions = HttpServerOptions | HttpsServerOptions;
68
86
  /**
69
87
  * Represents the proxy server.
70
88
  * It emits the 'requestFailed' event on unexpected request errors, with the following parameter `{ error, request }`.
71
89
  * It emits the 'connectionClosed' event when connection to proxy server is closed, with parameter `{ connectionId, stats }`.
90
+ * It emits the 'tlsError' event on TLS handshake failures (HTTPS servers only), with parameter `{ error, socket }`.
91
+ * with parameter `{ connectionId, reason, hasParent, parentType }`.
72
92
  */
73
93
  export declare class Server extends EventEmitter {
74
94
  port: number;
@@ -76,7 +96,8 @@ export declare class Server extends EventEmitter {
76
96
  prepareRequestFunction?: PrepareRequestFunction;
77
97
  authRealm: unknown;
78
98
  verbose: boolean;
79
- server: http.Server;
99
+ server: http.Server | https.Server;
100
+ serverType: 'http' | 'https';
80
101
  lastHandlerId: number;
81
102
  stats: {
82
103
  httpRequestCount: number;
@@ -87,6 +108,9 @@ export declare class Server extends EventEmitter {
87
108
  * Initializes a new instance of Server class.
88
109
  * @param options
89
110
  * @param [options.port] Port where the server will listen. By default 8000.
111
+ * @param [options.serverType] Type of server to create: 'http' or 'https'. By default 'http'.
112
+ * @param [options.httpsOptions] HTTPS server options (required when serverType is 'https').
113
+ * Accepts standard Node.js https.ServerOptions including key, cert, ca, passphrase, etc.
90
114
  * @param [options.prepareRequestFunction] Custom function to authenticate proxy requests,
91
115
  * provide URL to upstream proxy or potentially provide a function that generates a custom response to HTTP requests.
92
116
  * It accepts a single parameter which is an object:
@@ -117,13 +141,14 @@ export declare class Server extends EventEmitter {
117
141
  * @param [options.authRealm] Realm used in the Proxy-Authenticate header and also in the 'Server' HTTP header. By default it's `ProxyChain`.
118
142
  * @param [options.verbose] If true, the server will output logs
119
143
  */
120
- constructor(options?: {
121
- port?: number;
122
- host?: string;
123
- prepareRequestFunction?: PrepareRequestFunction;
124
- verbose?: boolean;
125
- authRealm?: unknown;
126
- });
144
+ constructor(options?: ServerOptions);
145
+ /**
146
+ * Handles TLS handshake errors for HTTPS servers.
147
+ * Without this handler, unhandled TLS errors can crash the server.
148
+ * Common errors: ECONNRESET, ERR_SSL_SSLV3_ALERT_CERTIFICATE_UNKNOWN,
149
+ * ERR_SSL_TLSV1_ALERT_PROTOCOL_VERSION, ERR_SSL_SSLV3_ALERT_HANDSHAKE_FAILURE
150
+ */
151
+ onTLSClientError(err: NodeJS.ErrnoException, tlsSocket: TLSSocket): void;
127
152
  log(connectionId: unknown, str: string): void;
128
153
  onClientError(err: NodeJS.ErrnoException, socket: Socket): void;
129
154
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;;;;;AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAO/B,OAAO,KAAK,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAO3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAQvC,eAAO,MAAM,eAAe,UAA2D,CAAC;AAcxF,MAAM,MAAM,eAAe,GAAG;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,KAAK,WAAW,GAAG;IACf,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC;IACjC,WAAW,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IACxC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,GAAG,GAAG,IAAI,CAAC;IACtB,sBAAsB,EAAE,GAAG,GAAG,IAAI,CAAC;IACnC,8BAA8B,EAAE,OAAO,CAAC;IACxC,MAAM,EAAE,OAAO,CAAC;IAChB,sBAAsB,CAAC,EAAE,kBAAkB,CAAC,wBAAwB,CAAC,GAAG,IAAI,CAAC;IAC7E,mBAAmB,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC;IACvB,UAAU,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACvC,sBAAsB,CAAC,EAAE,kBAAkB,CAAC,wBAAwB,CAAC,CAAC;IACtE,mBAAmB,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACzC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC;IACvB,UAAU,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC;CAC5B,CAAC;AAEF,KAAK,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AACpC,MAAM,MAAM,sBAAsB,GAAG,CAAC,IAAI,EAAE,0BAA0B,KAAK,UAAU,CAAC,SAAS,GAAG,4BAA4B,CAAC,CAAC;AAEhI;;;;GAIG;AACH,qBAAa,MAAO,SAAQ,YAAY;IACpC,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAEhD,SAAS,EAAE,OAAO,CAAC;IAEnB,OAAO,EAAE,OAAO,CAAC;IAEjB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IAEpB,aAAa,EAAE,MAAM,CAAC;IAEtB,KAAK,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE,MAAM,CAAC;KAAE,CAAC;IAElE,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;gBACS,OAAO,GAAE;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;QAChD,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,SAAS,CAAC,EAAE,OAAO,CAAC;KAClB;IA6BN,GAAG,CAAC,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAQ7C,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAW/D;;;OAGG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAqBxC;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAmBlC;;OAEG;IACH,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc;IAY1E;;OAEG;IACG,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B5F;;;;;OAKG;IACG,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B3F;;;OAGG;IACH,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,GAAG,WAAW;IA4D1D;;;;OAIG;IACG,0BAA0B,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAuChI;;;;OAIG;IACG,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAwDjF;;;;OAIG;IACH,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,MAAM,CAAC,cAAc,GAAG,IAAI;IAiB9E;;;;;;;;;OASG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,SAAM,EAAE,oBAAoB,KAAK,EAAE,OAAO,SAAK,GAAG,IAAI;IAsCnG;;OAEG;IACG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc,GAAG,IAAI,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BrF;;OAEG;IACH,gBAAgB,IAAI,MAAM,EAAE;IAI5B;;OAEG;IACH,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAgBrE;;OAEG;IACH,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAW3C;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAUxB;;;OAGG;IACG,KAAK,CAAC,gBAAgB,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc,GAAG,IAAI,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAoBlH"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -6,6 +6,7 @@ const tslib_1 = require("tslib");
6
6
  const node_buffer_1 = require("node:buffer");
7
7
  const node_events_1 = require("node:events");
8
8
  const node_http_1 = tslib_1.__importDefault(require("node:http"));
9
+ const node_https_1 = tslib_1.__importDefault(require("node:https"));
9
10
  const node_url_1 = require("node:url");
10
11
  const node_util_1 = tslib_1.__importDefault(require("node:util"));
11
12
  const chain_1 = require("./chain");
@@ -33,16 +34,26 @@ exports.SOCKS_PROTOCOLS = ['socks:', 'socks4:', 'socks4a:', 'socks5:', 'socks5h:
33
34
  // requiring prior update of deployed intermediaries."
34
35
  const DEFAULT_AUTH_REALM = 'ProxyChain';
35
36
  const DEFAULT_PROXY_SERVER_PORT = 8000;
37
+ const HTTPS_DEFAULT_OPTIONS = {
38
+ // Disable TLS 1.0 and 1.1 (deprecated, insecure).
39
+ // All other TLS settings use Node.js defaults for cipher selection (automatically updated).
40
+ minVersion: 'TLSv1.2',
41
+ };
36
42
  /**
37
43
  * Represents the proxy server.
38
44
  * It emits the 'requestFailed' event on unexpected request errors, with the following parameter `{ error, request }`.
39
45
  * It emits the 'connectionClosed' event when connection to proxy server is closed, with parameter `{ connectionId, stats }`.
46
+ * It emits the 'tlsError' event on TLS handshake failures (HTTPS servers only), with parameter `{ error, socket }`.
47
+ * with parameter `{ connectionId, reason, hasParent, parentType }`.
40
48
  */
41
49
  class Server extends node_events_1.EventEmitter {
42
50
  /**
43
51
  * Initializes a new instance of Server class.
44
52
  * @param options
45
53
  * @param [options.port] Port where the server will listen. By default 8000.
54
+ * @param [options.serverType] Type of server to create: 'http' or 'https'. By default 'http'.
55
+ * @param [options.httpsOptions] HTTPS server options (required when serverType is 'https').
56
+ * Accepts standard Node.js https.ServerOptions including key, cert, ca, passphrase, etc.
46
57
  * @param [options.prepareRequestFunction] Custom function to authenticate proxy requests,
47
58
  * provide URL to upstream proxy or potentially provide a function that generates a custom response to HTTP requests.
48
59
  * It accepts a single parameter which is an object:
@@ -111,6 +122,12 @@ class Server extends node_events_1.EventEmitter {
111
122
  writable: true,
112
123
  value: void 0
113
124
  });
125
+ Object.defineProperty(this, "serverType", {
126
+ enumerable: true,
127
+ configurable: true,
128
+ writable: true,
129
+ value: void 0
130
+ });
114
131
  Object.defineProperty(this, "lastHandlerId", {
115
132
  enumerable: true,
116
133
  configurable: true,
@@ -139,11 +156,40 @@ class Server extends node_events_1.EventEmitter {
139
156
  this.prepareRequestFunction = options.prepareRequestFunction;
140
157
  this.authRealm = options.authRealm || DEFAULT_AUTH_REALM;
141
158
  this.verbose = !!options.verbose;
142
- this.server = node_http_1.default.createServer();
159
+ // Keep legacy behavior (http) as default behavior.
160
+ this.serverType = options.serverType === 'https' ? 'https' : 'http';
161
+ if (options.serverType === 'https') {
162
+ if (!options.httpsOptions) {
163
+ throw new Error('httpsOptions is required when serverType is "https"');
164
+ }
165
+ // Apply secure TLS defaults (user options can override).
166
+ const effectiveOptions = {
167
+ ...HTTPS_DEFAULT_OPTIONS,
168
+ honorCipherOrder: true,
169
+ ...options.httpsOptions,
170
+ };
171
+ this.server = node_https_1.default.createServer(effectiveOptions);
172
+ }
173
+ else {
174
+ this.server = node_http_1.default.createServer();
175
+ }
176
+ // Attach common event handlers (same for both HTTP and HTTPS).
143
177
  this.server.on('clientError', this.onClientError.bind(this));
144
178
  this.server.on('request', this.onRequest.bind(this));
145
179
  this.server.on('connect', this.onConnect.bind(this));
146
- this.server.on('connection', this.onConnection.bind(this));
180
+ // Attach connection tracking based on server type.
181
+ // Only listen to one connection event to avoid double registration.
182
+ if (this.serverType === 'https') {
183
+ // For HTTPS: Track only post-TLS-handshake sockets (secureConnection).
184
+ // This ensures we track the TLS-wrapped socket with correct bytesRead/bytesWritten.
185
+ this.server.on('secureConnection', this.onConnection.bind(this));
186
+ // Handle TLS handshake errors to prevent server crashes.
187
+ this.server.on('tlsClientError', this.onTLSClientError.bind(this));
188
+ }
189
+ else {
190
+ // For HTTP: Track raw TCP sockets (connection).
191
+ this.server.on('connection', this.onConnection.bind(this));
192
+ }
147
193
  this.lastHandlerId = 0;
148
194
  this.stats = {
149
195
  httpRequestCount: 0,
@@ -151,6 +197,25 @@ class Server extends node_events_1.EventEmitter {
151
197
  };
152
198
  this.connections = new Map();
153
199
  }
200
+ /**
201
+ * Handles TLS handshake errors for HTTPS servers.
202
+ * Without this handler, unhandled TLS errors can crash the server.
203
+ * Common errors: ECONNRESET, ERR_SSL_SSLV3_ALERT_CERTIFICATE_UNKNOWN,
204
+ * ERR_SSL_TLSV1_ALERT_PROTOCOL_VERSION, ERR_SSL_SSLV3_ALERT_HANDSHAKE_FAILURE
205
+ */
206
+ onTLSClientError(err, tlsSocket) {
207
+ const connectionId = tlsSocket.proxyChainId;
208
+ this.log(connectionId, `TLS handshake failed: ${err.message}`);
209
+ // Emit event in first place before any return statement.
210
+ this.emit('tlsError', { error: err, socket: tlsSocket });
211
+ // If connection already reset or socket not writable, nothing more to do.
212
+ if (err.code === 'ECONNRESET' || !tlsSocket.writable) {
213
+ return;
214
+ }
215
+ // TLS handshake failed before HTTP, cannot send HTTP response.
216
+ // Destroy the socket to clean up.
217
+ tlsSocket.destroy(err);
218
+ }
154
219
  log(connectionId, str) {
155
220
  if (this.verbose) {
156
221
  const logPrefix = connectionId != null ? `${String(connectionId)} | ` : '';
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "proxy-chain",
3
- "version": "2.6.1",
3
+ "version": "2.7.0",
4
4
  "description": "Node.js implementation of a proxy server (think Squid) with support for SSL, authentication, upstream proxy chaining, and protocol tunneling.",
5
5
  "main": "dist/index.js",
6
6
  "keywords": [
@@ -37,8 +37,9 @@
37
37
  "clean": "rimraf dist",
38
38
  "prepublishOnly": "npm run build",
39
39
  "local-proxy": "node ./dist/run_locally.js",
40
- "test": "nyc cross-env NODE_OPTIONS=--insecure-http-parser mocha --bail",
41
- "test:docker": "docker build --tag proxy-chain-tests --file test/Dockerfile . && docker run proxy-chain-tests",
40
+ "test": "nyc cross-env NODE_OPTIONS=--insecure-http-parser mocha",
41
+ "test:docker": "docker build --tag proxy-chain-tests --file test/Dockerfile . && docker run proxy-chain-tests",
42
+ "test:docker:all": "bash scripts/test-docker-all.sh",
42
43
  "lint": "eslint .",
43
44
  "lint:fix": "eslint . --fix"
44
45
  },