diff options
author | Johan Sørensen <johan@johansorensen.com> | 2008-04-19 01:52:28 +0200 |
---|---|---|
committer | Johan Sørensen <johan@johansorensen.com> | 2008-04-19 01:52:28 +0200 |
commit | 73d50927c92e763da5ba6cf8a7f1a7654a7267bb (patch) | |
tree | 01fcc34371a692b521729990be0783c1ae590120 /script/git-daemon | |
parent | d3001d52b84fe0bdde5a5d9829e49f6ce54ddec6 (diff) | |
download | gitorious-mainline-outdated-73d50927c92e763da5ba6cf8a7f1a7654a7267bb.zip gitorious-mainline-outdated-73d50927c92e763da5ba6cf8a7f1a7654a7267bb.tar.gz gitorious-mainline-outdated-73d50927c92e763da5ba6cf8a7f1a7654a7267bb.tar.bz2 |
beware of the geoip io stream when forking
Diffstat (limited to 'script/git-daemon')
-rwxr-xr-x | script/git-daemon | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/script/git-daemon b/script/git-daemon index 74d789a..7a8fbf1 100755 --- a/script/git-daemon +++ b/script/git-daemon @@ -27,7 +27,6 @@ module Git def initialize(options) @options = options - @geoip = GeoIP.new(File.join(RAILS_ROOT, "data", "GeoIP.dat")) end def start @@ -57,6 +56,7 @@ module Git def run_service(session) $children_active += 1 + ip_family, port, name, ip = session.peeraddr line = session.recv(1000) @@ -94,7 +94,6 @@ module Git end pid = Process.pid - ip_family, port, name, ip = session.peeraddr log(pid, "Connection from #{ip} for #{path.inspect}") $stdout.reopen(session) @@ -105,7 +104,8 @@ module Git if ip_family == "AF_INET6" repository.cloned_from(ip) else - localization = @geoip.country(ip) + geoip = GeoIP.new(File.join(RAILS_ROOT, "data", "GeoIP.dat")) + localization = geoip.country(ip) repository.cloned_from(ip, localization[3], localization[5]) end else @@ -120,7 +120,7 @@ module Git end end rescue Errno::EAGAIN else - $stderr.puts "Invalid request: #{line}" + $stderr.puts "Invalid request from #{ip}: #{line}" session.close $children_active -= 1 end |