move the socket into Rack env for hijacking
commit5aa6b7ad7d8847a5d191ecf8606919b7886df7c2
authorEric Wong <e@80x24.org>
Sat, 6 Jun 2015 00:29:00 +0000 (6 00:29 +0000)
committerEric Wong <e@80x24.org>
Sat, 6 Jun 2015 00:29:00 +0000 (6 00:29 +0000)
tree4bf978d51f6cc4d22ca78c63aa1a7fdc7c4a3127
parent44cf14154165c85e8081c51d3d01a6c690cc9e7a
move the socket into Rack env for hijacking

This avoids the expensive generic instance variable for @socket
and exposes the socket as `env["unicorn.socket"]' to the Rack
application.

As as nice side-effect, applications may access
`env["unicorn.socket"]' as part of the API may be useful for
3rd-party bits such as Raindrops::TCP_Info for reading the tcp_info
struct on Linux-based systems.

Yes, `env["unicorn.socket"]' is a proprietary API in unicorn!
News at 11!  But then again, unicorn is not the first Rack server
to implement `env["#{servername}.socket"]', either...
lib/unicorn/http_request.rb