|
|
|
@ -15,7 +15,7 @@ function matched (hostname, overWallTargetMap) {
|
|
|
|
|
return 'overwall config' |
|
|
|
|
} |
|
|
|
|
if (pacClient == null) { |
|
|
|
|
return false |
|
|
|
|
return null |
|
|
|
|
} |
|
|
|
|
const ret = pacClient.FindProxyForURL('https://' + hostname, hostname) |
|
|
|
|
if (ret && ret.indexOf('PROXY ') === 0) { |
|
|
|
@ -23,7 +23,7 @@ function matched (hostname, overWallTargetMap) {
|
|
|
|
|
return 'overwall pac' |
|
|
|
|
} else { |
|
|
|
|
log.debug(`matchHostname: matched overwall: Not-Matched '${hostname}' -> '${ret}' in pac.txt`) |
|
|
|
|
return false |
|
|
|
|
return null |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -148,7 +148,11 @@ function createOverwallMiddleware (overWallConfig) {
|
|
|
|
|
return { |
|
|
|
|
sslConnectInterceptor: (req, cltSocket, head) => { |
|
|
|
|
const hostname = req.url.split(':')[0] |
|
|
|
|
return matched(hostname, overWallTargetMap) |
|
|
|
|
const ret = matched(hostname, overWallTargetMap) |
|
|
|
|
if (ret == null) { |
|
|
|
|
return null // 返回 null,由下一个拦截器校验
|
|
|
|
|
} |
|
|
|
|
return true // 拦截
|
|
|
|
|
}, |
|
|
|
|
requestIntercept (context, req, res, ssl, next) { |
|
|
|
|
const { rOptions, log, RequestCounter } = context |
|
|
|
@ -157,7 +161,7 @@ function createOverwallMiddleware (overWallConfig) {
|
|
|
|
|
} |
|
|
|
|
const hostname = rOptions.hostname |
|
|
|
|
const matchedResult = matched(hostname, overWallTargetMap) |
|
|
|
|
if (!matchedResult) { |
|
|
|
|
if (matchedResult == null) { |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
const cacheKey = '__over_wall_proxy__' |
|
|
|
|