summaryrefslogtreecommitdiffstats
path: root/script/git-daemon
diff options
context:
space:
mode:
authorJohan Sørensen <johan@johansorensen.com>2008-04-19 01:52:28 +0200
committerJohan Sørensen <johan@johansorensen.com>2008-04-19 01:52:28 +0200
commit73d50927c92e763da5ba6cf8a7f1a7654a7267bb (patch)
tree01fcc34371a692b521729990be0783c1ae590120 /script/git-daemon
parentd3001d52b84fe0bdde5a5d9829e49f6ce54ddec6 (diff)
downloadgitorious-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-xscript/git-daemon8
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