diff --git a/build.go b/build.go index c1d0dcd..1983fa6 100644 --- a/build.go +++ b/build.go @@ -1,3 +1,3 @@ package main -var build = "339" +var build = "342" diff --git a/gbld.go b/gbld.go index 2fa2315..6762743 100644 --- a/gbld.go +++ b/gbld.go @@ -18,10 +18,9 @@ import ( "github.com/AlecAivazis/survey/v2" ) -var version = "1.19.2" +var version = "1.19.3" -var VERSIONURL = "http://gozilla.fhi.mpg.de/gbld/version.txt" -var UPDATEBASEURL = "http://gozilla.fhi.mpg.de/gbld" +var UPDATEURL = "http://gozilla.fhi.mpg.de/gbld" var oses = []string{"darwin", "linux", "windows"} var arches = []string{"arm64", "amd64"} @@ -34,7 +33,7 @@ var r1, r2, r3 *regexp.Regexp func main() { // ========================================================================================== main - checkforupdate() + checkforupdate(UPDATEURL) if len(os.Args) == 1 { // read predefined builds c, err := os.ReadFile("gbld.menu.json") diff --git a/tools.go b/tools.go index f0b81cd..21ff5c6 100644 --- a/tools.go +++ b/tools.go @@ -29,16 +29,14 @@ import ( "github.com/tidwall/gjson" ) -var tbversion = "0.4.3" +var tbversion = "0.5.0" var CHRS = "VW9IdGJ6eXh1T25DRHdrc2M5MlhOQVNQcEJFWnJhWVY2ZEowaFJLdmoxNUdxVDRJZkZpTTdRZW0zTFc4Z2w=" var LR = []rune("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") - - -func checkforupdate() { // --------------------------------------------------------------- check for new version +func checkforupdate(URL string) { // ----------------------------------------------------- check for new version prg := prgname() - resp, err := http.Get(VERSIONURL) + resp, err := http.Get(URL+"/version.txt") if err == nil { scanner := bufio.NewScanner(resp.Body) if scanner.Scan() { @@ -51,7 +49,7 @@ func checkforupdate() { // ----------------------------------------------------- ans:=Yesno(SF("new '%s' version found (%s -> %s), update now?", prg,sv_version,sv_lversion),true,false); if (ans) { - updateurl:=SF("%s/%s_%s_%s_%s",UPDATEBASEURL,prg,lversion,runtime.GOOS,runtime.GOARCH) + updateurl:=SF("%s/%s_%s_%s_%s",URL,prg,lversion,runtime.GOOS,runtime.GOARCH) if err := doupdate(updateurl); err != nil { PO(SF("Update failed: %v\n", err)) @@ -79,6 +77,25 @@ func doupdate(url string) error { // ------------------------------------------- return nil } +func checkaccess(NETS []string) { // ------------------------------------------------- check ip net based access + match:=0; + for _, validnet := range NETS { + addrs, err := net.InterfaceAddrs() + if err != nil { PE("Error getting addresses"); os.Exit(1) } + _, ipNet, err := net.ParseCIDR(validnet) + for _, address := range addrs { + if ipnet, ok := address.(*net.IPNet); ok && !ipnet.IP.IsLoopback() { + if ipnet.IP.To4() != nil { + if (ipNet.Contains(ipnet.IP)) { match++ } + } + } + } + } + + if (match==0) { PE("access violation, permission denied"); os.Exit(1) } +} + + func Enc(str string) string { // ----------------------------------------------------------------- encode string enc, _ := basex.NewEncoding(Db64(CHRS)) return enc.Encode([]byte(Rndstr(2) + str))