mirror of
https://github.com/zeromicro/go-zero.git
synced 2025-01-24 01:30:25 +08:00
f309e9f80c
* fix golint issues in core/utils * fix golint issues in core/trace * fix golint issues in core/trace
44 lines
834 B
Go
44 lines
834 B
Go
package trace
|
|
|
|
import (
|
|
"errors"
|
|
"net/http"
|
|
"strings"
|
|
)
|
|
|
|
// ErrInvalidCarrier indicates an error that the carrier is invalid.
|
|
var ErrInvalidCarrier = errors.New("invalid carrier")
|
|
|
|
type (
|
|
// Carrier interface wraps the Get and Set method.
|
|
Carrier interface {
|
|
Get(key string) string
|
|
Set(key, value string)
|
|
}
|
|
|
|
httpCarrier http.Header
|
|
// grpc metadata takes keys as case insensitive
|
|
grpcCarrier map[string][]string
|
|
)
|
|
|
|
func (h httpCarrier) Get(key string) string {
|
|
return http.Header(h).Get(key)
|
|
}
|
|
|
|
func (h httpCarrier) Set(key, val string) {
|
|
http.Header(h).Set(key, val)
|
|
}
|
|
|
|
func (g grpcCarrier) Get(key string) string {
|
|
if vals, ok := g[strings.ToLower(key)]; ok && len(vals) > 0 {
|
|
return vals[0]
|
|
}
|
|
|
|
return ""
|
|
}
|
|
|
|
func (g grpcCarrier) Set(key, val string) {
|
|
key = strings.ToLower(key)
|
|
g[key] = append(g[key], val)
|
|
}
|