mirror of
https://github.com/avwo/whistle.git
synced 2026-10-27 04:19:59 +08:00
feat: add originalReq.remoteAddress & originalReq.remotePort
This commit is contained in:
+8
-4
@@ -38,11 +38,11 @@ var proxy, server;
|
||||
|
||||
function handleWebsocket(socket, clientIp, clientPort) {
|
||||
var wss = socket.isHttps;
|
||||
clientIp = util.removeIPV6Prefix(clientIp || socket.remoteAddress);
|
||||
clientIp = util.removeIPV6Prefix(clientIp || socket._remoteAddr || socket.remoteAddress);
|
||||
socket.clientIp = clientIp;
|
||||
socket.method = 'GET';
|
||||
socket.reqId = util.getReqId();
|
||||
socket.clientPort = clientPort || socket.remotePort;
|
||||
socket.clientPort = clientPort || socket._remotePort || socket.remotePort;
|
||||
rules.initHeaderRules(socket);
|
||||
pluginMgr.resolvePipePlugin(socket, function() {
|
||||
socket.rules = rules.initRules(socket);
|
||||
@@ -745,7 +745,8 @@ function addReqInfo(req) {
|
||||
if (remoteData) {
|
||||
req.isHttpH2 = remoteData.isHttpH2;
|
||||
socket._remoteDataInfo = remoteData;
|
||||
headers[config.CLIENT_INFO_HEAD] = (remoteData.clientIp || LOCALHOST) + ',' + remoteData.clientPort;
|
||||
headers[config.CLIENT_INFO_HEAD] = (remoteData.clientIp || LOCALHOST) + ',' + remoteData.clientPort +
|
||||
',' + remoteData.remoteAddr + ',' + remoteData.remotePort;
|
||||
var tunnelFirst = remoteData.tunnelFirst;
|
||||
if (remoteData.clientId) {
|
||||
headers[config.CLIENT_ID_HEADER] = remoteData.clientId;
|
||||
@@ -912,7 +913,8 @@ var CONNECT_RE = /^CONNECT$/i;
|
||||
function addClientInfo(socket, chunk, statusLine, clientIp, clientPort) {
|
||||
var len = Buffer.byteLength(statusLine);
|
||||
chunk = chunk.slice(len);
|
||||
statusLine += '\r\n' + config.CLIENT_INFO_HEAD + ': ' + clientIp + ',' + clientPort;
|
||||
statusLine += '\r\n' + config.CLIENT_INFO_HEAD + ': ' + clientIp + ',' + clientPort +
|
||||
',' + socket._remoteAddr + ',' + socket._remotePort;
|
||||
var clientId = socket.headers[config.CLIENT_ID_HEADER];
|
||||
if (clientId) {
|
||||
statusLine += '\r\n' + config.TEMP_CLIENT_ID_HEADER + ': ' + clientId;
|
||||
@@ -1032,6 +1034,8 @@ module.exports = function(socket, next, isWebPort) {
|
||||
tunnelTmplData.set(reqSocket.localPort + ':' + reqSocket.remotePort, {
|
||||
clientIp: clientIp,
|
||||
clientPort: clientPort,
|
||||
remoteAddr: socket._remoteAddr,
|
||||
remotePort: socket._remotePort,
|
||||
clientId: headers[config.CLIENT_ID_HEADER],
|
||||
proxyAuth: disable.tunnelAuthHeader ? undefined : headers['proxy-authorization'],
|
||||
tunnelData: tunnelData,
|
||||
|
||||
Reference in New Issue
Block a user