Using upstream module that won't override the original request

I’m trying to hold a client request to backend (not go to the server
yet),
issue an upstream request to another server, then parse the upstream
response, store it in my orig. request ctx, only then go to backend
server
(original request), and in the output filter inject some of the ctx data
i
stored before - to the backend response.

i tried to do all that with a subrequest but then Maxim told me that the
subrequest was not designed for that - hence no support in my method.
Now if i use upstream instead - it overrides the original request and
sends
its own response to the client.
so how can i achieve my goal ?

Ref:
see Maxim’s response to a similar thread here:
http://web.archiveorange.com/archive/v/yKUXMonlhsVD7yQtg8xL
see my new subrequest method & discussion here:

(nginx core crashes when using my method + flag of ‘ignore client
abort’=on
and no solution from nginx developers for that)

Posted at Nginx Forum:

Hello!

On Sun, Apr 14, 2013 at 6:22 AM, gadh wrote:

so how can i achieve my goal ?
I don’t understand what you’re saying completely, but you may find the
subrequest API provided by ngx_lua fit your needs:

http://wiki.nginx.org/HttpLuaModule#ngx.location.capture

And also its cosocket API:

http://wiki.nginx.org/HttpLuaModule#ngx.socket.tcp

I think you can just write a little Lua to do your task without
writing your own nginx C module. Well, just a suggestion.

Best regards,
-agentzh