From e5d1a97375eb7f4ab9790ac9c08b95b0f4c61c8e Mon Sep 17 00:00:00 2001 From: Zaid Abdulla Date: Mon, 12 Nov 2012 08:23:51 +0300 Subject: [PATCH] Using buffers to get request body --- acs.coffee | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/acs.coffee b/acs.coffee index 6f1364e..f61052e 100644 --- a/acs.coffee +++ b/acs.coffee @@ -124,15 +124,29 @@ else response.end('405 Method Not Allowed') return - request.content = '' + chunks = [] + bytes = 0 cookies = {} request.addListener 'data', (chunk) -> - request.content += chunk + chunks.push(chunk) + bytes += chunk.length + + request.getBody = (encoding) -> + # Write all chunks into a Buffer + body = new Buffer(bytes) + offset = 0 + chunks.forEach((chunk) -> + chunk.copy(body, offset, 0, chunk.length) + offset += chunk.length + ) + + #Return encoded (default to UTF8) string + return body.toString(encoding || 'utf8', 0, body.byteLength) request.addListener 'end', () -> resParams = {} - reqParams = tr069.request(request.headers, request.content) + reqParams = tr069.request(request.headers, request.getBody()) if reqParams.inform resParams.inform = true