]> 127.0.0.1 Git - front/.git/commitdiff
1 v0.1.20240305034740
authorqydysky <qydysky@foxmail.com>
Tue, 5 Mar 2024 03:47:19 +0000 (11:47 +0800)
committerqydysky <qydysky@foxmail.com>
Tue, 5 Mar 2024 03:47:19 +0000 (11:47 +0800)
config.go
main.go

index f51e9a80777a4ed38cfabf6385c025588c6c032c..63891506b25acc3988be7ff38ea236bbc9d35a2d 100755 (executable)
--- a/config.go
+++ b/config.go
@@ -2,7 +2,6 @@ package front
 
 import (
        "context"
-       "crypto/md5"
        "crypto/tls"
        "errors"
        "fmt"
@@ -89,19 +88,13 @@ func (t *Config) Run(ctx context.Context, logger Logger) {
                                }
                        }
 
-                       if len(backIs) == 0 {
-                               backIs = append(backIs, route.FiliterBackByRequest(r)...)
-                       }
+                       backIs = append(backIs, route.FiliterBackByRequest(r)...)
 
                        if len(backIs) == 0 {
                                w.WriteHeader(http.StatusNotFound)
                                return
                        }
 
-                       rand.Shuffle(len(backIs), func(i, j int) {
-                               backIs[i], backIs[j] = backIs[j], backIs[i]
-                       })
-
                        var e error
                        if r.Header.Get("Upgrade") == "websocket" {
                                e = wsDealer(ctx1, w, r, route.Path, backIs, logger, t.BlocksI)
@@ -253,6 +246,9 @@ func (t *Route) FiliterBackByRequest(r *http.Request) []*Back {
                        }
                }
        }
+       rand.Shuffle(len(backLink), func(i, j int) {
+               backLink[i], backLink[j] = backLink[j], backLink[i]
+       })
        return backLink
 }
 
@@ -272,32 +268,8 @@ type Back struct {
        ResHeader   []Header `json:"resHeader"`
 }
 
-// func (t *Back) Init() (e error) {
-//     for i := 0; i < len(t.MatchHeader); i++ {
-//             e = t.MatchHeader[i].Init()
-//             if e != nil {
-//                     return e
-//             }
-//     }
-//     for i := 0; i < len(t.ReqHeader); i++ {
-//             e = t.ReqHeader[i].Init()
-//             if e != nil {
-//                     return e
-//             }
-//     }
-//     for i := 0; i < len(t.ResHeader); i++ {
-//             e = t.ResHeader[i].Init()
-//             if e != nil {
-//                     return e
-//             }
-//     }
-//     return
-// }
-
 func (t *Back) Id() string {
-       w := md5.New()
-       w.Write([]byte(t.Name + t.To))
-       return fmt.Sprintf("%x", w.Sum(nil))
+       return fmt.Sprintf("%p", t)
 }
 
 func Matched(matchHeader []Header, r *http.Request) bool {
diff --git a/main.go b/main.go
index 528dd2aa3e549502a1d372de37923ac5af3bc57b..b3d35fbd6c52bedda48696009c595f9422e41ce2 100755 (executable)
--- a/main.go
+++ b/main.go
@@ -126,7 +126,7 @@ func httpDealer(ctx context.Context, w http.ResponseWriter, r *http.Request, rou
        )
 
        for 0 < len(backs) && resp == nil {
-               chosenBack = backs[nanotime1()%int64(len(backs))]
+               chosenBack = backs[0]
                backs = backs[1:]
 
                url := chosenBack.To
@@ -226,7 +226,7 @@ func wsDealer(ctx context.Context, w http.ResponseWriter, r *http.Request, route
        )
 
        for 0 < len(backs) && (resp == nil || conn == nil) {
-               chosenBack = backs[nanotime1()%int64(len(backs))]
+               chosenBack = backs[0]
                backs = backs[1:]
 
                url := chosenBack.To