Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
07836fc162 |
+10
-1
@@ -1,10 +1,19 @@
|
|||||||
ChangeLog
|
ChangeLog
|
||||||
|
|
||||||
|
v3.25.11更新 (2026.5.15)
|
||||||
|
Feature
|
||||||
|
1.
|
||||||
|
|
||||||
|
Issue
|
||||||
|
1. 修复编辑组网成员网络资源时某些情况网络不通
|
||||||
|
1. 修复安卓版本输错token登录崩溃,下次重启自动登录仍会崩溃,不断循环
|
||||||
|
1. 修复某些情况导致客户端异常重启
|
||||||
|
|
||||||
v3.25.8更新 (2026.3.13)
|
v3.25.8更新 (2026.3.13)
|
||||||
Feature
|
Feature
|
||||||
1. web控制台可以修改公网监听端口
|
1. web控制台可以修改公网监听端口
|
||||||
1. 可以修改虚拟网络网段
|
1. 可以修改虚拟网络网段
|
||||||
1. 回滚至go1.20因为需要支持老版本的macos和windows
|
1. 回滚至go1.20支持老版本的macos和windows
|
||||||
|
|
||||||
Issue
|
Issue
|
||||||
1. 修复客户端重装后强制v6连接失效bug
|
1. 修复客户端重装后强制v6连接失效bug
|
||||||
|
|||||||
+1
-1
@@ -144,7 +144,7 @@ func netInfo() *NetInfo {
|
|||||||
}
|
}
|
||||||
rsp := NetInfo{}
|
rsp := NetInfo{}
|
||||||
if err = json.Unmarshal(buf[:n], &rsp); err != nil {
|
if err = json.Unmarshal(buf[:n], &rsp); err != nil {
|
||||||
gLog.e("wrong NetInfo:%s", err)
|
gLog.d("wrong NetInfo:%s", err)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
return &rsp
|
return &rsp
|
||||||
|
|||||||
+9
-5
@@ -119,6 +119,10 @@ func (c *Config) resetSDWAN() {
|
|||||||
func (c *Config) setSDWAN(s SDWANInfo) {
|
func (c *Config) setSDWAN(s SDWANInfo) {
|
||||||
c.sdwanMtx.Lock()
|
c.sdwanMtx.Lock()
|
||||||
defer c.sdwanMtx.Unlock()
|
defer c.sdwanMtx.Unlock()
|
||||||
|
allNew := false
|
||||||
|
if c.sdwan.GetResourceByNodeName(c.Network.Node) != s.GetResourceByNodeName(c.Network.Node) {
|
||||||
|
allNew = true
|
||||||
|
}
|
||||||
// get old-new
|
// get old-new
|
||||||
c.delNodes = []*SDWANNode{}
|
c.delNodes = []*SDWANNode{}
|
||||||
for _, oldNode := range c.sdwan.Nodes {
|
for _, oldNode := range c.sdwan.Nodes {
|
||||||
@@ -129,7 +133,7 @@ func (c *Config) setSDWAN(s SDWANInfo) {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if isDeleted {
|
if isDeleted || allNew {
|
||||||
c.delNodes = append(c.delNodes, oldNode)
|
c.delNodes = append(c.delNodes, oldNode)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -143,7 +147,7 @@ func (c *Config) setSDWAN(s SDWANInfo) {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if isNew {
|
if isNew || allNew {
|
||||||
c.addNodes = append(c.addNodes, newNode)
|
c.addNodes = append(c.addNodes, newNode)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -151,9 +155,9 @@ func (c *Config) setSDWAN(s SDWANInfo) {
|
|||||||
if c.sdwan.TunnelNum < 2 {
|
if c.sdwan.TunnelNum < 2 {
|
||||||
c.sdwan.TunnelNum = 2 // DEBUG
|
c.sdwan.TunnelNum = 2 // DEBUG
|
||||||
}
|
}
|
||||||
if c.sdwan.TunnelNum > 3 {
|
// if c.sdwan.TunnelNum > 3 {
|
||||||
c.sdwan.TunnelNum = 3
|
// c.sdwan.TunnelNum = 3
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Config) switchApp(app AppConfig, enabled int) {
|
func (c *Config) switchApp(app AppConfig, enabled int) {
|
||||||
|
|||||||
+7
-2
@@ -147,12 +147,17 @@ func handlePush(subType uint16, msg []byte) error {
|
|||||||
gLog.i("MsgPushUpdate")
|
gLog.i("MsgPushUpdate")
|
||||||
err := update(gConf.Network.ServerHost, gConf.Network.ServerPort)
|
err := update(gConf.Network.ServerHost, gConf.Network.ServerPort)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
os.Exit(9) // 9 tell daemon this exit because of update
|
if !isAndroid() {
|
||||||
|
os.Exit(9) // 9 tell daemon this exit because of update
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
case MsgPushRestart:
|
case MsgPushRestart:
|
||||||
gLog.i("MsgPushRestart")
|
gLog.i("MsgPushRestart")
|
||||||
os.Exit(0)
|
if !isAndroid() {
|
||||||
|
os.Exit(0)
|
||||||
|
}
|
||||||
return err
|
return err
|
||||||
case MsgPushReportApps:
|
case MsgPushReportApps:
|
||||||
err = handleReportApps()
|
err = handleReportApps()
|
||||||
|
|||||||
@@ -135,6 +135,14 @@ func GetToken(baseDir string) string {
|
|||||||
return fmt.Sprintf("%d", gConf.Network.Token)
|
return fmt.Sprintf("%d", gConf.Network.Token)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func SetToken(token string) {
|
||||||
|
n, err := strconv.ParseUint(token, 10, 64)
|
||||||
|
if err == nil && n > 0 {
|
||||||
|
gConf.setToken(n)
|
||||||
|
gConf.save()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func Stop() {
|
func Stop() {
|
||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-2
@@ -153,7 +153,9 @@ func (pn *P2PNetwork) keepAlive() {
|
|||||||
}
|
}
|
||||||
gLog.e("P2PNetwork keepAlive error, exit worker")
|
gLog.e("P2PNetwork keepAlive error, exit worker")
|
||||||
dumpStack()
|
dumpStack()
|
||||||
os.Exit(9)
|
if !isAndroid() {
|
||||||
|
os.Exit(9)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -811,7 +813,9 @@ func (pn *P2PNetwork) init() error {
|
|||||||
head, _ := pn.read("", MsgReport, MsgReportBasicRsp, ClientAPITimeout)
|
head, _ := pn.read("", MsgReport, MsgReportBasicRsp, ClientAPITimeout)
|
||||||
if head == nil {
|
if head == nil {
|
||||||
gLog.e("read MsgReportBasic rsp error again, exit")
|
gLog.e("read MsgReportBasic rsp error again, exit")
|
||||||
os.Exit(9)
|
if !isAndroid() {
|
||||||
|
os.Exit(9)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
+10
-1
@@ -10,7 +10,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
const OpenP2PVersion = "3.25.8"
|
const OpenP2PVersion = "3.25.11"
|
||||||
const ProductName string = "openp2p"
|
const ProductName string = "openp2p"
|
||||||
const LeastSupportVersion = "3.0.0"
|
const LeastSupportVersion = "3.0.0"
|
||||||
const SyncServerTimeVersion = "3.9.0"
|
const SyncServerTimeVersion = "3.9.0"
|
||||||
@@ -547,6 +547,15 @@ type SDWANInfo struct {
|
|||||||
Nodes []*SDWANNode
|
Nodes []*SDWANNode
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *SDWANInfo) GetResourceByNodeName(nodeName string) string {
|
||||||
|
for _, node := range s.Nodes {
|
||||||
|
if node.Name == nodeName {
|
||||||
|
return node.Resource
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
SDWANModeFullmesh = "fullmesh"
|
SDWANModeFullmesh = "fullmesh"
|
||||||
SDWANModeCentral = "central"
|
SDWANModeCentral = "central"
|
||||||
|
|||||||
Reference in New Issue
Block a user