From abbfb5fbd922f7ce5fad992a0c2bc67f5cda70b6 Mon Sep 17 00:00:00 2001 From: huangsimin Date: Fri, 28 Dec 2018 10:52:57 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=88=87=E6=8D=A2?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5=E7=9A=84=E5=A4=84=E7=90=86,=20=E5=BB=B6?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E5=88=87=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dip.go | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/dip.go b/dip.go index 07390a5..b129902 100644 --- a/dip.go +++ b/dip.go @@ -75,33 +75,32 @@ func (group *DIPGroup) Choose(addr string) { } else { i := 0 - for ; i < 3; i++ { + for ; i < 2; i++ { imokURL := "http://" + dhost.Host + ":8800/pppoe/imok" - if _, err := requests.NewSession().Get(imokURL).Execute(); err != nil { + ses := requests.NewSession() + ses.SetConfig(requests.CRequestTimeout, 5) + if _, err := ses.Get(imokURL).Execute(); err != nil { log.Println(err) - } else { // 如果ping 通下个切换的主机就切换 - for ii := 0; ii < 3; ii++ { restartURL := "http://" + group.Current.Host + ":8800/pppoe/restart" - if _, err := requests.NewSession().Get(restartURL).Execute(); err != nil { + if _, err := ses.Get(restartURL).Execute(); err != nil { log.Println(err) } else { break // 可以切换 ii := 0; ii < 3; ii++ } } - break // for ; i < 3; i++ { - } } if i == 3 { // 下个需要切换的DHost错误 + group.Current.ActiveTime = now + 15 delete(group.Ready, ip) - continue // 不执行下面的 切换操作 for ip, dhost := range group.Ready + return // 不执行下面的 切换操作 for ip, dhost := range group.Ready } } From a00de486e49160a8f1c349e4086a6a95a71d69e2 Mon Sep 17 00:00:00 2001 From: huangsimin Date: Fri, 28 Dec 2018 11:16:50 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E5=8F=AF=E7=94=A8ip=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- switch.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/switch.go b/switch.go index 2aa12ec..130c3b5 100644 --- a/switch.go +++ b/switch.go @@ -200,7 +200,6 @@ func (swi *Switch) switchActives(w http.ResponseWriter, req *http.Request) { for addr, group := range swi.Worker.ForLoop { addrmap := make(map[string]interface{}) - content[addr] = addrmap isappend := int64(0) var hosts []string @@ -211,6 +210,7 @@ func (swi *Switch) switchActives(w http.ResponseWriter, req *http.Request) { hosts = append(hosts, dhost.Host) } if isappend > 1 { + content[addr] = addrmap addrmap["group"] = hosts addrmap["city"] = group.City } From aaa53b54e4892bab25fb3fb1817017bb2010d5bd Mon Sep 17 00:00:00 2001 From: huangsimin Date: Sat, 29 Dec 2018 10:08:36 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=94=99=E8=AF=AFready?= =?UTF-8?q?=E4=B8=8D=E5=8F=AF=E8=BE=BE=E5=88=B0=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dip.go | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/dip.go b/dip.go index b129902..03a3323 100644 --- a/dip.go +++ b/dip.go @@ -79,10 +79,16 @@ func (group *DIPGroup) Choose(addr string) { imokURL := "http://" + dhost.Host + ":8800/pppoe/imok" ses := requests.NewSession() - ses.SetConfig(requests.CRequestTimeout, 5) + ses.SetConfig(requests.CRequestTimeout, 4) if _, err := ses.Get(imokURL).Execute(); err != nil { log.Println(err) + if i == 2 { + // 下个需要切换的DHost错误 + group.Current.ActiveTime = now + 15 + delete(group.Ready, ip) + return // 不执行下面的 切换操作 for ip, dhost := range group.Ready + } } else { // 如果ping 通下个切换的主机就切换 for ii := 0; ii < 3; ii++ { restartURL := "http://" + group.Current.Host + ":8800/pppoe/restart" @@ -96,13 +102,6 @@ func (group *DIPGroup) Choose(addr string) { } } - if i == 3 { - // 下个需要切换的DHost错误 - group.Current.ActiveTime = now + 15 - delete(group.Ready, ip) - return // 不执行下面的 切换操作 for ip, dhost := range group.Ready - } - } group.Current = dhost