http: url fixes.
This commit is contained in:
parent
002718206a
commit
34dd6c3b79
@ -114,13 +114,9 @@ HTTPBase.prototype._initRouter = function _initRouter() {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
HTTPBase.prototype.handleRequest = co(function* handleRequest(req, res) {
|
HTTPBase.prototype.handleRequest = co(function* handleRequest(req, res) {
|
||||||
var url = initRequest(req, res, this.keyLimit);
|
|
||||||
var i, routes, route, params;
|
var i, routes, route, params;
|
||||||
|
|
||||||
if (url.trailingSlash) {
|
initRequest(req, res, this.keyLimit);
|
||||||
res.redirect(302, req.url);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.emit('request', req, res);
|
this.emit('request', req, res);
|
||||||
|
|
||||||
@ -591,7 +587,7 @@ Routes.prototype.getHandlers = function getHandlers(method) {
|
|||||||
function nop() {}
|
function nop() {}
|
||||||
|
|
||||||
function initRequest(req, res, limit) {
|
function initRequest(req, res, limit) {
|
||||||
var url;
|
var parsed;
|
||||||
|
|
||||||
req.on('error', nop);
|
req.on('error', nop);
|
||||||
|
|
||||||
@ -631,14 +627,14 @@ function initRequest(req, res, limit) {
|
|||||||
res.error = makeSendError(req, res);
|
res.error = makeSendError(req, res);
|
||||||
res.redirect = makeRedirect(res);
|
res.redirect = makeRedirect(res);
|
||||||
|
|
||||||
url = parseURL(req.url, limit);
|
parsed = parseURL(req.url, limit);
|
||||||
|
|
||||||
req.url = url.url;
|
req.url = parsed.url;
|
||||||
req.pathname = url.pathname;
|
req.pathname = parsed.pathname;
|
||||||
req.path = url.path;
|
req.path = parsed.parts;
|
||||||
req.query = url.query;
|
req.query = parsed.query;
|
||||||
|
|
||||||
return url;
|
return parsed;
|
||||||
}
|
}
|
||||||
|
|
||||||
function makeSend(res) {
|
function makeSend(res) {
|
||||||
@ -733,7 +729,7 @@ function makeRedirect(res) {
|
|||||||
return function redirect(code, url) {
|
return function redirect(code, url) {
|
||||||
if (!url) {
|
if (!url) {
|
||||||
url = code;
|
url = code;
|
||||||
code = 302;
|
code = 301;
|
||||||
}
|
}
|
||||||
res.statusCode = code;
|
res.statusCode = code;
|
||||||
res.setHeader('Location', url);
|
res.setHeader('Location', url);
|
||||||
@ -776,9 +772,9 @@ function parsePairs(str, limit) {
|
|||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
function parseURL(reqUrl, limit) {
|
function parseURL(str, limit) {
|
||||||
var uri = URL.parse(reqUrl);
|
var uri = URL.parse(str);
|
||||||
var parsed = new ParsedURL(reqUrl);
|
var parsed = new ParsedURL(str);
|
||||||
var pathname = uri.pathname;
|
var pathname = uri.pathname;
|
||||||
var query = Object.create(null);
|
var query = Object.create(null);
|
||||||
var trailing = false;
|
var trailing = false;
|
||||||
@ -837,9 +833,9 @@ function parseURL(reqUrl, limit) {
|
|||||||
|
|
||||||
parsed.url = url;
|
parsed.url = url;
|
||||||
parsed.pathname = pathname;
|
parsed.pathname = pathname;
|
||||||
parsed.path = path;
|
parsed.parts = parts;
|
||||||
parsed.query = query;
|
parsed.query = query;
|
||||||
parsed.trailingSlash = trailing;
|
parsed.trailing = trailing;
|
||||||
|
|
||||||
return parsed;
|
return parsed;
|
||||||
}
|
}
|
||||||
@ -848,9 +844,9 @@ function ParsedURL(original) {
|
|||||||
this.original = original;
|
this.original = original;
|
||||||
this.url = null;
|
this.url = null;
|
||||||
this.pathname = null;
|
this.pathname = null;
|
||||||
this.path = null;
|
this.parts = null;
|
||||||
this.query = null;
|
this.query = null;
|
||||||
this.trailingSlash = false;
|
this.trailing = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function unescape(str) {
|
function unescape(str) {
|
||||||
|
|||||||
@ -2420,7 +2420,7 @@ RPC.prototype.createmultisig = co(function* createmultisig(args) {
|
|||||||
address = script.getAddress();
|
address = script.getAddress();
|
||||||
|
|
||||||
return {
|
return {
|
||||||
address: adddress.toBase58(this.network),
|
address: address.toBase58(this.network),
|
||||||
redeemScript: script.toJSON()
|
redeemScript: script.toJSON()
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|||||||
@ -132,7 +132,7 @@ HTTPServer.prototype._init = function _init() {
|
|||||||
res.setHeader('X-Bcoin-Agent', this.pool.userAgent);
|
res.setHeader('X-Bcoin-Agent', this.pool.userAgent);
|
||||||
res.setHeader('X-Bcoin-Network', this.network.type);
|
res.setHeader('X-Bcoin-Network', this.network.type);
|
||||||
res.setHeader('X-Bcoin-Height', this.chain.height + '');
|
res.setHeader('X-Bcoin-Height', this.chain.height + '');
|
||||||
res.setHeader('X-Bcoin-Tip', util.revHex(this.chain.tip.hash));
|
res.setHeader('X-Bcoin-Tip', this.chain.tip.rhash());
|
||||||
}));
|
}));
|
||||||
|
|
||||||
this.use(co(function* (req, res) {
|
this.use(co(function* (req, res) {
|
||||||
|
|||||||
@ -45,7 +45,7 @@ describe('HTTP', function() {
|
|||||||
var info = yield wallet.client.getInfo();
|
var info = yield wallet.client.getInfo();
|
||||||
assert.equal(info.network, node.network.type);
|
assert.equal(info.network, node.network.type);
|
||||||
assert.equal(info.version, USER_VERSION);
|
assert.equal(info.version, USER_VERSION);
|
||||||
assert.equal(info.agent, node.pool.userAgent);
|
assert.equal(info.pool.agent, node.pool.userAgent);
|
||||||
assert.equal(typeof info.chain, 'object');
|
assert.equal(typeof info.chain, 'object');
|
||||||
assert.equal(info.chain.height, 0);
|
assert.equal(info.chain.height, 0);
|
||||||
}));
|
}));
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user