access log add detour tag

This commit is contained in:
fcying
2019-06-14 14:43:42 +08:00
parent 8cf38342e9
commit 23e5d3cd12
6 changed files with 35 additions and 6 deletions
+21
View File
@@ -2,10 +2,17 @@ package log
import (
"strings"
"context"
"v2ray.com/core/common/serial"
)
type logKey int
const (
accessMessageKey logKey = iota
)
type AccessStatus string
const (
@@ -18,6 +25,7 @@ type AccessMessage struct {
To interface{}
Status AccessStatus
Reason interface{}
Detour interface{}
}
func (m *AccessMessage) String() string {
@@ -28,6 +36,19 @@ func (m *AccessMessage) String() string {
builder.WriteByte(' ')
builder.WriteString(serial.ToString(m.To))
builder.WriteByte(' ')
builder.WriteString(serial.ToString(m.Detour))
builder.WriteByte(' ')
builder.WriteString(serial.ToString(m.Reason))
return builder.String()
}
func ContextWithAccessMessage(ctx context.Context, accessMessage *AccessMessage) context.Context {
return context.WithValue(ctx, accessMessageKey, accessMessage)
}
func AccessMessageFromContext(ctx context.Context) *AccessMessage {
if accessMessage, ok := ctx.Value(accessMessageKey).(*AccessMessage); ok {
return accessMessage
}
return nil
}