metadata: fix for grpc case (#370)
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org> Reviewed-on: #370
This commit is contained in:
parent
38c5fe8b5a
commit
c1dab759c6
@ -4,6 +4,7 @@ package metadata
|
||||
import (
|
||||
"net/textproto"
|
||||
"sort"
|
||||
"strings"
|
||||
)
|
||||
|
||||
var (
|
||||
@ -73,6 +74,9 @@ func (md Metadata) Get(key string) (string, bool) {
|
||||
if !ok {
|
||||
// slow path
|
||||
val, ok = md[textproto.CanonicalMIMEHeaderKey(key)]
|
||||
if !ok {
|
||||
val, ok = md[strings.ToLower(key)]
|
||||
}
|
||||
}
|
||||
return val, ok
|
||||
}
|
||||
@ -94,6 +98,8 @@ func (md Metadata) Del(keys ...string) {
|
||||
delete(md, key)
|
||||
// slow path
|
||||
delete(md, textproto.CanonicalMIMEHeaderKey(key))
|
||||
// very slow path
|
||||
delete(md, strings.ToLower(key))
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5,6 +5,15 @@ import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestLowercase(t *testing.T) {
|
||||
md := New(1)
|
||||
md["x-request-id"] = "12345"
|
||||
v, ok := md.Get("X-Request-Id")
|
||||
if !ok || v == "" {
|
||||
t.Fatalf("metadata invalid %#+v", md)
|
||||
}
|
||||
}
|
||||
|
||||
func TestMultipleUsage(t *testing.T) {
|
||||
ctx := context.TODO()
|
||||
md := New(0)
|
||||
|
Loading…
x
Reference in New Issue
Block a user