diff options
author | Jan Tattermusch <jtattermusch@users.noreply.github.com> | 2018-08-27 11:55:33 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-27 11:55:33 +0200 |
commit | 2548704bee6dd9071832135f8a76c2761897cddb (patch) | |
tree | 20b8fdaa6de94f521bc644c3c6fcc5ebf098a116 | |
parent | 0761cfc0e94a23d05a7b4c250dd708708ccf2411 (diff) | |
parent | a80fa8732f0d67783e7230c89c708ae9e3334398 (diff) |
Merge pull request #16444 from jtattermusch/csharp_metadata_key_allow_dot
C#: allow dot in metadata keys
-rw-r--r-- | src/csharp/Grpc.Core.Tests/MetadataTest.cs | 2 | ||||
-rw-r--r-- | src/csharp/Grpc.Core/Metadata.cs | 4 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/csharp/Grpc.Core.Tests/MetadataTest.cs b/src/csharp/Grpc.Core.Tests/MetadataTest.cs index 8916731757..171c5c470e 100644 --- a/src/csharp/Grpc.Core.Tests/MetadataTest.cs +++ b/src/csharp/Grpc.Core.Tests/MetadataTest.cs @@ -66,6 +66,8 @@ namespace Grpc.Core.Tests new Metadata.Entry("0123456789abc", "XYZ"); new Metadata.Entry("-abc", "XYZ"); new Metadata.Entry("a_bc_", "XYZ"); + new Metadata.Entry("abc.xyz", "XYZ"); + new Metadata.Entry("abc.xyz-bin", new byte[] {1, 2, 3}); Assert.Throws(typeof(ArgumentException), () => new Metadata.Entry("abc[", "xyz")); Assert.Throws(typeof(ArgumentException), () => new Metadata.Entry("abc/", "xyz")); } diff --git a/src/csharp/Grpc.Core/Metadata.cs b/src/csharp/Grpc.Core/Metadata.cs index 0e4456278c..281952d6d4 100644 --- a/src/csharp/Grpc.Core/Metadata.cs +++ b/src/csharp/Grpc.Core/Metadata.cs @@ -225,7 +225,7 @@ namespace Grpc.Core /// </summary> public class Entry { - private static readonly Regex ValidKeyRegex = new Regex("^[a-z0-9_-]+$"); + private static readonly Regex ValidKeyRegex = new Regex("^[.a-z0-9_-]+$"); readonly string key; readonly string value; @@ -360,7 +360,7 @@ namespace Grpc.Core { var normalized = GrpcPreconditions.CheckNotNull(key, "key").ToLowerInvariant(); GrpcPreconditions.CheckArgument(ValidKeyRegex.IsMatch(normalized), - "Metadata entry key not valid. Keys can only contain lowercase alphanumeric characters, underscores and hyphens."); + "Metadata entry key not valid. Keys can only contain lowercase alphanumeric characters, underscores, hyphens and dots."); return normalized; } |