1
#include "source/extensions/http/header_formatters/preserve_case/config.h"
2

            
3
#include "envoy/extensions/http/header_formatters/preserve_case/v3/preserve_case.pb.validate.h"
4
#include "envoy/registry/registry.h"
5

            
6
#include "source/common/protobuf/message_validator_impl.h"
7

            
8
namespace Envoy {
9
namespace Extensions {
10
namespace Http {
11
namespace HeaderFormatters {
12
namespace PreserveCase {
13

            
14
Envoy::Http::StatefulHeaderKeyFormatterFactorySharedPtr
15
9
PreserveCaseFormatterFactoryConfig::createFromProto(const Protobuf::Message& message) {
16
9
  auto config =
17
9
      MessageUtil::downcastAndValidate<const envoy::extensions::http::header_formatters::
18
9
                                           preserve_case::v3::PreserveCaseFormatterConfig&>(
19
9
          message, ProtobufMessage::getStrictValidationVisitor());
20

            
21
9
  return std::make_shared<PreserveCaseFormatterFactory>(config.forward_reason_phrase(),
22
9
                                                        config.formatter_type_on_envoy_headers());
23
9
}
24

            
25
LEGACY_REGISTER_FACTORY(PreserveCaseFormatterFactoryConfig,
26
                        Envoy::Http::StatefulHeaderKeyFormatterFactoryConfig, "preserve_case");
27

            
28
} // namespace PreserveCase
29
} // namespace HeaderFormatters
30
} // namespace Http
31
} // namespace Extensions
32
} // namespace Envoy