mirror of
https://github.com/TeaOSLab/EdgeCommon.git
synced 2025-11-03 12:20:27 +08:00
38 lines
974 B
Go
38 lines
974 B
Go
// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
|
|
|
|
package serverconfigs
|
|
|
|
import (
|
|
"regexp"
|
|
"strings"
|
|
)
|
|
|
|
// HTTPRemoteAddrConfig HTTP获取客户端IP地址方式
|
|
type HTTPRemoteAddrConfig struct {
|
|
IsPrior bool `yaml:"isPrior" json:"isPrior"`
|
|
IsOn bool `yaml:"isOn" json:"isOn"`
|
|
Value string `yaml:"value" json:"value"` // 值变量
|
|
IsCustomized bool `yaml:"isCustomized" json:"isCustomized"` // 是否自定义
|
|
|
|
isEmpty bool
|
|
}
|
|
|
|
// Init 初始化
|
|
func (this *HTTPRemoteAddrConfig) Init() error {
|
|
this.Value = strings.TrimSpace(this.Value)
|
|
if len(this.Value) == 0 {
|
|
this.isEmpty = true
|
|
} else if regexp.MustCompile(`\s+`).ReplaceAllString(this.Value, "") == "${remoteAddr}" {
|
|
this.isEmpty = true
|
|
}
|
|
|
|
this.Value = strings.ReplaceAll(this.Value, "${remoteAddr}", "${remoteAddrValue}")
|
|
|
|
return nil
|
|
}
|
|
|
|
// IsEmpty 是否为空
|
|
func (this *HTTPRemoteAddrConfig) IsEmpty() bool {
|
|
return this.isEmpty
|
|
}
|