Skip to content

Commit

Permalink
小调整
Browse files Browse the repository at this point in the history
  • Loading branch information
wangliang181230 committed Apr 17, 2024
1 parent 3fde235 commit 3968272
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 16 deletions.
6 changes: 5 additions & 1 deletion packages/mitmproxy/src/lib/interceptor/impl/res/script.js
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,11 @@ module.exports = {
head: tags + '\r\n'
}
} catch (err) {
res.setHeader('DS-Script-Interceptor', 'error')
try {
res.setHeader('DS-Script-Interceptor', 'error')
} catch (e) {
// ignore
}
log.error('load monkey script error', err)
}
},
Expand Down
2 changes: 1 addition & 1 deletion packages/mitmproxy/src/lib/interceptor/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ const proxy = require('./impl/req/proxy')
const sni = require('./impl/req/sni')

// response interceptor impls
const responseReplace = require('./impl/res/responseReplace')
const cacheRes = require('./impl/res/cacheRes')
const script = require('./impl/res/script')
const responseReplace = require('./impl/res/responseReplace')

module.exports = [
// request interceptor impls
Expand Down
5 changes: 3 additions & 2 deletions packages/mitmproxy/src/lib/monkey/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ function loadScript (content, scriptName) {
const sc = {
grant: [],
match: [],
content: ''
script: ''
}
for (const string of confItemArr) {
const reg = new RegExp('.*@([^\\s]+)\\s(.+)')
Expand Down Expand Up @@ -80,7 +80,8 @@ const api = {
// scripts.jquery = { script: readFile(rootDir, 'jquery.min.js') }
scripts.global = { script: readFile(rootDir, 'global.script') }
return scripts
}
},
loadScript
}

module.exports = api
32 changes: 20 additions & 12 deletions packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ module.exports = function createRequestHandler (createIntercepts, middlewares, e
if (!reqIncpt.requestIntercept) {
continue
}
const goNext = reqIncpt.requestIntercept(context, req, res, ssl)
const goNext = reqIncpt.requestIntercept(context, req, res, ssl, next)
if (goNext) {
next()
return
Expand Down Expand Up @@ -252,18 +252,21 @@ module.exports = function createRequestHandler (createIntercepts, middlewares, e
let head = ''
let body = ''
for (const resIncpt of resIncpts) {
const append = resIncpt.responseIntercept(context, req, res, proxyReq, proxyRes, ssl)
const append = resIncpt.responseIntercept(context, req, res, proxyReq, proxyRes, ssl, next)
// 判断是否已经关闭
if (res.writableEnded) {
next()
return
}
if (append) {
if (append.head) {
head += append.head
}
if (append.body) {
body += append.body
}
}
if (res.writableEnded) {
next()
return
} else if (append === false) {
break // 返回false表示终止拦截器,跳出循环
}
}
InsertScriptMiddleware.responseInterceptor(req, res, proxyReq, proxyRes, ssl, next, {
Expand Down Expand Up @@ -302,14 +305,19 @@ module.exports = function createRequestHandler (createIntercepts, middlewares, e
}
})().catch(e => {
if (!res.writableEnded) {
const status = e.status || 500
res.writeHead(status, { 'Content-Type': 'text/html;charset=UTF8' })
res.write(`DevSidecar Error:<br/>
log.error('Request error:', e)

try {
const status = e.status || 500
res.writeHead(status, { 'Content-Type': 'text/html;charset=UTF8' })
res.write(`DevSidecar Error:<br/>
目标网站请求错误:【${e.code}${e.message}<br/>
目标地址:${rOptions.protocol}//${rOptions.hostname}:${rOptions.port}${rOptions.path}`
)
res.end()
log.error('Request error:', e)
)
res.end()
} catch (e) {
// do nothing
}
}
})
}
Expand Down

0 comments on commit 3968272

Please sign in to comment.