Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-01-13 18:07:53 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-01-13 18:07:53 +0300
commita5ab3467a705b62911feacc3cf627fdbb00aa198 (patch)
tree65143ce13405efccb922fc428624ad57c38b6efa /lib/gitlab/middleware
parenteb30dd6e28f6fc9eb8021d205f6ed84511f001e2 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/gitlab/middleware')
-rw-r--r--lib/gitlab/middleware/request_context.rb27
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/gitlab/middleware/request_context.rb b/lib/gitlab/middleware/request_context.rb
new file mode 100644
index 00000000000..953423b371c
--- /dev/null
+++ b/lib/gitlab/middleware/request_context.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module Middleware
+ class RequestContext
+ def initialize(app)
+ @app = app
+ end
+
+ def call(env)
+ # We should be using ActionDispatch::Request instead of
+ # Rack::Request to be consistent with Rails, but due to a Rails
+ # bug described in
+ # https://gitlab.com/gitlab-org/gitlab-foss/issues/58573#note_149799010
+ # hosts behind a load balancer will only see 127.0.0.1 for the
+ # load balancer's IP.
+ req = Rack::Request.new(env)
+
+ Gitlab::RequestContext.instance.client_ip = req.ip
+ Gitlab::RequestContext.instance.start_thread_cpu_time = Gitlab::Metrics::System.thread_cpu_time
+ Gitlab::RequestContext.instance.request_start_time = Gitlab::Metrics::System.real_time
+
+ @app.call(env)
+ end
+ end
+ end
+end