parent
7661ec7903
commit
1c41d042cd
|
@ -98,6 +98,7 @@ func (p *TCPProxy) StartProxy() {
|
|||
newConn.Close()
|
||||
continue
|
||||
}
|
||||
//log.Printf("[%s]新连接[%s]安全检查通过", p.GetKey(), newConnAddr)
|
||||
|
||||
//fmt.Printf("连接IP:[%s]\n", newConn.RemoteAddr().String())
|
||||
|
||||
|
|
|
@ -440,6 +440,10 @@ func UpdateTaskToDDNSTaskList(taskKey string, task DDNSTask) error {
|
|||
programConfigure.DDNSTaskList[taskIndex].DomainsState.WebhookCallHistroy = task.DomainsState.WebhookCallHistroy
|
||||
programConfigure.DDNSTaskList[taskIndex].DomainsState.SetDomainUpdateStatus(UpdateWaiting, "")
|
||||
programConfigure.DDNSTaskList[taskIndex].HttpClientTimeout = task.HttpClientTimeout
|
||||
programConfigure.DDNSTaskList[taskIndex].DomainsState.WebhookCallErrorMsg = ""
|
||||
programConfigure.DDNSTaskList[taskIndex].DomainsState.WebhookCallResult = false
|
||||
programConfigure.DDNSTaskList[taskIndex].DomainsState.WebhookCallTime = ""
|
||||
|
||||
return Save()
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
package config
|
||||
|
||||
import "runtime"
|
||||
import (
|
||||
"runtime"
|
||||
"time"
|
||||
)
|
||||
|
||||
type AppInfo struct {
|
||||
AppName string
|
||||
|
@ -8,6 +11,7 @@ type AppInfo struct {
|
|||
OS string
|
||||
ARCH string
|
||||
Date string
|
||||
RunTime string
|
||||
}
|
||||
|
||||
var appInfo AppInfo
|
||||
|
@ -22,4 +26,14 @@ func InitAppInfo(version, date string) {
|
|||
appInfo.Date = date
|
||||
appInfo.OS = runtime.GOOS
|
||||
appInfo.ARCH = runtime.GOARCH
|
||||
appInfo.RunTime = time.Now().Format("2006-01-02 15:04:05")
|
||||
|
||||
time.Now().Format("2006-01-02T15:04:05Z")
|
||||
|
||||
buildTime, err := time.Parse("2006-01-02T15:04:05Z", date)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
appInfo.Date = buildTime.Local().Format("2006-01-02 15:04:05")
|
||||
|
||||
}
|
||||
|
|
|
@ -1,13 +1,17 @@
|
|||
//Copyright 2022 gdy, 272288813@qq.com
|
||||
package config
|
||||
|
||||
import "time"
|
||||
import (
|
||||
"time"
|
||||
)
|
||||
|
||||
func SafeCheck(mode, ip string) bool {
|
||||
switch mode {
|
||||
case "whitelist":
|
||||
//log.Printf("whitelist")
|
||||
return whiteListCheck(ip)
|
||||
case "blacklist":
|
||||
//log.Printf("blacklist")
|
||||
return blackListCheck(ip)
|
||||
default:
|
||||
return false
|
||||
|
@ -18,6 +22,7 @@ func whiteListCheck(ip string) bool {
|
|||
programConfigureMutex.RLock()
|
||||
defer programConfigureMutex.RUnlock()
|
||||
if programConfigure == nil {
|
||||
//log.Printf("AAAA")
|
||||
return false
|
||||
}
|
||||
|
||||
|
@ -27,16 +32,19 @@ func whiteListCheck(ip string) bool {
|
|||
}
|
||||
itemEffectiveTime, err := time.ParseInLocation("2006-01-02 15:04:05", item.EffectiveTime, time.Local)
|
||||
if err != nil {
|
||||
//log.Printf("BBBB")
|
||||
return false
|
||||
}
|
||||
|
||||
if time.Since(itemEffectiveTime) < 0 {
|
||||
//log.Printf("CCC")
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
//log.Printf("DDDD")
|
||||
return false
|
||||
}
|
||||
|
||||
func blackListCheck(ip string) bool {
|
||||
|
|
|
@ -2,6 +2,7 @@ package ddns
|
|||
|
||||
import (
|
||||
"log"
|
||||
"runtime/debug"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
|
@ -50,6 +51,7 @@ func syncAllDomainsOnce(params ...any) {
|
|||
return
|
||||
}
|
||||
log.Printf("syncDDNSTask[%s]panic:\n%v", task.TaskName, recoverErr)
|
||||
log.Printf("%s", debug.Stack())
|
||||
}()
|
||||
syncDDNSTask(&task)
|
||||
}()
|
||||
|
|
2
main.go
2
main.go
|
@ -31,7 +31,7 @@ var (
|
|||
runMode = "prod"
|
||||
version = "dev"
|
||||
commit = "none"
|
||||
date = "unknown"
|
||||
date = "2022-07-27T17:54:45Z"
|
||||
)
|
||||
|
||||
var runTime time.Time
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
"runtime/debug"
|
||||
"sync"
|
||||
"time"
|
||||
)
|
||||
|
@ -146,6 +147,7 @@ func (s *Service) loop(params ...any) {
|
|||
return
|
||||
}
|
||||
log.Printf("service[%s] panic:\n%v", s.Name, recoverErr)
|
||||
log.Printf("\n%s\n", debug.Stack())
|
||||
s.State = StateStop
|
||||
log.Printf("server[%s] restart", s.Name)
|
||||
s.Start()
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
<p class="status">进程协程数:{{ status.goroutine }} 占用内存:{{ status.processUsedMem }}</p>
|
||||
<p class="status">Lucky 全局连接数:{{ status.currentConnections }} </p>
|
||||
<p class="status">Lucky 全局限制连接数:{{ status.maxConnections }}</p>
|
||||
<p class="status">Lucky 启动时间:{{ status.runTime }}</p>
|
||||
|
||||
|
||||
|
||||
|
@ -63,7 +64,8 @@ var status=ref({totleMem: '0m',
|
|||
processUsedMem:"0m",
|
||||
currentConnections:0,
|
||||
maxConnections:0,
|
||||
proxysStatus:""})
|
||||
proxysStatus:"",
|
||||
runTime:""})
|
||||
|
||||
var timerID:any
|
||||
|
||||
|
|
17
web/web.go
17
web/web.go
|
@ -741,6 +741,8 @@ func alterrule(c *gin.Context) {
|
|||
return
|
||||
}
|
||||
|
||||
dealRequestRule(&requestRule)
|
||||
|
||||
//fmt.Printf("balance:%v\n", requestRule.BalanceTargetAddressList)
|
||||
|
||||
preConfigureStr := requestRule.MainConfigure
|
||||
|
@ -797,6 +799,16 @@ func deleterule(c *gin.Context) {
|
|||
c.JSON(http.StatusOK, gin.H{"ret": 0, "msg": "删除成功", "syncres": syncRes})
|
||||
}
|
||||
|
||||
func dealRequestRule(r *rule.RelayRule) {
|
||||
r.ListenPorts = strings.TrimSpace(r.ListenPorts)
|
||||
r.TargetPorts = strings.TrimSpace(r.TargetPorts)
|
||||
r.ListenIP = strings.TrimSpace(r.ListenIP)
|
||||
r.TargetIP = strings.TrimSpace(r.TargetIP)
|
||||
r.RelayType = strings.TrimSpace(r.RelayType)
|
||||
r.Name = strings.TrimSpace(r.Name)
|
||||
|
||||
}
|
||||
|
||||
func addrule(c *gin.Context) {
|
||||
var requestRule rule.RelayRule
|
||||
err := c.BindJSON(&requestRule)
|
||||
|
@ -805,6 +817,8 @@ func addrule(c *gin.Context) {
|
|||
return
|
||||
}
|
||||
|
||||
dealRequestRule(&requestRule)
|
||||
|
||||
configureStr := requestRule.CreateMainConfigure()
|
||||
|
||||
r, err := rule.CreateRuleByConfigureAndOptions(requestRule.Name, configureStr, requestRule.Options)
|
||||
|
@ -897,6 +911,8 @@ func status(c *gin.Context) {
|
|||
// proxyStatusList = append(proxyStatusList, p.GetStatus())
|
||||
// }
|
||||
|
||||
appInfo := config.GetAppInfo()
|
||||
|
||||
respMap := make(map[string]interface{})
|
||||
respMap["totleMem"] = formatFileSize(v.Total)
|
||||
respMap["usedMem"] = formatFileSize(v.Used)
|
||||
|
@ -907,6 +923,7 @@ func status(c *gin.Context) {
|
|||
respMap["currentConnections"] = fmt.Sprintf("%d", base.GetGlobalConnections())
|
||||
respMap["maxConnections"] = fmt.Sprintf("%d", base.GetGlobalMaxConnections())
|
||||
respMap["usedCPU"] = fmt.Sprintf("%.2f%%", GetCpuPercent())
|
||||
respMap["runTime"] = appInfo.RunTime
|
||||
//respMap["proxysStatus"] = proxyStatusList
|
||||
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
|
|
Loading…
Reference in New Issue