From 34dd6c3b79c41da5fcf18d9ea743a2c6a92b0932 Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Thu, 12 Jan 2017 12:49:25 -0800 Subject: [PATCH] http: url fixes. --- lib/http/base.js | 36 ++++++++++++++++-------------------- lib/http/rpc.js | 2 +- lib/http/server.js | 2 +- test/http-test.js | 2 +- 4 files changed, 19 insertions(+), 23 deletions(-) diff --git a/lib/http/base.js b/lib/http/base.js index 0254344c..96e623e7 100644 --- a/lib/http/base.js +++ b/lib/http/base.js @@ -114,13 +114,9 @@ HTTPBase.prototype._initRouter = function _initRouter() { */ HTTPBase.prototype.handleRequest = co(function* handleRequest(req, res) { - var url = initRequest(req, res, this.keyLimit); var i, routes, route, params; - if (url.trailingSlash) { - res.redirect(302, req.url); - return; - } + initRequest(req, res, this.keyLimit); this.emit('request', req, res); @@ -591,7 +587,7 @@ Routes.prototype.getHandlers = function getHandlers(method) { function nop() {} function initRequest(req, res, limit) { - var url; + var parsed; req.on('error', nop); @@ -631,14 +627,14 @@ function initRequest(req, res, limit) { res.error = makeSendError(req, res); res.redirect = makeRedirect(res); - url = parseURL(req.url, limit); + parsed = parseURL(req.url, limit); - req.url = url.url; - req.pathname = url.pathname; - req.path = url.path; - req.query = url.query; + req.url = parsed.url; + req.pathname = parsed.pathname; + req.path = parsed.parts; + req.query = parsed.query; - return url; + return parsed; } function makeSend(res) { @@ -733,7 +729,7 @@ function makeRedirect(res) { return function redirect(code, url) { if (!url) { url = code; - code = 302; + code = 301; } res.statusCode = code; res.setHeader('Location', url); @@ -776,9 +772,9 @@ function parsePairs(str, limit) { return data; } -function parseURL(reqUrl, limit) { - var uri = URL.parse(reqUrl); - var parsed = new ParsedURL(reqUrl); +function parseURL(str, limit) { + var uri = URL.parse(str); + var parsed = new ParsedURL(str); var pathname = uri.pathname; var query = Object.create(null); var trailing = false; @@ -837,9 +833,9 @@ function parseURL(reqUrl, limit) { parsed.url = url; parsed.pathname = pathname; - parsed.path = path; + parsed.parts = parts; parsed.query = query; - parsed.trailingSlash = trailing; + parsed.trailing = trailing; return parsed; } @@ -848,9 +844,9 @@ function ParsedURL(original) { this.original = original; this.url = null; this.pathname = null; - this.path = null; + this.parts = null; this.query = null; - this.trailingSlash = false; + this.trailing = false; } function unescape(str) { diff --git a/lib/http/rpc.js b/lib/http/rpc.js index 90688325..03d9ee2a 100644 --- a/lib/http/rpc.js +++ b/lib/http/rpc.js @@ -2420,7 +2420,7 @@ RPC.prototype.createmultisig = co(function* createmultisig(args) { address = script.getAddress(); return { - address: adddress.toBase58(this.network), + address: address.toBase58(this.network), redeemScript: script.toJSON() }; }); diff --git a/lib/http/server.js b/lib/http/server.js index 24f7e7aa..933f093f 100644 --- a/lib/http/server.js +++ b/lib/http/server.js @@ -132,7 +132,7 @@ HTTPServer.prototype._init = function _init() { res.setHeader('X-Bcoin-Agent', this.pool.userAgent); res.setHeader('X-Bcoin-Network', this.network.type); 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) { diff --git a/test/http-test.js b/test/http-test.js index 028af59d..bec6361b 100644 --- a/test/http-test.js +++ b/test/http-test.js @@ -45,7 +45,7 @@ describe('HTTP', function() { var info = yield wallet.client.getInfo(); assert.equal(info.network, node.network.type); 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(info.chain.height, 0); }));