From e17be93cb6f0eb9427676a28d8be99f34c43312d Mon Sep 17 00:00:00 2001 From: "roberto@natty32" Date: Mon, 11 Jul 2011 11:56:19 +0200 Subject: [PATCH] fixed rack.input --- plugins/rack/rack_plugin.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/rack/rack_plugin.c b/plugins/rack/rack_plugin.c index 8bcfd8ce..71dd6694 100644 --- a/plugins/rack/rack_plugin.c +++ b/plugins/rack/rack_plugin.c @@ -134,6 +134,7 @@ VALUE rb_uwsgi_io_read(VALUE obj, VALUE args) { if (RARRAY_LEN(args) == 0) { chunk = rb_str_new(wsgi_req->post_buffering_buf+wsgi_req->buf_pos, wsgi_req->post_cl-wsgi_req->buf_pos); + wsgi_req->buf_pos += (wsgi_req->post_cl-wsgi_req->buf_pos); return chunk; } else if (RARRAY_LEN(args) > 0) { @@ -141,11 +142,12 @@ VALUE rb_uwsgi_io_read(VALUE obj, VALUE args) { if (wsgi_req->buf_pos+chunk_size > wsgi_req->post_cl) { chunk_size = wsgi_req->post_cl-wsgi_req->buf_pos; } - wsgi_req->buf_pos+=chunk_size; if (RARRAY_LEN(args) > 1) { rb_str_cat(RARRAY_PTR(args)[1], wsgi_req->post_buffering_buf+wsgi_req->buf_pos, chunk_size); + wsgi_req->buf_pos+=chunk_size; return RARRAY_PTR(args)[1]; } + wsgi_req->buf_pos+=chunk_size; return rb_str_new(wsgi_req->post_buffering_buf+wsgi_req->buf_pos, chunk_size); }