summaryrefslogtreecommitdiff
path: root/share/server
diff options
context:
space:
mode:
authorJan Lehnardt <jan@apache.org>2011-09-08 11:03:20 +0000
committerJan Lehnardt <jan@apache.org>2011-09-08 11:03:20 +0000
commit860be768c957b0f6954921cd25a9b8465da8617b (patch)
treeebbd8c7e56ded6179a42d7d35385b857231845bc /share/server
parent6cf2f036ece28c95988b8312c8532fac55a3c7a0 (diff)
Fix list-style send() API in show functions when using provides()
Also fix ignoring the return value when the send() API isnused. Patch by Alexander Shorin. Closes COUCHDB-1272 git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1166625 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'share/server')
-rw-r--r--share/server/render.js10
1 files changed, 7 insertions, 3 deletions
diff --git a/share/server/render.js b/share/server/render.js
index d207db41..93ff6332 100644
--- a/share/server/render.js
+++ b/share/server/render.js
@@ -220,10 +220,10 @@ var Render = (function() {
resetList();
Mime.resetProvides();
var resp = fun.apply(ddoc, args) || {};
+ resp = maybeWrapResponse(resp);
// handle list() style API
if (chunks.length && chunks.length > 0) {
- resp = maybeWrapResponse(resp);
resp.headers = resp.headers || {};
for(var header in startResp) {
resp.headers[header] = startResp[header]
@@ -233,8 +233,12 @@ var Render = (function() {
}
if (Mime.providesUsed) {
- resp = Mime.runProvides(args[1], ddoc);
- resp = applyContentType(maybeWrapResponse(resp), Mime.responseContentType);
+ var provided_resp = Mime.runProvides(args[1], ddoc) || {};
+ provided_resp = maybeWrapResponse(provided_resp);
+ resp.body = (resp.body || "") + chunks.join("");
+ resp.body += provided_resp.body || "";
+ resp = applyContentType(resp, Mime.responseContentType);
+ resetList();
}
var type = typeOf(resp);