paypro: fix server hooking for self-signed paypro testing.
This commit is contained in:
parent
2d12933112
commit
295f3a144a
1 changed files with 56 additions and 4 deletions
60
app.js
60
app.js
|
|
@ -22,13 +22,65 @@ app.start = function(port, callback) {
|
||||||
cert: fs.readFileSync(bc + '/test/data/x509.crt')
|
cert: fs.readFileSync(bc + '/test/data/x509.crt')
|
||||||
});
|
});
|
||||||
var pserver = require(bc + '/examples/PayPro/server.js');
|
var pserver = require(bc + '/examples/PayPro/server.js');
|
||||||
server.on('request', function(req, res) {
|
pserver.removeListener('request', pserver.app);
|
||||||
app(req, res);
|
pserver.on('request', function(req, res) {
|
||||||
pserver.app(res, res);
|
var statusCode = res.statusCode;
|
||||||
|
|
||||||
|
var headers = Object.keys(res._headers || {}).reduce(function(out, key) {
|
||||||
|
out[key] = res._headers[key];
|
||||||
|
return out;
|
||||||
|
}, {});
|
||||||
|
|
||||||
|
var headerNames = Object.keys(res._headerNames || {}).reduce(function(out, key) {
|
||||||
|
out[key] = res._headerNames[key];
|
||||||
|
return out;
|
||||||
|
}, {});
|
||||||
|
|
||||||
|
var writeHead = res.writeHead;
|
||||||
|
var write = res.write;
|
||||||
|
var end = res.end;
|
||||||
|
var status;
|
||||||
|
|
||||||
|
res.writeHead = function(s) {
|
||||||
|
status = s;
|
||||||
|
if (status > 400) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
return writeHead.apply(this, arguments);
|
||||||
|
};
|
||||||
|
|
||||||
|
res.write = function() {
|
||||||
|
if (status && status > 400) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return write.apply(this, arguments);
|
||||||
|
};
|
||||||
|
|
||||||
|
res.end = function() {
|
||||||
|
var self = this;
|
||||||
|
var args = Array.prototype.slice.call(arguments);
|
||||||
|
process.nextTick(function() {
|
||||||
|
self.statusCode = statusCode;
|
||||||
|
self._headers = headers;
|
||||||
|
self._headerNames = headerNames;
|
||||||
|
self.writeHead = writeHead;
|
||||||
|
self.write = write;
|
||||||
|
self.end = end;
|
||||||
|
if ((status || self.statusCode) > 400) {
|
||||||
|
return pserver.app(req, res);
|
||||||
|
}
|
||||||
|
return end.apply(self, args);
|
||||||
|
});
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
|
||||||
|
return app(req, res);
|
||||||
});
|
});
|
||||||
app.listen(port, function() {
|
|
||||||
|
pserver.listen(port, function() {
|
||||||
callback('https://localhost:' + port);
|
callback('https://localhost:' + port);
|
||||||
});
|
});
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue