3636 httpClient * http.Client
3737 dmsgSessions int
3838 dlog * logging.Logger
39+ dmsgHTTPPath string
40+ err error
3941)
4042
4143// Execute executes root CLI command.
@@ -50,24 +52,26 @@ func init() {
5052 proxyCmd ,
5153 )
5254
53- serveCmd .Flags ().Uint16VarP (& dmsgPort , "dport" , "q" , 1081 , "dmsg port to serve socks5" )
54- serveCmd .Flags ().StringVarP (& wl , "wl" , "w" , "" , "whitelist keys, comma separated" )
55- serveCmd .Flags ().StringVarP (& dmsgDisc , "dmsg-disc" , "D" , dmsgDisc , "dmsg discovery url" )
56- serveCmd .Flags ().BoolVarP (& useHTTP , "http" , "z" , false , "use regular http to connect to dmsg discovery" )
55+ serveCmd .Flags ().Uint16VarP (& dmsgPort , "dport" , "q" , 1081 , "dmsg port to serve socks5\033 [0m\n \r " )
56+ serveCmd .Flags ().StringVarP (& wl , "wl" , "w" , "" , "whitelist keys, comma separated\033 [0m\n \r " )
57+ serveCmd .Flags ().StringVarP (& dmsgHTTPPath , "dmsgconf" , "F" , "" , "dmsghttp-config path\033 [0m\n \r " )
58+ serveCmd .Flags ().StringVarP (& dmsgDisc , "dmsg-disc" , "D" , dmsgDisc , "dmsg discovery url\033 [0m\n \r " )
59+ serveCmd .Flags ().BoolVarP (& useHTTP , "http" , "z" , false , "use regular http to connect to dmsg discovery\033 [0m\n \r " )
5760 if os .Getenv ("DMSGSK" ) != "" {
5861 sk .Set (os .Getenv ("DMSGSK" )) //nolint
5962 }
60- serveCmd .Flags ().VarP (& sk , "sk" , "s" , "a random key is generated if unspecified\n \r " )
63+ serveCmd .Flags ().VarP (& sk , "sk" , "s" , "a random key is generated if unspecified\033 [0m \ n\r " )
6164
62- proxyCmd .Flags ().IntVarP (& proxyPort , "port" , "p" , 1081 , "TCP port to serve SOCKS5 proxy locally" )
63- proxyCmd .Flags ().Uint16VarP (& dmsgPort , "dport" , "q" , 1081 , "dmsg port to connect to socks5 server" )
64- proxyCmd .Flags ().StringVarP (& pubk , "pk" , "k" , "" , "dmsg socks5 proxy server public key to connect to" )
65- proxyCmd .Flags ().StringVarP (& dmsgDisc , "dmsg-disc" , "D" , dmsgDisc , "dmsg discovery url" )
66- proxyCmd .Flags ().BoolVarP (& useHTTP , "http" , "z" , false , "use regular http to connect to dmsg discovery" )
65+ proxyCmd .Flags ().IntVarP (& proxyPort , "port" , "p" , 1081 , "TCP port to serve SOCKS5 proxy locally\033 [0m\n \r " )
66+ proxyCmd .Flags ().Uint16VarP (& dmsgPort , "dport" , "q" , 1081 , "dmsg port to connect to socks5 server\033 [0m\n \r " )
67+ proxyCmd .Flags ().StringVarP (& pubk , "pk" , "k" , "" , "dmsg socks5 proxy server public key to connect to\033 [0m\n \r " )
68+ proxyCmd .Flags ().StringVarP (& dmsgHTTPPath , "dmsgconf" , "F" , "" , "dmsghttp-config path\033 [0m\n \r " )
69+ proxyCmd .Flags ().StringVarP (& dmsgDisc , "dmsg-disc" , "D" , dmsgDisc , "dmsg discovery url\033 [0m\n \r " )
70+ proxyCmd .Flags ().BoolVarP (& useHTTP , "http" , "z" , false , "use regular http to connect to dmsg discovery\033 [0m\n \r " )
6771 if os .Getenv ("DMSGSK" ) != "" {
6872 sk .Set (os .Getenv ("DMSGSK" )) //nolint
6973 }
70- proxyCmd .Flags ().VarP (& sk , "sk" , "s" , "a random key is generated if unspecified\n \r " )
74+ proxyCmd .Flags ().VarP (& sk , "sk" , "s" , "a random key is generated if unspecified\033 [0m \ n\r " )
7175
7276}
7377
@@ -104,6 +108,18 @@ var serveCmd = &cobra.Command{
104108 dlog .Info ("Interrupt received. Shutting down..." )
105109 os .Exit (0 )
106110 }()
111+
112+ if dmsgHTTPPath != "" {
113+ dmsg .DmsghttpJSON , err = os .ReadFile (dmsgHTTPPath ) //nolint
114+ if err != nil {
115+ dlog .WithError (err ).Fatal ("Failed to read specified dmsghttp-config" )
116+ }
117+ err = dmsg .InitConfig ()
118+ if err != nil {
119+ dlog .WithError (err ).Fatal ("Failed to unmarshal dmsghttp-config" )
120+ }
121+ }
122+
107123 pk , err := sk .PubKey ()
108124 if err != nil {
109125 pk , sk = cipher .GenerateKeyPair ()
@@ -197,6 +213,18 @@ var proxyCmd = &cobra.Command{
197213 DisableFlagsInUseLine : true ,
198214 Run : func (_ * cobra.Command , _ []string ) {
199215 dlog = logging .MustGetLogger ("dmsg-proxy-client" )
216+
217+ if dmsgHTTPPath != "" {
218+ dmsg .DmsghttpJSON , err = os .ReadFile (dmsgHTTPPath ) //nolint
219+ if err != nil {
220+ dlog .WithError (err ).Fatal ("Failed to read specified dmsghttp-config" )
221+ }
222+ err = dmsg .InitConfig ()
223+ if err != nil {
224+ dlog .WithError (err ).Fatal ("Failed to unmarshal dmsghttp-config" )
225+ }
226+ }
227+
200228 var pubKey cipher.PubKey
201229 err := pubKey .Set (pubk )
202230 if err != nil {
0 commit comments