feat: 支持多网卡模式

This commit is contained in:
Mmx
2021-12-03 19:59:42 +08:00
parent a595de3ed1
commit ddaac2d155
11 changed files with 132 additions and 33 deletions

View File

@@ -2,6 +2,7 @@ package controllers
import (
"github.com/Mmx233/BitSrunLoginGo/global"
srunModels "github.com/Mmx233/BitSrunLoginGo/models"
"github.com/Mmx233/BitSrunLoginGo/util"
"os"
"os/exec"
@@ -27,17 +28,38 @@ func Guardian(output bool) {
defer func() {
_ = recover()
}()
if !util.Checker.NetOk(global.Config.Settings.Timeout) {
util.Log.Println("Network down, trying to login")
e := Login(output, true)
if e != nil {
util.Log.Println("Error: ", e)
if global.Config.Settings.Interfaces == "" { //单网卡
if !util.Checker.NetOk(global.Config.Settings.Timeout, nil) {
util.Log.Println("Network down, trying to login")
e := Login(output, true, nil)
if e != nil {
util.Log.Println("Error: ", e)
}
} else {
if global.Config.Settings.DemoMode {
util.Log.Println("Network ok")
}
}
} else {
if global.Config.Settings.DemoMode {
util.Log.Println("Network ok")
} else { //多网卡
interfaces, e := util.GetInterfaceAddr()
if e == nil {
var down []srunModels.Eth
for _, eth := range interfaces {
if !util.Checker.NetOk(global.Config.Settings.Timeout, eth.Addr) {
util.Log.Println(eth.Name + " network down")
down = append(down, eth)
}
}
for _, eth := range down {
e := Login(output, true, eth.Addr)
if e != nil {
util.Log.Println(eth.Name+" login error: ", e)
}
}
}
}
c <- false
}()
<-c

View File

@@ -4,10 +4,11 @@ import (
"github.com/Mmx233/BitSrunLoginGo/global"
BitSrun "github.com/Mmx233/BitSrunLoginGo/v1"
"github.com/Mmx233/BitSrunLoginGo/v1/transfer"
"net"
)
// Login 登录逻辑
func Login(output bool, skipCheck bool) error {
func Login(output bool, skipCheck bool, localAddr net.Addr) error {
return BitSrun.Login(&srunTransfer.Login{
Demo: global.Config.Settings.DemoMode,
OutPut: output,
@@ -17,5 +18,6 @@ func Login(output bool, skipCheck bool) error {
Form: &global.Config.Form,
Meta: &global.Config.Meta,
},
LocalAddr: localAddr,
})
}