core: fix errors removing old cookies (#13425)

This commit is contained in:
Diego Heras 2022-07-31 03:11:39 +02:00 committed by GitHub
parent 9819f0d968
commit ab05f1b4e2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 14 deletions

View File

@ -5,14 +5,11 @@ using System.Linq;
using System.Net;
using System.Reflection;
using System.Text.RegularExpressions;
using NLog;
namespace Jackett.Common.Utils
{
public static class CookieUtil
{
private static readonly Logger logger = LogManager.GetCurrentClassLogger();
// https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie
// NOTE: we are not checking non-ascii characters and we should
private static readonly Regex _CookieRegex = new Regex(@"([^\(\)<>@,;:\\""/\[\]\?=\{\}\s]+)=([^,;\\""\s]+)");
@ -55,17 +52,15 @@ namespace Jackett.Common.Utils
.InvokeMember("m_domainTable", BindingFlags.NonPublic | BindingFlags.GetField |
BindingFlags.Instance, null, cookieJar, new object[] { });
foreach (var key in table.Keys)
try
{
foreach (Cookie cookie in cookieJar.GetCookies(new Uri($"http://{key}")))
cookie.Expired = true;
foreach (Cookie cookie in cookieJar.GetCookies(new Uri($"https://{key}")))
cookie.Expired = true;
}
catch (Exception)
{
logger.Warn("Unable to delete the cookies of domain: " + key);
}
{
var domain = (string)key;
if (domain.StartsWith("."))
domain = domain.Substring(1);
foreach (Cookie cookie in cookieJar.GetCookies(new Uri($"http://{domain}")))
cookie.Expired = true;
foreach (Cookie cookie in cookieJar.GetCookies(new Uri($"https://{domain}")))
cookie.Expired = true;
}
}
}