From 17f12fee83a7791fbf39f934fd220c5b48ca9381 Mon Sep 17 00:00:00 2001 From: Mat Trudel Date: Fri, 16 Feb 2024 10:23:09 -0500 Subject: [PATCH 1/2] Reset logger metadata before every request --- lib/bandit/pipeline.ex | 2 ++ test/bandit/http1/request_test.exs | 16 ++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/lib/bandit/pipeline.ex b/lib/bandit/pipeline.ex index 803fb8d4..c754c945 100644 --- a/lib/bandit/pipeline.ex +++ b/lib/bandit/pipeline.ex @@ -18,6 +18,8 @@ defmodule Bandit.Pipeline do plug_def() ) :: {:ok, Plug.Conn.t()} | {:ok, :websocket, Plug.Conn.t(), tuple()} | {:error, term()} def run(req, transport_info, method, request_target, headers, plug) do + Logger.reset_metadata() + with {:ok, conn} <- build_conn(req, transport_info, method, request_target, headers), conn <- call_plug(conn, plug), {:ok, :no_upgrade} <- maybe_upgrade(conn) do diff --git a/test/bandit/http1/request_test.exs b/test/bandit/http1/request_test.exs index b2fee502..11f5389a 100644 --- a/test/bandit/http1/request_test.exs +++ b/test/bandit/http1/request_test.exs @@ -108,6 +108,22 @@ defmodule HTTP1RequestTest do def echo_method(conn) do send_resp(conn, 200, conn.method) end + + test "logger metadata is reset on every request", context do + client = SimpleHTTP1Client.tcp_client(context) + + SimpleHTTP1Client.send(client, "GET", "/metadata", ["host: localhost"]) + assert {:ok, "200 OK", _headers, "[]"} = SimpleHTTP1Client.recv_reply(client) + + SimpleHTTP1Client.send(client, "GET", "/metadata", ["host: localhost"]) + assert {:ok, "200 OK", _headers, "[]"} = SimpleHTTP1Client.recv_reply(client) + end + + def metadata(conn) do + existing_metadata = Logger.metadata() + Logger.metadata(add: :garbage) + send_resp(conn, 200, inspect(existing_metadata)) + end end describe "origin-form request target (RFC9112ยง3.2.1)" do From ed6e94e9b5f2e1da922920d36cda96fd84266e7b Mon Sep 17 00:00:00 2001 From: Mat Trudel Date: Fri, 16 Feb 2024 10:25:20 -0500 Subject: [PATCH 2/2] Version bump to 1.2.2 --- CHANGELOG.md | 8 +++++++- mix.exs | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 58ebaee4..fdbb2a9a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,10 @@ -## 1.2.1 (12 Fed 2024) +## 1.2.2 (16 Feb 2024) + +### Changes + +* Reset Logger metadata on every request + +## 1.2.1 (12 Feb 2024) ### Changes diff --git a/mix.exs b/mix.exs index 57552e7e..59f1bb70 100644 --- a/mix.exs +++ b/mix.exs @@ -4,7 +4,7 @@ defmodule Bandit.MixProject do def project do [ app: :bandit, - version: "1.2.1", + version: "1.2.2", elixir: "~> 1.13", start_permanent: Mix.env() == :prod, deps: deps(),