@@ -50,7 +50,7 @@ var debugAddress string
5050func main () {
5151 app := cli .NewApp ()
5252 app .Name = "Brook"
53- app .Version = "20221212 "
53+ app .Version = "20230101 "
5454 app .Usage = "A cross-platform network tool designed for developers"
5555 app .Authors = []* cli.Author {
5656 {
@@ -221,7 +221,7 @@ func main() {
221221 },
222222 & cli.StringFlag {
223223 Name : "http" ,
224- Usage : "Where to listen for HTTP connections" ,
224+ Usage : "Where to listen for HTTP proxy connections" ,
225225 },
226226 & cli.IntFlag {
227227 Name : "tcpTimeout" ,
@@ -443,7 +443,7 @@ func main() {
443443 },
444444 & cli.StringFlag {
445445 Name : "http" ,
446- Usage : "Where to listen for HTTP connections" ,
446+ Usage : "Where to listen for HTTP proxy connections" ,
447447 },
448448 & cli.IntFlag {
449449 Name : "tcpTimeout" ,
@@ -712,7 +712,7 @@ func main() {
712712 },
713713 & cli.StringFlag {
714714 Name : "http" ,
715- Usage : "Where to listen for HTTP connections" ,
715+ Usage : "Where to listen for HTTP proxy connections" ,
716716 },
717717 & cli.IntFlag {
718718 Name : "tcpTimeout" ,
@@ -1509,7 +1509,7 @@ func main() {
15091509 },
15101510 & cli.StringFlag {
15111511 Name : "http" ,
1512- Usage : "Where to listen for HTTP connections" ,
1512+ Usage : "Where to listen for HTTP proxy connections" ,
15131513 },
15141514 & cli.IntFlag {
15151515 Name : "tcpTimeout" ,
@@ -2090,7 +2090,12 @@ func main() {
20902090 var cmd * exec.Cmd
20912091 var err error
20922092 go func () {
2093- cmd = exec .Command ("brook" , "connect" , "--link" , c .String ("link" ), "--socks5" , c .String ("socks5" ))
2093+ var s string
2094+ s , err = os .Executable ()
2095+ if err != nil {
2096+ return
2097+ }
2098+ cmd = exec .Command (s , "connect" , "--link" , c .String ("link" ), "--socks5" , c .String ("socks5" ))
20942099 b , _ := cmd .CombinedOutput ()
20952100 err = errors .New (string (b ))
20962101 }()
@@ -2103,6 +2108,76 @@ func main() {
21032108 return err1
21042109 },
21052110 },
2111+ & cli.Command {
2112+ Name : "echoserver" ,
2113+ Usage : "Echo server, echo UDP and TCP address of routes" ,
2114+ BashComplete : func (c * cli.Context ) {
2115+ l := c .Command .VisibleFlags ()
2116+ for _ , v := range l {
2117+ fmt .Println ("--" + v .Names ()[0 ])
2118+ }
2119+ },
2120+ Flags : []cli.Flag {
2121+ & cli.StringFlag {
2122+ Name : "listen" ,
2123+ Aliases : []string {"l" },
2124+ Usage : "Listen address, like: ':7777'" ,
2125+ },
2126+ },
2127+ Action : func (c * cli.Context ) error {
2128+ if c .String ("listen" ) == "" {
2129+ return cli .ShowSubcommandHelp (c )
2130+ }
2131+ s , err := brook .NewEchoServer (c .String ("listen" ))
2132+ if err != nil {
2133+ return err
2134+ }
2135+ g := runnergroup .New ()
2136+ g .Add (& runnergroup.Runner {
2137+ Start : func () error {
2138+ return s .ListenAndServe ()
2139+ },
2140+ Stop : func () error {
2141+ return s .Shutdown ()
2142+ },
2143+ })
2144+ go func () {
2145+ sigs := make (chan os.Signal , 1 )
2146+ signal .Notify (sigs , syscall .SIGINT , syscall .SIGTERM )
2147+ <- sigs
2148+ g .Done ()
2149+ }()
2150+ return g .Wait ()
2151+ },
2152+ },
2153+ & cli.Command {
2154+ Name : "echoclient" ,
2155+ Usage : "Connect to echoserver, echo UDP and TCP address of routes" ,
2156+ BashComplete : func (c * cli.Context ) {
2157+ l := c .Command .VisibleFlags ()
2158+ for _ , v := range l {
2159+ fmt .Println ("--" + v .Names ()[0 ])
2160+ }
2161+ },
2162+ Flags : []cli.Flag {
2163+ & cli.StringFlag {
2164+ Name : "server" ,
2165+ Aliases : []string {"s" },
2166+ Usage : "Echo server address, such as 1.2.3.4:7777" ,
2167+ },
2168+ & cli.IntFlag {
2169+ Name : "times" ,
2170+ Value : 1 ,
2171+ Usage : "Times of interactions" ,
2172+ },
2173+ },
2174+ Action : func (c * cli.Context ) error {
2175+ if c .String ("server" ) == "" {
2176+ return cli .ShowSubcommandHelp (c )
2177+ }
2178+ return brook .EchoClient (c .String ("server" ), c .Int ("times" ))
2179+ },
2180+ },
21062181 & cli.Command {
21072182 Name : "completion" ,
21082183 Usage : "Generate shell completions" ,
@@ -2188,7 +2263,7 @@ complete -o bashdefault -o default -o nospace -F _cli_bash_autocomplete brook
21882263 },
21892264 },
21902265 & cli.Command {
2191- Name : "markdown " ,
2266+ Name : "mdpage " ,
21922267 Usage : "Generate markdown page" ,
21932268 BashComplete : func (c * cli.Context ) {
21942269 l := c .Command .VisibleFlags ()
0 commit comments