From 1c6ae7ea70fbf1d7b7256af3accc41b285ee6942 Mon Sep 17 00:00:00 2001 From: Jesse Nicholson Date: Fri, 10 Nov 2017 03:41:08 -0500 Subject: [PATCH] Fixes issue with block response handling Overwrite expires header when changing a response to a block response. --- CitadelCore/CitadelCore/CitadelCore.csproj | 8 ++++---- .../CitadelCore/Net/Handlers/FilterHttpResponseHandler.cs | 4 +++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/CitadelCore/CitadelCore/CitadelCore.csproj b/CitadelCore/CitadelCore/CitadelCore.csproj index e4734d6..81d0af5 100644 --- a/CitadelCore/CitadelCore/CitadelCore.csproj +++ b/CitadelCore/CitadelCore/CitadelCore.csproj @@ -12,11 +12,11 @@ https://github.com/TechnikEmpire/CitadelCore proxy filtering content-filtering transparent-proxy - Fixes issues with classification and next action directives regarding http responses. + Fixes issue with block response handling. Transparent filtering HTTP/S and Websocket/WebsocketSecure proxy. - 1.2.13 - 1.2.13.0 - 1.2.13.0 + 1.2.14 + 1.2.14.0 + 1.2.14.0 diff --git a/CitadelCore/CitadelCore/Net/Handlers/FilterHttpResponseHandler.cs b/CitadelCore/CitadelCore/Net/Handlers/FilterHttpResponseHandler.cs index f9efe9a..4138ff5 100644 --- a/CitadelCore/CitadelCore/Net/Handlers/FilterHttpResponseHandler.cs +++ b/CitadelCore/CitadelCore/Net/Handlers/FilterHttpResponseHandler.cs @@ -389,6 +389,7 @@ public override async Task Handle(HttpContext context) private void Do204(HttpContext context) { context.Response.StatusCode = 204; + context.Response.Headers.Remove("Expires"); context.Response.Headers.Add("Expires", new Microsoft.Extensions.Primitives.StringValues(s_EpochHttpDateTime)); return; } @@ -414,7 +415,8 @@ private async Task DoCustomResponse(HttpContext context, string contentType, byt { ms.Position = 0; context.Response.StatusCode = 200; - context.Response.Headers.Add("Expires", new Microsoft.Extensions.Primitives.StringValues(s_EpochHttpDateTime)); + context.Response.Headers.Remove("Expires"); + context.Response.Headers.Add("Expires", new Microsoft.Extensions.Primitives.StringValues(s_EpochHttpDateTime)); context.Response.ContentType = contentType; await ms.CopyToAsync(context.Response.Body, 81920, context.RequestAborted); return;