This commit is contained in:
xiaofeng.mxf
2019-02-26 23:26:50 +08:00
parent ce1327205c
commit 9682926e67
6 changed files with 57 additions and 18 deletions

View File

@@ -550,14 +550,14 @@ function getConnectReqHandler(userRule, recorder, httpsServerMgr) {
shouldIntercept = reqHandlerCtx.forceProxyHttps;
}
})
.then(() =>
new Promise((resolve) => {
.then(() => {
return new Promise((resolve) => {
// mark socket connection as established, to detect the request protocol
cltSocket.write('HTTP/' + req.httpVersion + ' 200 OK\r\n\r\n', 'UTF-8', resolve);
})
)
.then(() =>
new Promise((resolve, reject) => {
});
})
.then(() => {
return new Promise((resolve, reject) => {
let resolved = false;
cltSocket.on('data', (chunk) => {
requestStream.push(chunk);
@@ -580,11 +580,19 @@ function getConnectReqHandler(userRule, recorder, httpsServerMgr) {
resolve();
}
});
cltSocket.on('error', (error) => {
logUtil.printLog(util.collectErrorLog(error), logUtil.T_ERR);
co.wrap(function *() {
try {
yield userRule.onClientSocketError(requestDetail, error);
} catch (e) { }
});
});
cltSocket.on('end', () => {
requestStream.push(null);
});
})
)
});
})
.then((result) => {
// log and recorder
if (shouldIntercept) {

View File

@@ -66,4 +66,16 @@ module.exports = {
*onConnectError(requestDetail, error) {
return null;
},
/**
*
*
* @param {any} requestDetail
* @param {any} error
* @returns
*/
*onClientSocketError(requestDetail, error) {
return null;
},
};