diff --git a/.github/update.log b/.github/update.log
index 3322766ed3..7055c9be08 100644
--- a/.github/update.log
+++ b/.github/update.log
@@ -636,3 +636,4 @@ Update On Tue Apr 30 20:31:38 CEST 2024
Update On Wed May 1 20:30:48 CEST 2024
Update On Thu May 2 20:28:05 CEST 2024
Update On Fri May 3 20:27:51 CEST 2024
+Update On Sat May 4 20:29:46 CEST 2024
diff --git a/brook/brooklink.go b/brook/brooklink.go
index d5def132ee..f0ad05f31b 100644
--- a/brook/brooklink.go
+++ b/brook/brooklink.go
@@ -238,6 +238,24 @@ func (blk *BrookLink) CreateExchanger(network, src string, dstb []byte, tcptimeo
}
return sc, rc, nil
}
+ if blk.V.Get("udpoverstream") == "true" {
+ rc, err := QUICDialTCP(src, socks5.ToAddress(dstb[0], dstb[1:len(dstb)-2], dstb[len(dstb)-2:]), blk.Address, blk.Tc, tcptimeout)
+ if err != nil {
+ return nil, nil, err
+ }
+ var sc Exchanger
+ if blk.V.Get("withoutBrookProtocol") != "true" {
+ sc, err = NewStreamClient("udp", blk.Password, src, rc, tcptimeout, dstb)
+ }
+ if blk.V.Get("withoutBrookProtocol") == "true" {
+ sc, err = NewSimpleStreamClient("udp", blk.Password, src, rc, tcptimeout, dstb)
+ }
+ if err != nil {
+ rc.Close()
+ return nil, nil, err
+ }
+ return sc, rc, nil
+ }
rc, err := QUICDialUDP(src, socks5.ToAddress(dstb[0], dstb[1:len(dstb)-2], dstb[len(dstb)-2:]), blk.Address, blk.Tc, udptimeout)
if err != nil {
return nil, nil, err
diff --git a/brook/cli/brook/main.go b/brook/cli/brook/main.go
index 20ab5b800f..f4968ac8c9 100644
--- a/brook/cli/brook/main.go
+++ b/brook/cli/brook/main.go
@@ -74,7 +74,7 @@ func main() {
},
&cli.StringSliceFlag{
Name: "tag",
- Usage: "Tag can be used to the process, will be append into log or serverLog, such as: 'key1:value1'",
+ Usage: "Tag can be used to the process, will be append into log or serverLog, such as: 'key1:value1'. All tags will also be appended as query parameters one by one to the userAPI",
},
&cli.StringFlag{
Name: "dialWithDNS",
@@ -1583,6 +1583,10 @@ func main() {
Name: "udpovertcp",
Usage: "When server is brook server, UDP over TCP",
},
+ &cli.BoolFlag{
+ Name: "udpoverstream",
+ Usage: "When server is brook quicserver, UDP over Stream. Note: only brook CLI and tun2brook suppport for now",
+ },
&cli.StringFlag{
Name: "address",
Usage: "When server is brook wsserver or brook wssserver or brook quicserver, specify address instead of resolving addresses from host, such as 1.2.3.4:443",
@@ -1613,11 +1617,11 @@ func main() {
},
&cli.StringFlag{
Name: "fragment",
- Usage: "When server is brook wssserver, split the ClientHello into multiple fragments and then send them one by one with delays (millisecond). The format is min_length:max_length:min_delay:max_delay, cannot be zero, such as 50:100:10:50, Note that: This is an experimental feature, currently only supported by the brook CLI and tun2brook",
+ Usage: "When server is brook wssserver, split the ClientHello into multiple fragments and then send them one by one with delays (millisecond). The format is min_length:max_length:min_delay:max_delay, cannot be zero, such as 50:100:10:50",
},
&cli.StringFlag{
Name: "token",
- Usage: "A token represents a user's identity. A string encoded in hexadecimal. Server needs to have --userAPI enabled. Note that: Only supported by the brook GUI and tun2brook",
+ Usage: "A token represents a user's identity. A string encoded in hexadecimal. Server needs to have --userAPI enabled. Note that: Only supported by the brook GUI(except for OpenWrt) and tun2brook",
},
&cli.BoolFlag{
Name: "example",
@@ -1656,6 +1660,9 @@ func main() {
if c.Bool("udpovertcp") {
v.Set("udpovertcp", "true")
}
+ if c.Bool("udpoverstream") {
+ v.Set("udpoverstream", "true")
+ }
if c.String("address") != "" {
v.Set("address", c.String("address"))
}
@@ -2735,11 +2742,11 @@ func main() {
if ip == nil {
return errors.New(c.String("ip") + " is not IP")
}
- b := iploc.Country(ip)
- if b == nil {
+ s := iploc.Country(ip)
+ if s == "" {
return errors.New(c.String("ip") + " unknown")
}
- fmt.Println(string(b))
+ fmt.Println(s)
return nil
},
},
diff --git a/brook/docs/build.sh b/brook/docs/build.sh
index 7d85cc9295..d7a8ec9b66 100755
--- a/brook/docs/build.sh
+++ b/brook/docs/build.sh
@@ -6,7 +6,7 @@ echo '' >> ../readme.md
echo 'A cross-platform programmable network tool.' >> ../readme.md
echo '' >> ../readme.md
echo '# Sponsor' >> ../readme.md
-echo '**❤️ [Shiliew - China Optimized Network App](https://www.txthinking.com/shiliew.html)**' >> ../readme.md
+echo '**❤️ [Shiliew - A network app designed for those who value their time](https://www.txthinking.com/shiliew.html)**' >> ../readme.md
cat getting-started.md >> ../readme.md
cat gui.md >> ../readme.md
@@ -16,7 +16,6 @@ echo '# CLI Documentation' >> ../readme.md
jb '$1`brook mdpage`.split("\n").filter(v=>!v.startsWith("[")).join("\n").replace("```\n```", "```\nbrook --help\n```").split("\n").forEach(v=> echo(v.startsWith("**") && !v.startsWith("**Usage") ? "- "+v : v))' >> ../readme.md
cat example.md >> ../readme.md
-cat diagram.md >> ../readme.md
markdown ../readme.md ./index.html
diff --git a/brook/docs/diagram.md b/brook/docs/diagram.md
deleted file mode 100644
index fd2d39f9fd..0000000000
--- a/brook/docs/diagram.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# Diagram
-
-> Maybe outdated
-
-## overview
-
-
-
-## withoutBrookProtocol
-
-
-
-## relayoverbrook
-
-
-
-## dnsserveroverbrook
-
-
-
-## relay
-
-
-
-## dnsserver
-
-
-
-## tproxy
-
-
-
-## gui
-
-
-
-## script
-
-
-
diff --git a/brook/docs/resources.md b/brook/docs/resources.md
index 84bba8052e..5eff98e2a2 100644
--- a/brook/docs/resources.md
+++ b/brook/docs/resources.md
@@ -27,6 +27,6 @@
| [Socks5 Configurator](https://chromewebstore.google.com/detail/socks5-configurator/hnpgnjkeaobghpjjhaiemlahikgmnghb) | If you prefer CLI brook client |
| [IPvBar](https://chromewebstore.google.com/detail/ipvbar/nepjlegfiihpkcdhlmaebfdfppckonlj) | See domain, IP and country in browser |
| [TxThinking SSH](https://www.txthinking.com/ssh.html) | A SSH Terminal |
-| [brook-manager](https://github.com/txthinking/brook-manager) | Brook Manager is a Brook management system for medium to large merchants |
+| [brook-dashboard](https://github.com/txthinkinginc/brook-dashboard) | A Brook User System |
| [TxThinking](https://www.txthinking.com) | Everything |
diff --git a/brook/docs/svg/dnsserver.svg b/brook/docs/svg/dnsserver.svg
deleted file mode 100644
index 8fc695aa3b..0000000000
--- a/brook/docs/svg/dnsserver.svg
+++ /dev/null
@@ -1,845 +0,0 @@
-
diff --git a/brook/docs/svg/dnsserveroverbrook.svg b/brook/docs/svg/dnsserveroverbrook.svg
deleted file mode 100644
index b03931d766..0000000000
--- a/brook/docs/svg/dnsserveroverbrook.svg
+++ /dev/null
@@ -1,845 +0,0 @@
-