about summary refs log tree commit homepage
path: root/lib/unicorn
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2010-10-05 00:13:02 +0000
committerEric Wong <normalperson@yhbt.net>2010-10-05 00:31:26 +0000
commit29946368c45dce5da116adb426362ee93c507c4e (patch)
treebef89c7838ee2165c21f4416f0309e678a0f8d9a /lib/unicorn
parent9ef6b6f551a34922cfd831e2521495e89afe2f94 (diff)
downloadunicorn-29946368c45dce5da116adb426362ee93c507c4e.tar.gz
This should hopefully make the non-blocking accept()
situation more tolerable under Ruby 1.9.2.
Diffstat (limited to 'lib/unicorn')
-rw-r--r--lib/unicorn/http_request.rb3
-rw-r--r--lib/unicorn/socket_helper.rb8
2 files changed, 5 insertions, 6 deletions
diff --git a/lib/unicorn/http_request.rb b/lib/unicorn/http_request.rb
index 4355ad7..7519170 100644
--- a/lib/unicorn/http_request.rb
+++ b/lib/unicorn/http_request.rb
@@ -18,7 +18,6 @@ class Unicorn::HttpRequest
   }
 
   NULL_IO = StringIO.new("")
-  LOCALHOST = '127.0.0.1'
 
   # :stopdoc:
   # A frozen format for this is about 15% faster
@@ -62,7 +61,7 @@ class Unicorn::HttpRequest
     #  identify the client for the immediate request to the server;
     #  that client may be a proxy, gateway, or other intermediary
     #  acting on behalf of the actual source client."
-    @env[REMOTE_ADDR] = TCPSocket === socket ? socket.peeraddr[-1] : LOCALHOST
+    @env[REMOTE_ADDR] = socket.kgio_addr
 
     # short circuit the common case with small GET requests first
     if @parser.headers(@env, socket.readpartial(16384, @buf)).nil?
diff --git a/lib/unicorn/socket_helper.rb b/lib/unicorn/socket_helper.rb
index 1d03eab..7364937 100644
--- a/lib/unicorn/socket_helper.rb
+++ b/lib/unicorn/socket_helper.rb
@@ -126,12 +126,12 @@ module Unicorn
         end
         old_umask = File.umask(opt[:umask] || 0)
         begin
-          UNIXServer.new(address)
+          Kgio::UNIXServer.new(address)
         ensure
           File.umask(old_umask)
         end
       elsif address =~ /^(\d+\.\d+\.\d+\.\d+):(\d+)$/
-        TCPServer.new($1, $2.to_i)
+        Kgio::TCPServer.new($1, $2.to_i)
       else
         raise ArgumentError, "Don't know how to bind: #{address}"
       end
@@ -166,9 +166,9 @@ module Unicorn
     def server_cast(sock)
       begin
         Socket.unpack_sockaddr_in(sock.getsockname)
-        TCPServer.for_fd(sock.fileno)
+        Kgio::TCPServer.for_fd(sock.fileno)
       rescue ArgumentError
-        UNIXServer.for_fd(sock.fileno)
+        Kgio::UNIXServer.for_fd(sock.fileno)
       end
     end