From 91d3f2d006ea1c5854bf340f1daba8fd22b6e74d Mon Sep 17 00:00:00 2001 From: Mihail Slobodyanuk Date: Fri, 9 Dec 2022 19:21:17 +0200 Subject: [PATCH 01/22] Embedded meshctl calls inside mesh-ui --- contrib/ui/mesh-ui/webview.go | 149 +++++++++++++++++++++----- contrib/ui/mesh-ui/webview_other.go | 32 ------ contrib/ui/mesh-ui/webview_windows.go | 35 ------ 3 files changed, 124 insertions(+), 92 deletions(-) delete mode 100644 contrib/ui/mesh-ui/webview_other.go delete mode 100755 contrib/ui/mesh-ui/webview_windows.go diff --git a/contrib/ui/mesh-ui/webview.go b/contrib/ui/mesh-ui/webview.go index 001aade6..e76dad2f 100755 --- a/contrib/ui/mesh-ui/webview.go +++ b/contrib/ui/mesh-ui/webview.go @@ -1,7 +1,9 @@ package main import ( + "bytes" "encoding/json" + "errors" "fmt" "io/ioutil" "log" @@ -9,15 +11,16 @@ import ( "net/url" "os" "path/filepath" - "runtime" "strconv" "strings" "time" "github.com/hjson/hjson-go" "github.com/webview/webview" + "golang.org/x/text/encoding/unicode" "github.com/RiV-chain/RiV-mesh/src/admin" + "github.com/RiV-chain/RiV-mesh/src/defaults" ) func main() { @@ -40,7 +43,6 @@ func main() { fmt.Printf("Unable to create folder: %v", err) } mesh_settings_path := filepath.Join(user_home, mesh_folder, mesh_conf) - riv_ctrl_path = get_ctl_path() if _, err := os.Stat(mesh_settings_path); os.IsNotExist(err) { err := ioutil.WriteFile(mesh_settings_path, []byte(""), 0750) if err != nil { @@ -145,36 +147,19 @@ func get_user_home_path() string { } } -func get_ctl_path() string { - if runtime.GOOS == "windows" { - program_path := "programfiles" - path, exists := os.LookupEnv(program_path) - if exists { - fmt.Println("Program path: %s", path) - ctl_path := fmt.Sprintf("%s\\RiV-mesh\\meshctl.exe", path) - return ctl_path - } else { - fmt.Println("could not find Program Files path") - return "" - } - } else { - ctl_path := fmt.Sprintf("/usr/local/bin/meshctl") - return ctl_path - } -} - func run(w webview.WebView) { - if len(riv_ctrl_path) > 0 { - get_self(w) - get_peers(w) - } + get_self(w) + get_peers(w) _ = time.AfterFunc(10*time.Second, func() { run(w) }) } func add_peers(uri string) { - run_command_with_arg("addpeers", "uri="+uri) + _, err := run_command_with_arg("addpeers", "uri="+uri) + if err != nil { + log.Println("Error in the add_peers() call:", err) + } } func remove_peers() { @@ -234,3 +219,117 @@ func setPingValue(p webview.WebView, peer string, value string) { p.Eval("setPingValue('" + peer + "','" + value + "');") }) } + +func run_command(command string) []byte { + data, err := run_command_with_arg(command, "") + if err != nil { + log.Println("Error in the "+command+" call:", err) + } + return data +} + +func run_command_with_arg(command string, arg string) ([]byte, error) { + logbuffer := &bytes.Buffer{} + logger := log.New(logbuffer, "", log.Flags()) + + wrapErr := func(err error) error { + logger.Println("Error:", err) + return errors.New(fmt.Sprintln(logbuffer)) + } + + endpoint := getEndpoint(logger) + + var conn net.Conn + u, err := url.Parse(endpoint) + d := net.Dialer{Timeout: 5000 * time.Millisecond} + if err == nil { + switch strings.ToLower(u.Scheme) { + case "unix": + logger.Println("Connecting to UNIX socket", endpoint[7:]) + conn, err = d.Dial("unix", endpoint[7:]) + case "tcp": + logger.Println("Connecting to TCP socket", u.Host) + conn, err = d.Dial("tcp", u.Host) + default: + logger.Println("Unknown protocol or malformed address - check your endpoint") + err = errors.New("protocol not supported") + } + } else { + logger.Println("Connecting to TCP socket", u.Host) + conn, err = d.Dial("tcp", endpoint) + } + if err != nil { + return nil, wrapErr(err) + } + + logger.Println("Connected") + defer conn.Close() + + decoder := json.NewDecoder(conn) + encoder := json.NewEncoder(conn) + send := &admin.AdminSocketRequest{} + recv := &admin.AdminSocketResponse{} + send.Name = command + args := map[string]string{} + switch { + case len(arg) > 0: + tokens := strings.SplitN(arg, "=", 2) + args[tokens[0]] = tokens[1] + default: + } + + if send.Arguments, err = json.Marshal(args); err != nil { + return nil, err + } + if err := encoder.Encode(&send); err != nil { + return nil, err + } + logger.Printf("Request sent") + //js, _ := json.Marshal(send) + //fmt.Println("sent:", string(js)) + if err := decoder.Decode(&recv); err != nil { + return nil, wrapErr(err) + } + if recv.Status == "error" { + if err := recv.Error; err != "" { + return nil, wrapErr(errors.New("Admin socket returned an error:" + err)) + } else { + return nil, wrapErr(errors.New("Admin socket returned an error but didn't specify any error text")) + } + } + if json, err := json.MarshalIndent(recv.Response, "", " "); err == nil { + return json, nil + } + return nil, wrapErr(err) +} + +func getEndpoint(logger *log.Logger) string { + if config, err := os.ReadFile(defaults.GetDefaults().DefaultConfigFile); err == nil { + if bytes.Equal(config[0:2], []byte{0xFF, 0xFE}) || + bytes.Equal(config[0:2], []byte{0xFE, 0xFF}) { + utf := unicode.UTF16(unicode.BigEndian, unicode.UseBOM) + decoder := utf.NewDecoder() + config, err = decoder.Bytes(config) + if err != nil { + return defaults.GetDefaults().DefaultAdminListen + } + } + var dat map[string]interface{} + if err := hjson.Unmarshal(config, &dat); err != nil { + return defaults.GetDefaults().DefaultAdminListen + } + if ep, ok := dat["AdminListen"].(string); ok && (ep != "none" && ep != "") { + logger.Println("Found platform default config file", defaults.GetDefaults().DefaultConfigFile) + logger.Println("Using endpoint", ep, "from AdminListen") + return ep + } else { + logger.Println("Configuration file doesn't contain appropriate AdminListen option") + logger.Println("Falling back to platform default", defaults.GetDefaults().DefaultAdminListen) + return defaults.GetDefaults().DefaultAdminListen + } + } else { + logger.Println("Can't open config file from default location", defaults.GetDefaults().DefaultConfigFile) + logger.Println("Falling back to platform default", defaults.GetDefaults().DefaultAdminListen) + return defaults.GetDefaults().DefaultAdminListen + } +} diff --git a/contrib/ui/mesh-ui/webview_other.go b/contrib/ui/mesh-ui/webview_other.go deleted file mode 100644 index 782e0954..00000000 --- a/contrib/ui/mesh-ui/webview_other.go +++ /dev/null @@ -1,32 +0,0 @@ -//go:build !windows -// +build !windows - -package main - -import ( - "os/exec" -) - -var riv_ctrl_path string - -func run_command(command string) []byte { - args := []string{"-json", command} - cmd := exec.Command(riv_ctrl_path, args...) - out, err := cmd.CombinedOutput() - if err != nil { - //log.Fatalf("cmd.Run() failed with %s\n", err) - return []byte(err.Error()) - } - return out -} - -func run_command_with_arg(command string, arg string) []byte { - args := []string{"-json", command, arg} - cmd := exec.Command(riv_ctrl_path, args...) - out, err := cmd.CombinedOutput() - if err != nil { - //log.Fatalf("command failed: %s\n", riv_ctrl_path+" "+strings.Join(args, " ")) - return []byte(err.Error()) - } - return out -} diff --git a/contrib/ui/mesh-ui/webview_windows.go b/contrib/ui/mesh-ui/webview_windows.go deleted file mode 100755 index 2b0fd730..00000000 --- a/contrib/ui/mesh-ui/webview_windows.go +++ /dev/null @@ -1,35 +0,0 @@ -//go:build windows -// +build windows - -package main - -import ( - "os/exec" - "syscall" -) - -var riv_ctrl_path string - -func run_command(command string) []byte { - args := []string{"-json", command} - cmd := exec.Command(riv_ctrl_path, args...) - cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true} - out, err := cmd.CombinedOutput() - if err != nil { - //log.Fatalf("cmd.Run() failed with %s\n", err) - return []byte(err.Error()) - } - return out -} - -func run_command_with_arg(command string, arg string) []byte { - args := []string{"-json", command, arg} - cmd := exec.Command(riv_ctrl_path, args...) - cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true} - out, err := cmd.CombinedOutput() - if err != nil { - //log.Fatalf("command failed: %s\n", riv_ctrl_path+" "+strings.Join(args, " ")) - return []byte(err.Error()) - } - return out -} From 70d32441c0a8242f2282b574694ee53c4e6267ca Mon Sep 17 00:00:00 2001 From: Mihail Slobodyanuk Date: Sat, 10 Dec 2022 11:10:59 +0200 Subject: [PATCH 02/22] Added mest-ui start options and ability to enable debug console --- build | 4 ---- contrib/ui/mesh-ui/webview.go | 23 +++++++++++++++++++++++ contrib/ui/mesh-ui/webview_other.go | 3 +++ contrib/ui/mesh-ui/webview_windows.go | 16 ++++++++++++++++ go.mod | 1 + go.sum | 2 ++ 6 files changed, 45 insertions(+), 4 deletions(-) diff --git a/build b/build index 1da3af43..10e9c7b6 100755 --- a/build +++ b/build @@ -58,10 +58,6 @@ build_meshctl() { } build_mesh_ui() { - #only UI should be built with windowsgui flag - if [ "$GOOS" == "windows" ]; then - LDFLAGS2=" -H windowsgui" - fi buildbin ./contrib/ui/mesh-ui } diff --git a/contrib/ui/mesh-ui/webview.go b/contrib/ui/mesh-ui/webview.go index 001aade6..e3cd0927 100755 --- a/contrib/ui/mesh-ui/webview.go +++ b/contrib/ui/mesh-ui/webview.go @@ -18,9 +18,32 @@ import ( "github.com/webview/webview" "github.com/RiV-chain/RiV-mesh/src/admin" + "github.com/docopt/docopt-go" ) +var confui struct { + Console bool `docopt:"-c,--console"` +} + func main() { + usage := `Graphical interface for RiV mesh. + +Usage: + mesh-ui + mesh-ui -c | --console + mesh-ui -h | --help + mesh-ui -v | --version + +Options: + -c --console Show debug console window. + -h --help Show this screen. + -v --version Show version.` + + opts, _ := docopt.ParseArgs(usage, os.Args[1:], "0.0.1") + opts.Bind(&confui) + if !confui.Console { + Console(false) + } debug := true w := webview.New(debug) defer w.Destroy() diff --git a/contrib/ui/mesh-ui/webview_other.go b/contrib/ui/mesh-ui/webview_other.go index 782e0954..099b4f84 100644 --- a/contrib/ui/mesh-ui/webview_other.go +++ b/contrib/ui/mesh-ui/webview_other.go @@ -30,3 +30,6 @@ func run_command_with_arg(command string, arg string) []byte { } return out } + +func Console(show bool) { +} diff --git a/contrib/ui/mesh-ui/webview_windows.go b/contrib/ui/mesh-ui/webview_windows.go index 2b0fd730..4682ca6a 100755 --- a/contrib/ui/mesh-ui/webview_windows.go +++ b/contrib/ui/mesh-ui/webview_windows.go @@ -33,3 +33,19 @@ func run_command_with_arg(command string, arg string) []byte { } return out } + +func Console(show bool) { + var getWin = syscall.NewLazyDLL("kernel32.dll").NewProc("GetConsoleWindow") + var showWin = syscall.NewLazyDLL("user32.dll").NewProc("ShowWindow") + hwnd, _, _ := getWin.Call() + if hwnd == 0 { + return + } + if show { + var SW_RESTORE uintptr = 9 + showWin.Call(hwnd, SW_RESTORE) + } else { + var SW_HIDE uintptr = 0 + showWin.Call(hwnd, SW_HIDE) + } +} diff --git a/go.mod b/go.mod index ef843c08..ee1d4d0d 100644 --- a/go.mod +++ b/go.mod @@ -23,6 +23,7 @@ require ( ) require ( + github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815 // indirect github.com/dustin/go-humanize v1.0.0 // indirect github.com/getlantern/context v0.0.0-20190109183933-c447772a6520 // indirect github.com/getlantern/ema v0.0.0-20190620044903-5943d28f40e4 // indirect diff --git a/go.sum b/go.sum index 30f678f1..4c41cad8 100644 --- a/go.sum +++ b/go.sum @@ -12,6 +12,8 @@ github.com/cheggaaa/pb/v3 v3.0.8/go.mod h1:UICbiLec/XO6Hw6k+BHEtHeQFzzBH4i2/qk/o github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815 h1:bWDMxwH3px2JBh6AyO7hdCn/PkvCZXii8TGj7sbtEbQ= +github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= From e0b7090332b56241d6651b67bbee1918cec20148 Mon Sep 17 00:00:00 2001 From: Mihail Slobodyanuk Date: Sun, 11 Dec 2022 14:24:41 +0200 Subject: [PATCH 03/22] Fixed index.html start arg --- contrib/ui/mesh-ui/webview.go | 41 +++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/contrib/ui/mesh-ui/webview.go b/contrib/ui/mesh-ui/webview.go index e3cd0927..83c632a7 100755 --- a/contrib/ui/mesh-ui/webview.go +++ b/contrib/ui/mesh-ui/webview.go @@ -2,6 +2,7 @@ package main import ( "encoding/json" + "errors" "fmt" "io/ioutil" "log" @@ -21,24 +22,25 @@ import ( "github.com/docopt/docopt-go" ) -var confui struct { - Console bool `docopt:"-c,--console"` -} - -func main() { - usage := `Graphical interface for RiV mesh. +var usage = `Graphical interface for RiV mesh. Usage: - mesh-ui - mesh-ui -c | --console + mesh-ui [] [-c] mesh-ui -h | --help mesh-ui -v | --version Options: + Index file name [default: index.html]. -c --console Show debug console window. -h --help Show this screen. -v --version Show version.` +var confui struct { + IndexHtml string `docopt:""` + Console bool `docopt:"-c,--console"` +} + +func main() { opts, _ := docopt.ParseArgs(usage, os.Args[1:], "0.0.1") opts.Bind(&confui) if !confui.Console { @@ -88,18 +90,21 @@ Options: } } } - var path string - if len(os.Args) > 1 { - path, err = filepath.Abs(filepath.Dir(os.Args[1])) - } else { - path, err = filepath.Abs(filepath.Dir(os.Args[0])) + if confui.IndexHtml == "" { + confui.IndexHtml = "index.html" } + confui.IndexHtml, err = filepath.Abs(confui.IndexHtml) if err != nil { - log.Fatal(err) + panic(errors.New("Index file not found: " + err.Error())) + } + + if stat, err := os.Stat(confui.IndexHtml); err != nil { + panic(errors.New("Index file not found or permissians denied: " + err.Error())) + } else if stat.IsDir() { + panic(errors.New(fmt.Sprintf("Index file %v not found", confui.IndexHtml))) } - log.Println(path) w.Bind("onLoad", func() { log.Println("page loaded") go run(w) @@ -126,10 +131,8 @@ Options: w.Bind("ping", func(peer_list string) { go ping(w, peer_list) }) - //dat, err := ioutil.ReadFile(path+"/index.html") - //w.Navigate("data:text/html,"+url.QueryEscape(string(dat))) - //w.Navigate("data:text/html,"+""+path+"") - w.Navigate("file://" + path + "/index.html") + log.Printf("Opening: %v", confui.IndexHtml) + w.Navigate(confui.IndexHtml) w.Run() } From 56ed2bd6290319bc3350da939abd658ebe871492 Mon Sep 17 00:00:00 2001 From: vadym Date: Sun, 11 Dec 2022 14:52:15 +0200 Subject: [PATCH 04/22] Refactored code for NetworkDomain, added NetworkDomain.Prefix parameter to Mobile module --- contrib/mobile/mobile.go | 8 ++++++-- src/defaults/defaults.go | 22 ++++++++++++++++++---- src/defaults/defaults_darwin.go | 5 ----- src/defaults/defaults_freebsd.go | 5 ----- src/defaults/defaults_linux.go | 5 ----- src/defaults/defaults_openbsd.go | 5 ----- src/defaults/defaults_other.go | 5 ----- src/defaults/defaults_windows.go | 5 ----- 8 files changed, 24 insertions(+), 36 deletions(-) diff --git a/contrib/mobile/mobile.go b/contrib/mobile/mobile.go index a9f24e83..530deea8 100644 --- a/contrib/mobile/mobile.go +++ b/contrib/mobile/mobile.go @@ -47,13 +47,17 @@ func (m *Mesh) StartJSON(configjson []byte) error { if err := json.Unmarshal(configjson, &m.config); err != nil { return err } - // Setup the Yggdrasil node itself. + // Setup the Mesh node itself. { sk, err := hex.DecodeString(m.config.PrivateKey) if err != nil { panic(err) } - options := []core.SetupOption{} + options := []core.SetupOption{ + core.NodeInfo(m.config.NodeInfo), + core.NodeInfoPrivacy(m.config.NodeInfoPrivacy), + core.NetworkDomain(m.config.NetworkDomain), + } for _, peer := range m.config.Peers { options = append(options, core.Peer{URI: peer}) } diff --git a/src/defaults/defaults.go b/src/defaults/defaults.go index ef358ed8..97482078 100644 --- a/src/defaults/defaults.go +++ b/src/defaults/defaults.go @@ -8,6 +8,12 @@ type NetworkDomainConfig = config.NetworkDomainConfig var defaultConfig = "" // LDFLAGS='-X github.com/yggdrasil-network/yggdrasil-go/src/defaults.defaultConfig=/path/to/config var defaultAdminListen = "" // LDFLAGS='-X github.com/yggdrasil-network/yggdrasil-go/src/defaults.defaultAdminListen=unix://path/to/sock' +type defaultParameters struct { + + //Network domain + DefaultNetworkDomain NetworkDomainConfig +} + // Defines which parameters are expected by default for configuration on a // specific platform. These values are populated in the relevant defaults_*.go // for the platform being targeted. They must be set. @@ -21,15 +27,23 @@ type platformDefaultParameters struct { // Multicast interfaces DefaultMulticastInterfaces []MulticastInterfaceConfig - //Network domain - DefaultNetworkDomain NetworkDomainConfig - // TUN MaximumIfMTU uint64 DefaultIfMTU uint64 DefaultIfName string } +// Defines defaults for the all platforms. +func define() defaultParameters { + return defaultParameters{ + + // Network domain + DefaultNetworkDomain: NetworkDomainConfig{ + Prefix: "fc", + }, + } +} + func GetDefaults() platformDefaultParameters { defaults := getDefaults() if defaultConfig != "" { @@ -56,10 +70,10 @@ func GenerateConfig() *config.NodeConfig { cfg.InterfacePeers = map[string][]string{} cfg.AllowedPublicKeys = []string{} cfg.MulticastInterfaces = defaults.DefaultMulticastInterfaces - cfg.NetworkDomain = defaults.DefaultNetworkDomain cfg.IfName = defaults.DefaultIfName cfg.IfMTU = defaults.DefaultIfMTU cfg.NodeInfoPrivacy = false + cfg.NetworkDomain = define().DefaultNetworkDomain return cfg } diff --git a/src/defaults/defaults_darwin.go b/src/defaults/defaults_darwin.go index 670fca88..9698d2ba 100644 --- a/src/defaults/defaults_darwin.go +++ b/src/defaults/defaults_darwin.go @@ -19,11 +19,6 @@ func getDefaults() platformDefaultParameters { {Regex: "bridge.*", Beacon: true, Listen: true}, }, - // Network domain - DefaultNetworkDomain: NetworkDomainConfig{ - Prefix: "fc", - }, - // TUN MaximumIfMTU: 65535, DefaultIfMTU: 65535, diff --git a/src/defaults/defaults_freebsd.go b/src/defaults/defaults_freebsd.go index 2a50c25c..a0b8658b 100644 --- a/src/defaults/defaults_freebsd.go +++ b/src/defaults/defaults_freebsd.go @@ -18,11 +18,6 @@ func getDefaults() platformDefaultParameters { {Regex: ".*", Beacon: true, Listen: true}, }, - // Network domain - DefaultNetworkDomain: NetworkDomainConfig{ - Prefix: "fc", - }, - // TUN MaximumIfMTU: 32767, DefaultIfMTU: 32767, diff --git a/src/defaults/defaults_linux.go b/src/defaults/defaults_linux.go index 2c2690c7..8ade70c1 100644 --- a/src/defaults/defaults_linux.go +++ b/src/defaults/defaults_linux.go @@ -18,11 +18,6 @@ func getDefaults() platformDefaultParameters { {Regex: ".*", Beacon: true, Listen: true}, }, - // Network domain - DefaultNetworkDomain: NetworkDomainConfig{ - Prefix: "fc", - }, - // TUN MaximumIfMTU: 65535, DefaultIfMTU: 65535, diff --git a/src/defaults/defaults_openbsd.go b/src/defaults/defaults_openbsd.go index 3772d07b..a07092ad 100644 --- a/src/defaults/defaults_openbsd.go +++ b/src/defaults/defaults_openbsd.go @@ -18,11 +18,6 @@ func getDefaults() platformDefaultParameters { {Regex: ".*", Beacon: true, Listen: true}, }, - // Network domain - DefaultNetworkDomain: NetworkDomainConfig{ - Prefix: "fc", - }, - // TUN MaximumIfMTU: 16384, DefaultIfMTU: 16384, diff --git a/src/defaults/defaults_other.go b/src/defaults/defaults_other.go index 21c32160..53b68be4 100644 --- a/src/defaults/defaults_other.go +++ b/src/defaults/defaults_other.go @@ -18,11 +18,6 @@ func getDefaults() platformDefaultParameters { {Regex: ".*", Beacon: true, Listen: true}, }, - // Network domain - DefaultNetworkDomain: NetworkDomainConfig{ - Prefix: "fc", - }, - // TUN MaximumIfMTU: 65535, DefaultIfMTU: 65535, diff --git a/src/defaults/defaults_windows.go b/src/defaults/defaults_windows.go index 95a8cc80..b3545969 100644 --- a/src/defaults/defaults_windows.go +++ b/src/defaults/defaults_windows.go @@ -18,11 +18,6 @@ func getDefaults() platformDefaultParameters { {Regex: ".*", Beacon: true, Listen: true}, }, - // Network domain - DefaultNetworkDomain: NetworkDomainConfig{ - Prefix: "fc", - }, - // TUN MaximumIfMTU: 65535, DefaultIfMTU: 65535, From 5a7960ae5128fa8d02142e53c38b7da45c90afe7 Mon Sep 17 00:00:00 2001 From: vadym Date: Sun, 11 Dec 2022 19:22:02 +0200 Subject: [PATCH 05/22] removed unnecessary variable --- src/core/core.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/core.go b/src/core/core.go index a150ee0f..58b383d9 100644 --- a/src/core/core.go +++ b/src/core/core.go @@ -20,7 +20,7 @@ import ( // The Core object represents the Mesh node. You should create a Core // object for each Mesh node you plan to run. type Core struct { - address Address + // This is the main data structure that holds everything else for a node // We're going to keep our own copy of the provided config - that way we can // guarantee that it will be covered by the mutex From 2bbcd9142f0e7d146e50bc4650a85433a970b766 Mon Sep 17 00:00:00 2001 From: vadym Date: Sun, 11 Dec 2022 20:27:16 +0200 Subject: [PATCH 06/22] merge fix --- contrib/ui/mesh-ui/webview.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/contrib/ui/mesh-ui/webview.go b/contrib/ui/mesh-ui/webview.go index b30620e4..342cb971 100644 --- a/contrib/ui/mesh-ui/webview.go +++ b/contrib/ui/mesh-ui/webview.go @@ -21,6 +21,7 @@ import ( "github.com/RiV-chain/RiV-mesh/src/admin" "github.com/docopt/docopt-go" ) + var usage = `Graphical interface for RiV mesh. Usage: @@ -38,7 +39,7 @@ var confui struct { IndexHtml string `docopt:""` Console bool `docopt:"-c,--console"` } -======= + var uiVersion = "0.0.1" func main() { From 3aaf253ce46e97f7e3c2f4fe5b2942474805bd97 Mon Sep 17 00:00:00 2001 From: Mihail Slobodyanuk Date: Mon, 12 Dec 2022 07:56:49 +0200 Subject: [PATCH 07/22] fix peer window RIVM-18 --- contrib/ui/mesh-ui/ui/index.html | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/contrib/ui/mesh-ui/ui/index.html b/contrib/ui/mesh-ui/ui/index.html index 371c833f..1da3059b 100755 --- a/contrib/ui/mesh-ui/ui/index.html +++ b/contrib/ui/mesh-ui/ui/index.html @@ -136,23 +136,23 @@ var message = document.getElementById("info_window"); message.innerHTML = text; - info.className = "notification is-primary"; + info.classList.remove("is-hidden"); var button_info_close = document.getElementById("info_close"); button_info_close.onclick = function () { message.value = ""; - info.className = "notification is-primary is-hidden"; + info.classList.add("is-hidden"); //document.getElementById("peer_list").remove(); }; var button_window_close = document.getElementById("window_close"); button_window_close.onclick = function () { message.value = ""; - info.className = "notification is-primary is-hidden"; + info.classList.add("is-hidden"); //document.getElementById("peer_list").remove(); }; var button_window_save = document.getElementById("window_save"); button_window_save.onclick = function () { message.value = ""; - info.className = "notification is-primary is-hidden"; + info.classList.add("is-hidden"); //todo save peers var peers = document.querySelectorAll('*[id^="peer-"]'); var peer_list = []; @@ -327,9 +327,9 @@ -
-