From f7009f0d35d84dc95d29dde9d55ca14f96b7a95e Mon Sep 17 00:00:00 2001
From: Bensong Liu <bensl@microsoft.com>
Date: Thu, 30 Jul 2020 16:35:49 +0800
Subject: [PATCH] add reverse filter

---
 src/filters/base.hpp | 4 ++--
 src/forwarder.hpp    | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/filters/base.hpp b/src/filters/base.hpp
index 09a7d1a..e5b519f 100644
--- a/src/filters/base.hpp
+++ b/src/filters/base.hpp
@@ -30,7 +30,7 @@ namespace Filters {
 	};
 
 	struct ChainedFilters : public BaseFilter {
-		explicit ChainedFilters(const std::list<Filters::BaseFilter*>& chainedFilters)
+		explicit ChainedFilters(std::list<Filters::BaseFilter*>&& chainedFilters)
 			: chainedFilters(chainedFilters) {}
 
 		// Usually the encrypt/encode/obfs function.
@@ -49,7 +49,7 @@ namespace Filters {
 			return binaryDatagram;
 		}
 
-		const std::list<Filters::BaseFilter*>& chainedFilters;
+		std::list<Filters::BaseFilter*> chainedFilters;
 	};
 
 	struct ReversedFilter : public BaseFilter {
diff --git a/src/forwarder.hpp b/src/forwarder.hpp
index 584784b..6791fca 100644
--- a/src/forwarder.hpp
+++ b/src/forwarder.hpp
@@ -55,7 +55,7 @@ public:
         std::list<Filters::BaseFilter*> chainedFilters;
         for (auto &&filterConfig : filterConfigs)
             chainedFilters.push_back(CreateFilterFromConfig(filterConfig));
-        ptrFilter = new Filters::ChainedFilters(chainedFilters);
+        ptrFilter = new Filters::ChainedFilters(std::move(chainedFilters));
     }
 
     ~Forwarder() {
-- 
GitLab