1
0
Fork 0
mirror of https://github.com/SunRed/haste-server.git synced 2024-11-23 17:50:19 +01:00

Cancellation should only last as long as the handler

This commit is contained in:
Joe Friedl 2011-12-19 14:20:22 -06:00
parent 71c791c113
commit 8c2add94a2

View file

@ -49,20 +49,21 @@ DocumentHandler.prototype.handleRawGet = function(key, response, skipExpire) {
DocumentHandler.prototype.handlePost = function(request, response) { DocumentHandler.prototype.handlePost = function(request, response) {
var _this = this; var _this = this;
var buffer = ''; var buffer = '';
var cancelled = false;
request.on('data', function(data) { request.on('data', function(data) {
if (!buffer) { if (!buffer) {
response.writeHead(200, { 'content-type': 'application/json' }); response.writeHead(200, { 'content-type': 'application/json' });
} }
buffer += data.toString(); buffer += data.toString();
if (_this.maxLength && buffer.length > _this.maxLength) { if (_this.maxLength && buffer.length > _this.maxLength) {
_this.cancelled = true; cancelled = true;
winston.warn('document >maxLength', { maxLength: _this.maxLength }); winston.warn('document >maxLength', { maxLength: _this.maxLength });
response.writeHead(400, { 'content-type': 'application/json' }); response.writeHead(400, { 'content-type': 'application/json' });
response.end(JSON.stringify({ message: 'Document exceeds maximum length.' })); response.end(JSON.stringify({ message: 'Document exceeds maximum length.' }));
} }
}); });
request.on('end', function(end) { request.on('end', function(end) {
if (_this.cancelled) return; if (cancelled) return;
_this.chooseKey(function(key) { _this.chooseKey(function(key) {
_this.store.set(key, buffer, function(res) { _this.store.set(key, buffer, function(res) {
if (res) { if (res) {