mirror of
https://github.com/XTLS/Xray-core.git
synced 2025-04-30 17:38:41 +00:00
v1.0.0
This commit is contained in:
parent
47d23e9972
commit
c7f7c08ead
711 changed files with 82154 additions and 2 deletions
64
common/log/access.go
Normal file
64
common/log/access.go
Normal file
|
@ -0,0 +1,64 @@
|
|||
package log
|
||||
|
||||
import (
|
||||
"context"
|
||||
"strings"
|
||||
|
||||
"github.com/xtls/xray-core/v1/common/serial"
|
||||
)
|
||||
|
||||
type logKey int
|
||||
|
||||
const (
|
||||
accessMessageKey logKey = iota
|
||||
)
|
||||
|
||||
type AccessStatus string
|
||||
|
||||
const (
|
||||
AccessAccepted = AccessStatus("accepted")
|
||||
AccessRejected = AccessStatus("rejected")
|
||||
)
|
||||
|
||||
type AccessMessage struct {
|
||||
From interface{}
|
||||
To interface{}
|
||||
Status AccessStatus
|
||||
Reason interface{}
|
||||
Email string
|
||||
Detour string
|
||||
}
|
||||
|
||||
func (m *AccessMessage) String() string {
|
||||
builder := strings.Builder{}
|
||||
builder.WriteString(serial.ToString(m.From))
|
||||
builder.WriteByte(' ')
|
||||
builder.WriteString(string(m.Status))
|
||||
builder.WriteByte(' ')
|
||||
builder.WriteString(serial.ToString(m.To))
|
||||
builder.WriteByte(' ')
|
||||
if len(m.Detour) > 0 {
|
||||
builder.WriteByte('[')
|
||||
builder.WriteString(m.Detour)
|
||||
builder.WriteString("] ")
|
||||
}
|
||||
builder.WriteString(serial.ToString(m.Reason))
|
||||
|
||||
if len(m.Email) > 0 {
|
||||
builder.WriteString("email:")
|
||||
builder.WriteString(m.Email)
|
||||
builder.WriteByte(' ')
|
||||
}
|
||||
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
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue